Sprachmenü ohne Flaggen 
Das Standard Sprachmenü von Typo3 arbeitet mit Flaggen. Doch abhängig vom gewählten Design kann ein rein textliches Sprachmenü von Vorteil sein. Dafür habe ich ein wenig Hand angelegt.
Das Textmenü verfügt über die selben Eigenschaften wie das Flaggen-Sprachmenü: Ausgrauen bei Nicht-Verfügbarkeit und Markierung bei Aktivität.
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 43 | <?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 = 'German' : $langtext = 'Deutsch'; $flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<a href="'.htmlspecialchars($query.'&L=0').'" target="_top">'.$langtext.'</a>'; } else { $query = str_replace($langstrings,"",$query); $flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').'<a href="'.htmlspecialchars($query.'&L=0').'" target="_top"></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]?'':'<span style="color:#ddd">').'English'.($langArr[1]?'':'</span>').'</a>'; } else { $flags[] = ($GLOBALS['TSFE']->sys_language_uid==1?$pointer:'').''.($langArr[1]?'':'<span style="color:#ddd">').'English'.($langArr[1]?'':'</span>').''; } } else { $query = str_replace($langstrings,"",$query); $flags[] = ($GLOBALS['TSFE']->sys_language_uid==1?$pointer:'').'<a href="'.htmlspecialchars($query.'&L=1').'" target="_top"></a>'; } $content = implode('',$flags).' | '; ?> |
Implementierung
Dieser Code wird 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 |
Ü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 “Sprachmenü ohne Flaggen,” einen Eintrag auf typo3.schloebe.de
- Veröffentlicht:
- 07.08.07
- Kategorie:
- TypoScript
- Angesehen:
- 2.591 mal
- Tags:
- :flagge, language, sprachmenu, tweak, typo3, TypoScript
- Drucken:
- Diesen Eintrag drucken



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