Hallo Spike, ich bin an genau der gleichen Stelle gescheitert, habe aber endlich eine Lösung gefunden, die ich Dir nicht vorenthalten möchte. Folgende Ausgabe erzeugt den gewünschten Language Overlay, den ich danach noch erläutere:
$this->internal['currentRow']=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) if ($GLOBALS['TSFE']->sys_language_content) { $OLmode = ($this->sys_language_uid == 'strict'?'hideNonTranslated':''); $this->internal['currentRow'] = $GLOBALS['TSFE']->sys_page->getRecordOverlay("tx_meineExtension_meineTabelle", $this- >internal['currentRow'], $GLOBALS['TSFE']->sys_language_content, $OLmode); } Wenn also eine andere Sprache als die default Sprache (die ist 0, wenn >0 dann ist die Bedingung wahr) vorliegt, wird: - der OverlayMode gesetzt - die Übersetzung (falls vorhanden) für alle Felder des CE in der angegebenen Tabelle durchgeführt (wird in $this->internal['currentRow'] gespeichert, (kommt aus der DB, aus der Tabelle in der all Deine CE drin stehen "tx_meineExtension_meineTabelle") Der Witz daran ist (und das habe ich bis jetzt nirgendwo gefunden, heute durch Zufall auf EINER Seite im Netz...) dass wenn Du Dir Dein SQL-Statement zusammenstellst, Du auf jeden Fall Deine Datensätze der sys_language_id 0, also default rausholst. Nur dann wird per "getRecordOverlay" nach vorhandenen übersetzten Datensätzen und Feldern geschaut. Ich bin noch auf der Suche, ob es da nicht auch noch einen umgekehrten Weg gibt, denn ich habe im Moment das Problem, dass nicht all meine Datensätze in allen Sprachen vorliegen (dürfen). Hier MUSS ich dann bei der Ausgabe prüfen, ob für die current sys_language_id Datensätze vorliegen. Wenn nicht, dann werden diese nicht ausgegeben. Wenn ja, dann muss ich, da ich auch mit dem inherit Mode arbeite, mir selbst die Übersetzung des default Elements holen, falls vorhanden. Naja, soll erstmal nicht Dein Problem sein. Ich hoffe ich konnte Dir helfen. Viele Grüße, Andreas -----Ursprüngliche Nachricht----- Von: typo3-german-boun...@lists.netfielders.de [mailto:typo3-german-boun...@lists.netfielders.de] Im Auftrag von Spike Gesendet: Dienstag, 10. Februar 2009 10:19 An: typo3-german@lists.netfielders.de Betreff: [TYPO3-german] Eigene Extension 'l10n_mode' => 'exclude' -> Ausgabe Hallo Liste, mit meiner Extension komme ich sehr gut voran, stoße gerade auf ein Problem, bei dem ich nochmals Hilfe bräuchte. Meine Extension ist bereits multilingual und mit der Eingabe meiner Contentelemente und deren Übersetzung im Backend passt alles wunderbar. Aber: Ich habe z.B. Ein CE, das in der default Sprache mit "Überschrift", "Bild" und "Kategorie" gefüllt wird. Da "Bild" und "Kategorie" in allen Übersetzungen gleich sein werden, habe ich in der tca.php für dieses Element bei den Feldern "Bild" und "Kategorie" folgendes festegelegt, damit diese Felder eben nicht nochmal übersetzt werden müssen: 'l10n_mode' => 'exclude' Klappt wunderbar, nur weiß ich nun in der Ausgabe nicht damit umzugehen. Mein SQL-Statement, das mir die Contentelemente aus der Datenbank holt, muss ja nach der sys_langue_uid abfragen, damit ich die Elemente in der richtigen Sprache bekomme. Da ich aber mit dem oben beschriebenen "inherit"-Mode arbeite, haben die übersetzten CE ja keine Einträge mehr für "Bild" und "Kategorie" in der Datenbank. Nun gibt es zwei Möglichkeiten: 1. Ich hole mir für jedes mit 'l10n_mode' => 'exclude' definierte Feld die Daten manuell per SQL-Abfrage vom default-Element (finde ich unschön) 2. Es gibt irgendeine Möglichkeit, dies von Typo3 automatisch erledigen zu lassen (woran ich fest glaube ;)) Vielleicht kann mir ja jemand etwas zu Lösung 2 sagen, das wäre nett. Grüße, spike _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.netfielders.de http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.netfielders.de http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german