Author Topic: Tutorial zur Erstellung mehrerer Menügruppen in mehrsprachigen Seiten  (Read 9097 times)

jacobi22

  • Guest
Tutorial zur Erstellung mehrerer Menügruppen in mehrsprachigen Seiten
nur bis WB 2.8.3 - nicht WB 2.8.4!

Ausgangspunkt ist das Manual zur Erstellung mehrsprachiger Projekte -> siehe http://www.websitebaker2.org/de/hilfe/designerhandbuch/mehrsprachige-webseiten.php?lang=DE

Der dort gezeigte Aufbau eines mehrsprachigen Seitenbaumes ist Grundlage dieser Anleitung. (siehe auch Bild im Anhang)

Einstellungen

info.php des Templates - erforderlich sind mehrere Menü-Einträge - wichtig sind dabei vorallem die Menü-ID-Nummern, ein Beispieleintrag könnte z.b. so aussehen

Code: [Select]
$menu[1]   = 'Main';
$menu[2]   = 'Submenu';
$menu[3]   = 'Hidden';
$menu[4]   = 'Footermenu';

die Bezeichnungen wie hier z.b. Main etc sind frei wählbar, diese dient zur Erstellung der Auswahlliste in den Seiteneinstellungen .
die Info.php danach auf den Server laden, dann im Backend auf Erweiterungen -> Erweitert gehen und dort beim Abschnitt Admin Optionen den Haken bei Designvorlagen setzen, anschließend auf Neu laden klicken.

Läuft alles korrekt, hat man nun unter SEITEN -> Seiteneinstellung im Abschnitt Menü die in der info.php eingetragenen Menügruppen zur Auswahl. Falls nicht, ggf Vorgang wiederholen und danach den Browsercache löschen.



Einstellung Menüpunkt OPTIONEN -> Erweiterte Optionen:

  • Seitensprache muß EINGESCHALTET sein, (ist das nicht der Fall, reagiert WB nur auf die Backend-Sprache, also die Sprache, die unter OPTIONEN im Bereich Standardeinstellung en bei SPRACHE eingestellt ist)
  • Die Option "Mehrere Menüs" an gleicher Stelle muß aktiviert / eingestellt sein

Einstellung Menüpunkt SEITEN

nach oben angeführtem Manual ist der Seitenbaum zu erstellen oder bereits vorhanden. Das allerwichtigste ist die Zuordnung der jeweiligen Sprache in allen Ebenen des jeweiligen Seitenbaums. Idealerweise richtet man solch Seitenbaum bereits am Beginn des Projekts ein und nutzt dabei den in der Seitenübersicht am rechtem Rand gezeigten Button "Unterseite hinzufügen". Mit Nutzung dieser Funktion werden u.a. auch die Sprache für die neue Unterseite von der Elternseite übernommen. Bei einen bereits vorhandenen Projekt muß die korrekte Spracheinstellung für jede Unterseite kontrolliert werden.

(in neueren WB-Versionen wird die pro Seite eingestellte Sprache per Text oder Bild angezeigt - siehe Bild "seitenbaum" - Zusammenschnitt aus der Seitenübersicht im Backend)



Um nun separate Menügruppen verwenden zu können, ist eine getrennte Menügruppenzuweisun g für jede Seite notwendig. Nach obigen Bild ist der Plan, die Seiten in Ebene 1 (Kontakt & Impressum) im Hauptmenü darzustellen, die Unterseiten davon in einem separatem Submenü.

  • ALLE Unterseiten (Childs = Kinderseiten) von DE bekommen die Sprache "deutsch"
  • Die Seiten Kontakt und Impressum bekommen das Menü 1 = Main
  • Die Seiten Unterseiten 1 + 2 (und wenn gewünscht auch deren Unterseiten) bekommen das Menü 2 = Submenu
  • eventuelle andere Seiten ggf auch noch das Menü 4 oder auch Menü 3 ( unter Hidden habe ich z.b. seiten, die nie in irgendeinem Menü auftauchen sollen, egal, wie der SM2-Aufruf auch ist)
  • der Vorgang ist dann für die anderen Sprachen zu wiederholen

Für den Aufruf der Menüs habe ich SM2 verwendet. Wie der jeweilige Aufruf lauten muß, hängt vom gewünschtem Ziel ab.
Ich nutze in den meisten Fällen das Modul mod_multilingual zur Sprachumschaltung, dabei werden gleiche Seiten in der jeweils anderen Sprache direkt in einem Sprach-Auswahlmenü durch einen internen Pagecode verlinkt (ohne erst über die übergeordnete DE-Seite = index bzw Startseite gehen zu müssen.

Es ist ohne weiteres möglich, statt dem im Manual genanntem Seitentyp Menu-Link einen  Seitentyp Wysiwyg für die Hauptseiten DE und EN zu verwenden. Dies kann z.b. sinnvoll sein, wenn die jeweiligen Hauptseiten DE und EN eigene Inhalte haben sollen. Mit show_menu2() ist es dann möglich, das nur das dieser Sprache zugeordnete Menü (z.b. alle deutschen Seiten) erscheint.

hier ein show_menu2()-Aufruf, der nur die Hauptseiten DE und EN zeigt, verwendbar z.b. auf einer gemeinsamen Startseite (intro.php)
Code: [Select]
<?php
show_menu2
(1SM2_ROOTSM2_START,SM2_TRIM|SM2_PRETTY,'<li><a href="[url]"  class="mainlevel-nav"><span>[menu_title]</span></a>''</li>'''''falsefalse);
?>

Weitere Beispiele siehe auch http://www.websitebaker2.org/forum/index.php/topic,23004.0.html

Nachfolgend setzen wir voraus, das die beiden Hauptseiten ein separates Umschaltmenü haben, z.b. per Landesflagge und / oder mit der Funktion language_menu() des Moduls mod_multilingual
Code: [Select]
<?php if(function_exists('language_menu')){ language_menu('png'); } ?>
Unser eigentliches Hauptmenü beginnt also mit den Seiten Kontakt und Impressum
In diesem Fall muß der Hauptmenüaufruf eine Ebene höher beginnen (weil DE.php und EN.php die Ebene 0 (null) bilden. Zwei Beispiele für den SM2-Code. Wichtig ist dabei, nicht die Menügruppe 0 (null) zu verwenden, weil 0 alle vorhandenen Menügruppen einschließt

1.

Code: [Select]
<?php
show_menu2
(1SM2_ROOT+1SM2_START,SM2_XHTML_STRICT,'<li><a href="[url]" class="[class] mainlevel"><span>[menu_title]</span></a>''</li>''<ul class="menu">''</ul>'falsefalse);

oder 2.

Code: [Select]
<?php
show_menu2
(1SM2_ROOT+1SM2_START,  SM2_ALL|SM2_TRIM|SM2_PRETTY,'<li><a href="[url]" class="[class] mainlevel-nav"><span>[menu_title]</span></a>''</li>''<ul class="menu">''</ul>'falsefalse); 


beide Aufrufe beziehen sich auf die Menügruppe 1 = Main  lt meiner info.php
SM2_TRIM beschränkt die Ausgabe dann auf den jeweiligen Level, da muß man experimentieren, was man braucht oder nicht

für das Submenü dann z.b. dieser SM2-Aufruf

Code: [Select]
<?php
show_menu2
(2SM2_CURRSM2_ALL,  SM2_ALL|SM2_PRETTY,'<li><a href="[url]" class="[class] mainlevel"><span>[menu_title]</span></a>''</li>''<ul class="menu">''</ul>'falsefalse);

beachtet, das ich hier schon unterschiedliche CSS-Klassen verwende ( class="[class] mainlevel" bzw  class="[class] mainlevel-nav" ), dadurch kann ich dann in der CSS die von SM2 gelieferten Klassen wie z.b. menu-current auch noch gesondert gestalten

Ergebnis sind dann zwei getrennte Menüs - das Hauptmmenü (im Bild vertikal mit größeren Buttons) und das Submenü oben horizontal


Analog zu dieser Anleitung ist es möglich, weitere Menüs zu definieren, z.b. für eine Footerleiste oder auch ein Sub-Sub-meü, das an anderer Stelle nur die Unterseiten der im Submenü angezeigten Pages darstellt
« Last Edit: June 30, 2015, 05:14:01 PM by Luisehahne »