Zum Inhalt springen

Wechsel der Sprache bei News-Ansicht

Erstellt am 26. April 2007 · 3 Antworten · letzte Antwort am 27. April 2007

Tags: Links, tt_news, Frage

McGregor ·

Hallo!

Ich verwende ein einfaches Pulldown-Menü für die Sprachauswahl:

$flags = array();
if (isset($_GET['L'])) $lang = $_GET['L'].''; else $lang = '0';
$flags[] = '<option value="'.htmlspecialchars('index.php?
id='.$GLOBALS['TSFE']-">id.'&L=0').'" '.($lang==0?' selected ':'').'>Deutsch</option>';
$flags[] = '<option value="'.htmlspecialchars('index.php?
id='.$GLOBALS['TSFE']-">id.'&L=1').'" '.($lang==1?' selected ':'').'>Englisch</option>';

$content = '<select name="menuselect" id="menuselect" class="menu-selecter" onchange="window.location.href=document.getElementById(\'menuselect\').
options[document.getElementById(\'menuselect\').selectedIndex].value">'.
implode('',$flags).'</select>';
echo $content;

Das funktioniert auch wunderbar. Aber wenn ich eine News ansehe und dann die Sprache wechsel, dann erhalte ich logischerweise eine Fehlermeldung ("keine news_id übergeben").
Wie kann ich nun mit TYPO3-Boardmitteln den entsprechenden Link zusammenbasteln. Ein einfaches anhängen der einzelnen Parameter geht nicht, da ich einen cHash berechnen muss, damit die News angezeigt wird.

Vielen Dank für die netten Hilfen

Grüße
McGregor

just2b ·

Hallo,

warum baust du die Links nicht mit den Funktionen von TYPO3? so verlierst du ja auch die realurl-Links usw....

nur mal kurz zusammengesetzt

		$postvars = $_GET;
		unset ($postvars['id']);
...
$this->pi_getPageLink(							$GLOBALS['TSFE']->id,
'', $postvars							
)

georg

McGregor ·

Hallo just2b!

Danke für den Denkanstoss. So ähnlich habe ich es nun gelöst. Leider habe ich die Language-Variable doppelt vorhanden, da T3 die Angabe automatisch per "getPageLink" hinzufügt. Das stört aber nicht, da es nur einmal auftaucht (beim Wechsel der Sprache).

Grüße
McGregor

P.S. Hier noch die Lösung:

$flags = array();
$postvars = t3lib_div::_GET();
unset($postvars['id']);
if (!isset($postvars['L'])) $lang = 0; else $lang = $postvars['L'];
unset($postvars['L']);
$postvars['L'] = 0;
$flags[] = '<option value="'.$this->pi_getPageLink($GLOBALS['TSFE']->id,'',$postvars).'" '.($lang==0?' selected ':'').'>Deutsch</option>';
unset($postvars['L']);
$postvars['L'] = 1;
$flags[] = '<option value="'.$this->pi_getPageLink($GLOBALS['TSFE']->id,'',$postvars).'" '.($lang==1?' selected ':'').'>Englisch</option>';

$content = '<select name="menuselect" id="menuselect" class="menu-selecter" onChange="window.location.href=document.getElementById(\'menuselect\').options[document.getElementById(\'menuselect\').selectedIndex].value" >'.implode('',$flags).'</select>';
echo $content;