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
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
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;
vielleicht hilft da schon
config.uniqueLinkVars = 1
georg