Tom: Eigene Templates

Beitrag lesen

Hello,

Die Platzhalter könnten so aussehen, Loops mit %loop_*% beginnen, wobei * dann ein frei wählbarer Name ist. Die TE muss wissen, wann Schluss ist, das könnten wir einheitlich mit %endloop% kennzeichnen.

[…]

Umsetzen könntest Du das entweder mit Regulären Ausdrücken oder mit einem Parser, Ersteres ist einfacher, Beispiel fürs Loop: Alles was zwischen %loop_*% und %endloop% liegt, wird ermittelt

Das bringt dich in der RegEx-Variante aber leicht in Schwierigkeiten, wenn Schleifen verschachtelt werden.

Wenn du den Ende-Marker analog zum Start-Marker „benennst“ – %loop_FOO% und korrespondierendes %endloop_FOO% – lässt sich zumindest das umgehen (wobei man im regulären Ausdruck dann bspw. eine Back Reference nutzen könnte).

Die Platzhalter im Markup sollten sich in der Art überhaupt nicht unterscheiden.

Sie können entweder weitere Platzhalter nebst Markup enthalten, oder nicht. Ob sie eien Schleife darstellen oder nicht, entscheidet sich in der Steuerdatei des Controllers. Diese zieht dafür die Datenlage und die Geschäftsregeln zu Rate.

Ich sage hier extra nicht "HTML", denn welches Markup benutzt wird, muss den Platzhaltern vollkommen egal sein. Sie dürfen es nur einschließen, wenn nötig.

Um es nochmal auf den Punkt zu bringen: In der Markup-Datei darf man gar nicht erkennen können, ob es eine Schleife gibt, oder der ganze Summs nur einmal kommt, genauso, wie er da steht.

Schön wäre es, wenn man eine solche Markup-Datei vailidieren könnte. Das müsste auch möglich sein, wenn man vorher alle Platzhalter-Symbole extrahiert. Leider kann dann der Controller trotzdem die resultierende Datei noch ungültig machen, wenn er an Stellen, an die soetwas nicht gehört, trotzdem Wiederholungen einpflanzt.

Er muss daher leider wissen, bei welchem Markup welches Element repeatable oder mandativ ist, und welches nicht.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
Die ultimative Seite für Selbermacher