Optimiertes Sprachmenü 
Das Standard Typo3 Sprachmenü kennen mittlerweile die meisten, die multilinguale Webseiten mit Typo3 bauen. Aus Erfahrung ist es aber bei vielen – meist computerfremden – Menschen so, dass das Standardmenü noch verwirrt, denn alle Flaggen sind jederzeit klickbar. Viele verwirrt das insofern, dass man nun nicht weiß, ob eine Sprache – trotz Ausgrauen der Flagge – verfügbar ist oder nicht.
Meine kleinen Anpassungen für das Sprachmenü stützen sich vor allem auf 2 Dinge:
- Die Flaggen der nicht-verfügbaren Sprachen sind nicht klickbar
- Die aktive Sprache wird, anders als im Standardmenü mit einem kleinen roten Pfeil, mit einer farblichen Hinterlegung markiert
Die Tatsache, dass nicht verfügbare Sprach-Flaggen nicht nur ausgegraut, sondern auch nicht klickbar sind, vermeidet Verwirrung.
Hier der Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?php if (!is_object($this)) die ('Error: No parent object present.'); $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages_language_overlay', 'pid='.intval($GLOBALS['TSFE']->id).$GLOBALS['TSFE']->sys_page->enableFields('pages_language_overlay'), 'sys_language_uid'); $langArr = array(); while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { $langArr[$row['sys_language_uid']] = $row['title']; } $pointer = ''; $flags = array(); if ($GLOBALS['TSFE']->sys_language_uid == 0) { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<img src="uploads/tf/flag_de.gif" width="20" height="10" border="0" alt="" style="padding: 2px 2px 5px 2px;background:#667DAB; position:relative; top: 5px;" />'; } elseif (!$langArr[2]) { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<img src="uploads/tf/flag_de.gif" width="20" height="10" border="0" alt="" style="padding: 2px 2px 5px 2px; position:relative; top: 5px;" />'; } else { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<a href="'.htmlspecialchars('index.php?id='.$GLOBALS['TSFE']->id.'&L=0').'" target="_top"><img src="uploads/tf/flag_de.gif" width="20" height="10" border="0" alt="" style="padding: 2px 2px 5px 2px; position:relative; top: 5px;" /></a>'; } if ($GLOBALS['TSFE']->sys_language_uid == 2) { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==2?$pointer:'').'<img src="uploads/tf/flag_en'.($langArr[2]?'':'_d').'.gif" width="20" height="10" border="0" alt="" style="padding: 2px 2px 5px 2px;background:#667DAB; position:relative; top: 5px;" />'; } elseif (!$langArr[2]) { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==2?$pointer:'').'<img src="uploads/tf/flag_en'.($langArr[2]?'':'_d').'.gif" width="20" height="10" border="0" alt="" style="padding: 2px 2px 5px 2px; position:relative; top: 5px;" />'; } else { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==2?$pointer:'').'<a href="'.htmlspecialchars('index.php?id='.$GLOBALS['TSFE']->id.'&L=2').'" target="_top"><img src="uploads/tf/flag_en'.($langArr[2]?'':'_d').'.gif" width="20" height="10" border="0" alt="" style="padding: 2px 2px 5px 2px; position:relative; top: 5px;" /></a>'; } $content = ''.implode('',$flags).' '; ?> |
Implementierung
Dieser Code wird, zusammen mit den Flaggendateien, als sprachmenu.inc im uploads/tf/-Ordner gespeichert und mittels TypoScript über einen Marker aufgerufen:
1 2 3 4 | page = PAGE page.10.marks.SPRACHE = PHP_SCRIPT page.10.marks.SPRACHE.file = uploads/tf/sprachmenu.inc |
Hinweis: Dieses Menü bedient die Sprachen Deutsch und Englisch, kann aber beliebig erweitert werden.
Über den Autor
Dieser Beitrag wurde von Oliver Schlöbe verfasst. Er arbeitet als Web- und (TYPO3-)-Entwickler, schreibt redaktionell über Windows Vista/ Windows 7, ist aktives Mitglied bzw. Administrator oder Moderator in diversen Webforen, darunter die TYPO3- und WordPress-Communities, und sammelt seine bisherigen Erweiterungen für diverse Systeme unter http://extend.schloebe.de/Bei Fragen nutzen Sie die Kommentare oder wenden Sie sich an info@typo3.schloebe.de.
Weitere Beiträge von Oliver Schlöbe.
Über diesen Eintrag
Sie lesen gerade “Optimiertes Sprachmenü,” einen Eintrag auf typo3.schloebe.de
- Veröffentlicht:
- 14.08.07
- Kategorie:
- Mehrsprachigkeit, Tweaks, TypoScript
- Angesehen:
- 6.042 mal
- Tags:
- :flagge, language, sprachmenu, tweak, typo3, TypoScript
- Drucken:
- Diesen Eintrag drucken

(2 Wertungen, Durchschnitt: 4,50 von 5)

4 Kommentare
Zu den Kommentaren springen | Kommentare RSS | Trackback URL