[TYPO3-german] Ein Feld nicht übersetzbar in FlexForm

Ronald Steiner Ronald.Steiner at googlemail.com
Tue Mar 17 21:07:07 CET 2009


Hi Bernd,

vielen lieben Dank,
Deine Antwort hilft mir schon sehr weiter. Ich verstehe jetzt das Problem.

So eine wirklich geniale Lösung habe ich noch nicht. - die nicht so 
extrem aufwendig ist. ..

beste Grüße

Ron

bernd wilke schrieb:
> Am Sun, 15 Mar 2009 06:59:30 +0100 schrieb Ronald Steiner:
> 
>> Hallo Liste,
>>
>> ich habe für meinen Frontend-Plugin im BE eine FlexForm Eingabe. Wenn
>> ich  eine Sprach-Kopie anlege hätte ich gerne, dass eines der FlexForm
>> Felder nicht übersetzbar ist, also nur in der default Sprache existiert
>> und angezeigt wird.
>>
>> Gibt es da einen Weg?
> 
> eine BE-Eingabe für ein FE-Plugin?
> was bitte machst du genau?
> Datensätze anzeigen oder Plugins konfigurieren?
> 
> egal wie wirst du wohl in der Programmierung der FE-Ausgabe bei einem 
> bestimmten Feld immer auf den Datensatz der Ursprungssprache 
> zurückgreifen müssen. Dass dieses Feld in allen Sprachen existiert wirst 
> du wohl nicht vermeiden können, immerhin handelt es sich immer um die 
> gleiche Tabelle mit gleichartigen Datensätzen (egal ob selbst erstellte 
> oder tt_content)
> 
> Damit sind wir schon bei der Programmierung.
> 
> mit eigener Tabelle/ Datensätzen:
> bei der Definition sollte Sprachunterstützung vorgesehen sein und damit 
> gibt es eine Konstruktion (Felder) wie man von einem übersetzen Datensatz 
> (sys_language_uid != 0) auf den Default-Datensatz kommt: Das Feld lautet 
> 'l18n_parent' dort steht die UId des Datensatzes in der Default-Sprache 
> drin.
> Wenn es der Datensatz in Default-Sprache ist ('sys_language_uid'==0) 
> steht dort 0 drin.
> Außerdem gibt es noch den Fall 'Gültig für alle Sprachen' mit 
> sys_language_uid == -1.
> 
> in deinem Plugin musst du halt einen zweiten Datensatz holen um an das 
> eine Feld des Default-Datensatzes zu kommen wenn du eine 'Übersetzung' 
> ausgibst.
> Das Feld existiert (im BE) dann zwar auch in den übersetzten Datensätzen. 
> Alle Eingaben darin werden aber ignoriert.
> 
> 
> Wenn du nur dein Plugin konfigurierst sind deine Datensätze in der 
> Tabelle tt_content. Das aktuelle Content-Element hast du als $this->cObj-
>> data verfügbar. Dort findest du auch die UId und über 'l18n_parent' auch 
> die UId des default-Datensatzes in tt_content. 
> 
> Und jetzt wird es kompliziert: 
> Die Eingaben in den Flexformfeldern sind nämlich nicht in einfachen 
> Tabellenfeldern gespeichert, sondern serialized im Feld 'pi_flexform'. 
> Entweder musst du es selber zerlegen (unserialize()) oder du kannst die 
> existerenden Funktionen dafür benutzen. Ob und wie das geht weiß ich 
> allerdings nicht. Normalerweise wird halt nur mit dem aktiven tt_content-
> Datensatz gearbeitet (bzw. mit der Kopie in $this->cObj->data) und ich 
> vermute, dass die Std-Flexform-Funktionen ($this->pi_initPIflexform() und 
> $this->pi_getFFvalue(...)) da nicht flexibel sind.
> 
> 
> bernd


More information about the TYPO3-german mailing list