Textbasiertes Sprachmenü 
Gerade habe ich beim Entmotten ein textbasiertes Sprachmenü entdeckt, das ich hier einfach mal veröffentliche.
Das Menü kommt ohne Flaggen aus, wird per PHP generiert und lässt sich per Klick umschalten. Ist eine Seite in einer alternativen Sprache nicht verfügbar, wird der Menüpunkt ausgegraut. Ansonsten verhält es sich wie ein normales Sprachmenü, in diesem Fall eben nur ohne Flaggen.
In Aktion sieht das Menü so aus (natürlich in ein Design eingepasst; in der Rohfassung erzeugt es einfach nur die Links für die Sprachen):
[inspic=47,fullscreen,148]
Die PHP-Datei sprachmenu.inc:
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 34 35 36 37 38 39 40 41 42 | <?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($_SERVER['SCRIPT_FILENAME'] != 'index.php') { $query = 'index.php?'; } $query .= $_SERVER['QUERY_STRING']; $langstrings = array("&L=1", "&L=0"); if ($_GET['L'] == "1") { $query = str_replace($langstrings,"",$query); ($langArr[1]) ? $langtext = 'de' : $langtext = 'de'; $flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<a href="'.htmlspecialchars($query.'&L=0').'" target="_top">'.$langtext.'</a>'; } if ($_GET['L'] == "0" OR empty($_GET['L'])) { $query = str_replace($langstrings,"",$query); if($langArr[1]) { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==1?$pointer:'').'<a href="'.htmlspecialchars($query.'&L=1').'" target="_top">'.($langArr[1]?'':'').'ru'.($langArr[1]?'':'').'</a>'; } else { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==1?$pointer:'').''.($langArr[1]?'':'').'ru'.($langArr[1]?'':'').''; } } if ($_GET['L'] == "0" OR empty($_GET['L'])) { $langvar = 'de'; } if ($_GET['L'] == "1") { $langvar = 'ru'; } $content = $langvar; $content .= implode('',$flags); ?> |
Per TypoScript kann das ganze dann so inkludiert werden:
1 2 | page.10.marks.SPRACHE = PHP_SCRIPT page.10.marks.SPRACHE.file = fileadmin/sprachmenu.inc |
Wirklich flexibel ist es natürlich nicht, aber als Ansatz ist es vielleicht hilfreich für den einen oder anderen.
Ü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 “Textbasiertes Sprachmenü,” einen Eintrag auf typo3.schloebe.de
- Veröffentlicht:
- 03.03.08
- Kategorie:
- Mehrsprachigkeit, Tweaks, TypoScript
- Angesehen:
- 3.543 mal
- Tags:
- :sprachmenu, tweak, typo3, TypoScript
- Drucken:
- Diesen Eintrag drucken



1 Kommentar
Zu den Kommentaren springen | Kommentare RSS | Trackback URL