[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