Hi!
Sieht so aus, als ob das Template-System für diese Variante nicht geeignet ist. Es sei denn, es bietet alternative Syntax-Elemente, wie beispielsweise Funktionsaufrufe: {input_feld1(class=foo)}.
Das ist eine Alternative! Ich glaube aber nicht dass ich diesen Weg gehen möchte :D. Das würde bedeuten, dass Teile des HTMLs in der Programmlogik zusammen gebaut werden. Das gefällt mir nicht so.
Trenne dich von einem Kompletttrennungsversuch. Du brauchst Logik zur Generierung der Ausgabe, die das Template nicht allein bewerkstelligen kann. Außerdem ist auch eine Template-Engine ein Stück Programmlogik, die dir nicht nur Teile des HTMLs sondern letztlich das gesamte HTML zusammenbaut. Da kann es nicht so problematisch sein, für die Template-Engine eine (Helper-)Funktion zu schreiben, die dir ein Stück HTML erzeugt. Die kann ja so flexibel gestaltet sein, das sie für alle Text-Input-Felder gleichermaßen verwendet werden kann. Weitere Helper kümmern sich um Checkboxen, um gruppierte Elemente, um WeißDerGeierWas. (Woher der das weiß, bleibt sein Geheimnis.)
Es gibt auch komplexere Ausgabeelemente, wie zum Beispiel ein Datagrid (vulgo Tabelle) mit eingebauter Sortierfunktion, wenn man auf den Spaltenkopf klickt, und Details-/Editier-/Lösch-Funktionalität für jede Zeile. Die Zeile unter dem Kopf könnte vielleicht noch Eingabefelder für eine Filterung enthalten. Und unter den Grid sitzt ein Pager. Sowas kann man effizient nicht mehr allein mit einem Templatesystem zusammenbauen lassen, da braucht es dann einen (Programm-)Teil in der Ausgabelogik, der sowas zusammenstellt.
Aber du hast recht, eine Ein/Ausgabe Logik fehlt eigentlich noch. Aber deswegen ja diese Frage mit der Hoffnung einen guten Weg zu finden diese Ausgabelogik dynamisch und effektiv zu gestallten. Es muss eigentlich für jedes Formular eine eigene Klasse geben welche die Feldnamen bereitstellt und nach einem "send" die Feldwerte vergibt.
Mir geht es nur um die Kommunikation zwischen Programmlogik und Template. Die zwei Teile waren für mich bislang 2 Welten.
Dazwischen vermittelt die Ausgabelogik. Oder anders betrachtet ist das Template-System neben anderen Helpern ein Teil der Ausgabelogik.
Lo!