[TYPO3-german] Bildbreite in FCE

JoH asenau info at cybercraft.de
Sun Sep 19 14:49:59 CEST 2010


> Ich hätt echt nicht gedacht, dass das ganze eine so große Sache ist...

Ist es vermutlich auch nicht, wenn man den gedanklichen oder konzeptionellen Fehler dahinter erstmal ausgemerzt hat.
Füge in Deinen Code bitte mal folgende Zeilen ein:
 
> Also im TemplaVoilà steht nun in einer FCE-Spalte dieser Code im
> "TypoScript-Code":
> 10 = LOAD_REGISTER
> 10.maxImageWidth = 252 #normale Bildbreite
> 10.maxImageWidth.override = 352 #breite Bildbreite
> 10.maxImageWidth.override.if.value = 9 #UID des breiten Templates
> 10.maxImageWidth.override.if.equals.data =
> LEVELFIELD:-1,tx_templavoila_to,slide

13 = TEXT
13.field = tx_templavoila_to
13.wrap = Field:|<br />
14 = TEXT
14.data = page:tx_templavolia_to
14.wrap = Data:|<br />
15 = TEXT
15.data = levelfield:-1, tx_templavoila_to, slide
15.wrap = Levelfield:|<br />
16 = TEXT
16.data = register:tx_templavoila_pi1.parentRec.tx_templavoila_to
16.wrap = Parent Rec:|<br />

> 20 = RECORDS
> 20.source.current = 1
> 20.tables = tt_content
> 20.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
> 30 = RESTORE_REGISTER

Damit kannst Du überprüfen, ob die einzelnen Teile überhaupt einen Wert zurückliefern und in welcher Weise sich die Werte unterscheiden.
Poste die Werte dann mal hier.
13 sollte bei Verwendung von TV gar nichts liefern, 14 sollte identisch mit 15 sein, wenn levelfield wie erwartet funktioniert und 16 sollte die UID des FCE liefern.
Das eigentliche Problem ist, daß ursprünglich in dem Register von Punkt 16 die ID des Seitentemplates zu finden ist, diese aber im Rahmen des FCE Rendering mal eben an die Seite geschoben wird und nicht mehr im Zugriff des FCE liegt.

Habe ich mal erwähnt, was ich von TV halte? ;-)
 
> Außerdem habe ich in diesen Fällen die Templates auch direkt auf der
> Seite angegeben, also bezüglich der Vererbung kann der Fehler nicht
> sein (oder?).

Eigentlich nicht, aber auch das läßt sich ja mit den eingefügten Zeilen überprüfen.
Wenn 14 und 15 in diesem Fall nicht identisch sind oder 15 keinen Wert zurückliefert, dann ist das eine weiterer Fall, in dem TV die Mechanismen des Core aushebelt.
Wenn es ein vererbtes Template ist (Du also auf der Seite selbst kein Template ausgewählt hast), sollte 14 leer sein und 15 einen Wert liefern.

Wobei Du die Rootline, um es perfekt zu machen eigentlich zweimal durchlaufen müsstest:
Im ersten Durchlauf müsste geprüft werden, ob innerhalb der Rootline ein tx_templavoila_next_to gesetzt ist.
Die Position der entsprechenden Seite müsste nun gespeichert werden.
Im zweiten Durchlauf müsste geprüft werden, ob auf dem Weg innerhalb der Rootline bis zur gespeicherten Seite das Feld tx_templavoila_to gesetzt ist.

Alternativ könntest Du auch versuchen, die Felder beim Durchlauf der Rootline gleichzeitig zu prüfen.
Das Feld dessen Wert "zuerst" kommt, wäre dann maßgeblich.

Da TV die Funktion dafür leider nicht gekapselt zur Verfügung stellt, wäre hier ein HMENU vom Typ "special=rootline" erforderlich, um an die Werte heranzukommen.
Aber gib bitte erstmal die Werte durch, bevor ich Dir den Code davon auch noch um die Ohren haue ;-)

HTH

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your gob sometimes!)
Dieter Nuhr, German comedian
Xing: http://contact.cybercraft.de
Twitter: http://twitter.com/bunnyfield
TYPO3 cookbook (2nd edition): http://www.typo3experts.com


More information about the TYPO3-german mailing list