Hallo,
von der Action wird ein Array übergeben, z.B. so:
$this->view->assign("test",array(0=>"value1",1=>"value2");
jetzt kann man im fluid template über {test.0} bzw. {test.1} die Werte auslesen.
Hier meine Frage:
kann man den Array-Key auch dynamisch setzen, sprich über eine Variable?
Hintergrund: bei der ListAction soll abhängig von der Entity eine andere pageID für die Einzelansicht angegeben werden.
Meine erste idee war, folgendermaßen auf den Wert zuzugreifen (in einer for-schleife):
{test.{entity.property}}
geht so etwas prinzipiell ohne eigenen ViewHelper, wenn ja wie? (oder habe ich nur schlecht gegoogelt 😉
eine if-Abfrage ist hier keine Lösung, weil es ja nicht unbedingt statisch ist (wenn die property z.B eine Kategorie ist, soll das beliebig skalierbar sein).
Danke für Tipps,
Vince
Soweit ich weiss ist dieses Feature in Planung (schon seit geraumer Zeit), aber noch nicht implementiert. Ich musste sowas bislang immer über ViewHelper lösen. Lasse mich aber gerne eines Besseren belehren 😉
Geht definitiv nur über ViewHelper und wird sich meines Wissens demnächst auch nicht ändern. Ich hab aber den Einsatzzweck noch nicht vollkommen verstanden, vielleicht kannst Du die Problemstellung nochmal genauer erläutern. Eventuell gibt es ja noch eine andere Lösung?
Schonmal Danke für die Antworten!
Ich hab aber den Einsatzzweck noch nicht vollkommen verstanden, vielleicht kannst Du die Problemstellung nochmal genauer erläutern.?
Jeder Eintrag hat eine Kategorie, und abhängig davon soll auf eine andere Seite (für Detailansicht) verlinkt werden. Das soll über z.B. Typoscript konfigurierbar sein.
Dem Template wird dann ein Array übergeben, dass für jede Kategorie die entsprechende page-Uid enthält.
Nun soll in der for-Schleife für jeden Datensatz die pageId entsprechend der Kategorie ausgelesen werden.
Wenn es dafür keine direkte Lösung gibt, werde ich einen eigenen ViewHelper schreiben, ist ja auch kein Problem.
Gruß,
Vince
Wir haben 2015 und sowas simples ist immernoch nicht out-of-the-box möglich. Schämt euch, echt mal.