[TYPO3-german] Probleme mit Gridelements bei nicht-trivialen FCE

JoH asenau info at cybercraft.de
Sat Jun 14 14:38:58 CEST 2014


> 1.) Mir gelingt es weder mit dem Standard Rendering, noch einem eigenen,
> in col2 auf irgend welche Daten (oder Registereinträge) zuzugreifen, die
> in col1 vorhanden sind (oder gesetzt werden). Dies kann aber durchaus
> auch an meinem mangelnden Wissen über LOAD_REGISTER liegen. Nach
> oberflächlichem Blick in den Quellcode wird jede "column" nach Auslesen
> gelöscht, was möglicherweise das dort gesetzte Register mit betrifft.
> Habt Ihr hier vielleicht tieferen Einblick?

Mit LOAD_REGISTER wirst Du in dem Fall keinen Erfolg haben, weil die 
Elemente nicht zwingend spaltenweise abgearbeitet werden, sondern 
einzeln gerendert und in die passende Spalte gefüllt werden.

Das Einzige, was dabei berücksichtigt wird ist die Reihenfolge beim 
Sorting, weil die dadurch automatisch auch innerhalb der Spalten passt. 
Je nach Sorting-Wert kann es dabei aber vorkommen, dass Du bei 2 Spalten 
eine Reihenfolge 1,2,2,1,1,2,1,2,1 renderst.
Erst wenn die Spalten befüllt sind, werden sie dann selbst gerendert und 
mit entsprechenden Wraps umgeben.

Was funktioniert, ist wie im Default-Setup gezeigt, per LOAD_REGISTER 
bestimmte Register für den Rendering-Vorgang eines Elements zu 
beeinflussen, wobei danach zwingend ein RESTORE_REGISTER erfolgen 
sollte, damit die Register nach dem Rendern nicht bei anderen Elementen 
dazwischenschiessen. Aber Du kannst keine Werte von der einen in die 
andere Spalte übergeben.

Es stellt sich die Frage, was Du konkret erreichen willst und ob dafür 
nicht ggf. wirklich ein FLUIDTEMPLATE der sinnvollere Ansatz wäre.

> 2) Im Forge/Issue Tracker zu Gridelements kam eine kurze Diskussion zum
> Rendering mittels Fluid auf -- über FLUIDTEMPLATE. Soll gehen, gelingt
> mir aber nicht -- bzw. gelingt mir nicht im einzig sinnigen
> Anwendungsfall: Ein Template für das gesamte Element samt Subcontent.
> Die Doku schweigt sich darüber leider aus. Irgendwelche Ideen?

In der Doku gibt es den Abschnitt TypoScript, in dem zu Anfang der 
Default-Setup-Block von Gridelements aufgelistet ist.

Dort steht:

# if you want to provide your own templating, just insert a cObject here
# this will prevent the collected content from being rendered directly
# i.e. cObject = TEMPLATE or cObject = FLUIDTEMPLATE will be available 
from the core
# the content will be available via fieldnames like
# tx_gridelements_view_columns (an array containing each column)
# or tx_gridelements_view_children (an array containing each child)
# tx_gridelements_view_column_123 (123 is the number of the column)
# or tx_gridelements_view_child_123 (123 is the UID of the child)

Weiter hinten in der TypoScript-Referenz sind die einzelnen virtuellen 
Felder nochmals aufgeführt.

Das alles in einem FLUIDTEMPLATE abzufrühstücken macht aber IMHO wenig 
Sinn, weil Gridelements bereits auf der PHP-Ebene deutlich performantere 
Vorarbeit leistet, wobei Du für einzelne Spalten oder deren Elemente ja 
ebenfalls mit FLUIDTEMPLATE arbeiten kannst und es nicht beim Default 
tt_content-Rendering belassen musst.

Wenn Du alles wirklich in einem einzigen FLUIDTEMPLATE erledigen willst, 
wäre am ehesten das Feld tx_gridelements_view_children zu empfehlen, 
weil da ungerenderte Rohdaten der Kinder liegen, die Du mit 
entsprechenden Viewhelpern beliebig verarbeiten kannst.

HDH

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