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

Antwort per Email an