[TYPO3-german] Sprache in eigene Extension korrekt implementieren
Peter Linzenkirchner
liste at lisardo.de
Mon Feb 15 19:11:40 CET 2010
Hallo,
ich Suche Infos, wie man Mehrsprachigkeit in eigene Extensions korrekt
implementiert.
Was die Ausgabe von statischen Text in Templates geht (via $this-
>getLL etc) ist mir alles klar. Der Aufbau der Tabellen mit TCA
funktioniert auch, im Backend können problemlos Sprachdatensätze
angelegt werden. Mir geht es um die korrekte Abfrage der Daten aus den
Tabellen. Ziel ist, dass alle Sprachfeatures von TYPO3 funktionieren.
Ich hole mit diesem SQL-WHERE die Daten aus der DB:
$whereClause =
"pid=xyz " .
' AND (sys_language_uid IN (-1,0) OR (sys_language_uid='.
$GLOBALS['TSFE']->sys_language_uid.' AND l18n_parent=0)) ' .
$this->cObj->enableFields ( $tableName );
Danach werden sie so weiter verarbeitet:
while ( $row = $GLOBALS ['TYPO3_DB']->sql_fetch_assoc
( $newsResult ) ) {
if ($GLOBALS['TSFE']->sys_language_content) {
$row = $GLOBALS['TSFE']->sys_page-
>getRecordOverlay($tableName, $row, $GLOBALS['TSFE']-
>sys_language_content, $GLOBALS['TSFE']->sys_language_mode ==
'strict' ? 'hideNonTranslated' : '');
}
Ok, das funktioniert so weit, dass ich in den Sprachen die richtigen
Inhalte bekomme, allerdings nur solange die Standardsprache (Deutsch)
auch sichtbar ist. Wird die Standardsprache unsichtbar gestellt,
verschwindet auch die alternative Sprache. Das ist logisch, da ich
über meine $whereClause ja nur Datensätze finde, die in Deutsch auch
sichtbar sind. Wenn ich aber
$this->cObj->enableFields ( $tableName );
weglasse, stimmt die Ausgabe in der Standardsprache logischerweise
nicht mehr.
ich habe jetzt nur noch folgende Idee:
$whereClause =
"pid=xyz " .
' AND (sys_language_uid IN (-1,0) OR (sys_language_uid='.
$GLOBALS['TSFE']->sys_language_uid.' AND l18n_parent=0)) ';
if ($GLOBALS['TSFE']->sys_language_content == 0 ) {
$whereClause .= $this->cObj->enableFields ( $tableName );
}
Umständlich, scheint aber zu funktionieren, auch wenn ich in der
alternative Sprache Datensätze unsichtbar schalte.
Macht man das so, oder gibts da nicht was einfacheres aus der API?
Vielen Dank
Peter
More information about the TYPO3-german
mailing list