Zum Inhalt springen

Sprachauswahl über einfachen Button

Erstellt am 29. August 2006 · 5 Antworten · letzte Antwort am 4. September 2006

Tags: Frage

vogelfrei ·

ui, klein Anne steht mal wieder total auf´m Schlauch...

Ich will was wahrscheinlich ziemlich simples umsetzen, komm aber mal wieder nicht weiter.

Und zwar möchte ich unter meinem Menü einen Button haben, mit dem ich ganz einfach die Seitensprache auswählen kann.

Wenn ich auf der deutschen Seite bin, soll das Ganze so aussehen:
Bild: cenario.de/…/typo_eng.gif

Und wenn ich mich auf der englischen Seite befinde soll der Button so aussehen:
Bild: cenario.de/…/typo_de.gif

(Ohne Dropdown oder so)

Der Button ist einfach ein div, bzw zwei div´s
jeweils für deutsch und englisch.

Wie bekomme ich jetzt im TS hin, dass der mir den blöden Button wechselt, wenn die sprache wechselt????

vogelfrei ·

Danke, aber hilft mir irgendwie auch nicht weiter.
Hab da so meine Probleme mit TS.
Und ich will ja, dass immer nur eine Flagge angezeigt wird

Hab dann mal versucht das Ganze mit PHP zu machen:

<?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'];
}



$GLOBALS['TSFE']->sys_language_uid;


$deutsch  = '<a href="'.htmlspecialchars('index.php?id='.$GLOBALS['TSFE']-">id.'&L=14').'" target="_top"><img src="typo3/sysext/cms/tslib/media/uploads/flag_uk.gif" width="21" height="13" hspace="5" border="0" alt="" />English Site</a>';

$englisch = '<a href="'.htmlspecialchars('index.php?id='.$GLOBALS['TSFE']-">id.'&L=15').'" target="_top"><img src="typo3/sysext/cms/tslib/media/uploads/flag_de.gif" width="21" height="13" hspace="5" border="0" alt="" />German Site</a>';

$flags = array();
$flags[1] = ($GLOBALS['TSFE']->sys_language_uid==15?$deutsch:'');
$flags[2] = ($GLOBALS['TSFE']->sys_language_uid==14?$englisch:'');


$content = implode('',$flags);

?>

funktioniert aber auch nicht.

Jemand eine Idee, woran es liegen könnte?

chris3 ·

Nimm einfach diesen simplen Skript - ersetzte $defaultLang und $otherLang halt durch Flaggen-<img alt="" /> & Text ... #paralyzed#

(und ggf. die in der if-Abfrage verwendeten Werte)

<?php
/***************************************************************
*
*       languageSwitch.php
*
*       Simple PHP-Script for typo3 which returns a
*       clickable String for switching between languages.
*
*
*       ONLY works with two languages, of course ... =)
*
*
***************************************************************/



if (!is_object($this)) die ('Error: No parent object present.');

// Name of the default language - in that language
$defaultLang = "Deutsch";
// Name of the other language - in that language
$otherLang = "English";

// ... don't touch ... =)
$theLink = "";
$theWord = "";

// default Language ?
if ($GLOBALS['TSFE']->sys_language_uid==0) {
        $theLink = '<a href="'.htmlspecialchars('index.php?id='.$GLOBALS['TSFE']-">id.'&L=1').'" onfocus="blurLink(this);" class="navi" target="_top">';
        $theWord = $otherLang ;
}
// other Language ?
elseif ($GLOBALS['TSFE']->sys_language_uid==1) {
        $theLink = '<a href="'.htmlspecialchars('index.php?id='.$GLOBALS['TSFE']-">id.'&L=0').'" onfocus="blurLink(this);" class="navi" target="_top">';
        $theWord = $defaultLang ;
}

$content = $theLink.$theWord."</a>";

?>

... und, ja, der Skript ist krude & schluckt alle anderen Parameter ausser "id=" ... :o

chris3 ·

... Hoppla, das muß beim Copy&Paste mit reingerutscht sein ... #paralyzed#

Aber es hat Dich ja nicht zum Stolpern gebracht ... 😉