Zum Inhalt springen

Mehrsprachige Selectboxen

Erstellt am 17. April 2006 · 2 Antworten · letzte Antwort am 17. April 2006

Tags: Frage

Stoffel ·

Hallo zusammen,

nach mehrstündiger Recherche bin ich nun engültig verwirrt:

ich möchte im Frontend mehrere Selectboxen realisieren, die Einträge lade ich zum Teil aus einer Datenbanktabelle, zum Teil möchte ich Sie aber auch aus einer locallang-Datei auslesen.

Für einzelne Einträge habe ich das nun geschafft:

$content.= $this->pi_getLL('material2');

oder

$content.= $GLOBALS['TSFE']->sL('LLL:EXT:user_selectmachine/locallang_db.php:user_selectmachine_material.material2');

Jetzt möchte ich aber die Begriffe über eine foreach-Schleife bzw. eine While-Schleife auslesen und weiß nicht, wie ich auf das jeweilige Sprachen-Array zugreifen kann!

Ich denke, wenn ich mit der Locallang-Datei arbeite dürfte das nicht so schwierig sein, allerdings hab ich keine Ahnung, wie ich dieses Problem bei der Datenbankabfrage löse. Die <option>-Tags werden in meinem Skript so gebildet:

$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*", "pages","pid=22");
if (mysql_error()) debug(array(mysql_error(), $query));
     while ($row = mysql_fetch_assoc($res)) {
	 $content.= '<option value="index.php?id='.$row['uid']. $GLOBALS['TSFE']-">linkVars.'">'.$row['title'].'</option><br />';
										}

Ich hoffe, ich konnte das Problem anschaulich schildern und hoffe auf Eure Hilfe! #giggle#

Gruß Stoffel

steffenk ·

für die Datenbank gilt: die Extension muss mehrsprachig angelegt sein, damit auch die Sprachen in den overlay-Feldern gespeichert wird.

Wie man das ausliest, kannst Du z.B. der tt_news entnehmen:

// get the translated record if the content language is not the default language
		if ($GLOBALS['TSFE']->sys_language_content) {
			$OLmode = ($this->sys_language_mode == 'strict'?'hideNonTranslated':'');
			$row = $GLOBALS['TSFE']->sys_page->getRecordOverlay('tt_news', $row, $GLOBALS['TSFE']->sys_language_content, $OLmode);
		}
Stoffel ·

Danke schonmal für den Tipp, auch wenn es bis jetzt noch nicht klappt o.O

Ich habe mal versucht, den von Dir genannten Absatz einzubinden:

<select name="menu1" size="7" onchange="MM_jumpMenu(\'parent\',this,0)">
<option selected=""></option>';
    $res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*", "pages","pid=22");

     if (mysql_error()) debug(array(mysql_error(), $query));

      while ($row = mysql_fetch_assoc($res)) {

       if ($GLOBALS['TSFE']->sys_language_content) {
         $OLmode = ($this->sys_language_mode == 'strict'?'hideNonTranslated':'');
         $row = $GLOBALS['TSFE']->sys_page->getRecordOverlay('pages', $row, $GLOBALS['TSFE']->sys_language_content, $OLmode);
}
       										
$content.= '<option value="index.php?id='.$row['uid'].$GLOBALS['TSFE']-">linkVars.'">'.$row['title'].'</option><br />';
										}
										
$content.= '</select>

Allerdings wird noch nichts übersetzt! Wo stehen eigentlich die übersetzten Seitentitel usw.?? In der PAGES-Tabelle habe ich nichts gefunden.

Sorry für die vielleicht etwas dummen Fragen, aber ich bin leider noch nicht am Ende meiner Typo3-Profikarriere angelangt;-)