IMC hat geschrieben: 26.12.2025 23:48
Kann ich für mich nicht bestätigen. Es erspart mir die Arbeit selbst Arrays in Schleifen aufzubauen.
Was aber eigentlich nicht mehr notwendig ist, da Twig sämtliche Array Arten nativ verarbeiten kann. Wenn du in PHP ein Array hast, egal mit welcher Struktur, kannst du das ohne jegliche Aufbereitung direkt an Twig weitergeben. Eine Aufbereitung kann aber sinnvoll sein, wenn das Array in Twig an zig Stellen verwendet wird und den Twig Code kompakter/übersichtlicher machen würde. Aber rein technisch ist eine Aufbereitung nicht zwingend nötig.
Ich bin immer wieder überrascht, welche Kuriositäten man findet, wenn man später, mit etwas Abstand, auf einem Code schaut.
Jupp, egal welcher Code, auch eigener ist nicht gefeit vor "interessanten" Konstrukten. Du findest in meinen Changelogs öfter den Eintrag "Code Optimierung", wo ich ab und an auch veralteten (oder umständlichen) Code überarbeitet habe.
assign_block_vars() diente - soweit ich das überblicken kann - vor allem in der 3.0 Ära dazu, solche Konstrukte wie das Folgende, mit der richtigen Array Struktur zu versorgen:
Ist auch uralt, ich finde hier bei uns solche Beiträge dazu:
Mulitdimensionaler Array aufbauen und auslesen (2008)
Das meinte ich aber alles nicht mit "kompliziert", sondern einen - zugegebenermassen - Grenzfall: ich hatte vor vielen Jahren mal das Problem, das ich bei einer Ext nachträglich ein Template Array auslesen, ändern und wieder zurückschreiben musste. Eine "normale" Template Variable kann man recht simpel so bearbeiten. Aber, wie ich dann feststellte, das trifft leider nicht auf ein Array zu, welches mittels
assign_block_vars() generiert wurde. Erst Jahre später, als die besagte Ext und meine Änderung längst schon kein Thema mehr waren, fand ich heraus (weil ich es genau wissen wollte

), ob und wie ich ein solches Array nachträglich bearbeiten kann. Es geht, aber das ist super umständlich/aufwendig und in meinen Augen ein hochgradiges Gemurkse.
Ist das Array dagegen mit
assign_vars() oder
assign_var() zugewiesen worden, ist das alles kein Problem.
Mike-on-Tour hat geschrieben: 27.12.2025 10:39
In der alten phpBB-Template-Ära hatte das durchaus seinen Sinn, weil das HTML nicht mit Arrays umgehen konnte.
Jupp, die alte Template Syntax war allgemein sehr rudimentär. Bei Twig hat man umfangreiche Möglichkeiten der Array Iteration. Zum Beispiel Filter, die bei Bedarf noch dazu genommen werden können. Bei EMP mache ich starken Gebrauch von Arrays und dementsprechend werden auch etliche Array Funktionen von PHP und Twig genutzt. Ein Beispiel für die mächtige Twig Syntax:
https://github.com/LukeWCS/ext-mgr-plus ... .html#L170
Eine Iteration aller Ext Gruppen in Kombination mit einem Filter und einer Pfeil-Funktion und das alles elegant in der Schleifen-Deklaration.
(und ja, ich finde die Möglichkeiten von TWIG einfach toll, ergänzt sich aus meiner Sicht wunderbar mit PHP)
Um eine Auto-Analogie zu verwenden: die alte Syntax verhält sich zu Twig wie ein Trabi zu einem Tesla. ^^
edit: Was RTNG angeht, wenns ohne grosse Umbauten ginge, würde ich auf
assign_block_vars() verzichten wollen.