Harlequin: Templates, Trennung von Präsentation und Prozesslogik

Beitrag lesen

Yerf!

Dann hast Du halt einfach mehrere Templates - eins für das Gästebuch, eins für das Kontaktformular, etc... Genauso wie man im Normalfall multiple statische HTML-Seiten haben kann.

Schon, aber gerade von dieser Menge an Dateien, die auch gepflegt werden wollen, will ich ja wegkommen.

[1] Was ich grad bei Genshi entdeckt hab ist zumindest ein include. Der muss dann aber auch wieder mittels if im Template gesteuert werden, womit sich die Programmierung wieder ins Template verlagert.

Wieso if?

Weils im beispiel der Doku so drinn stand und mein gehirn auf die Schnelle nicht in der Lage war weiterzudenken...

<xi:include href="${subtemplate}.html" py:for="subtemplate in subtemplates" />

(und dann die Variable subtemplates auf eine Liste von Templates setzen, die da eingefügt werden sollen)

Ja, so wird das schon flexibler und meiner variante recht ähnlich. Kam mir nur nicht gleich der Gedanke.

Ich kann da wirklich nicht nachvollziehen, warum das zu viel Code in den Templates sein soll. Bedenke doch auch, dass es bei Templates darum geht, Präsentation von Prozesslogik zu trennen - und das erreichst Du wiederum nicht, wenn Du zu viele Teile wieder in den normalen Programmcode lagerst.

Ich glaube mein fehler war bisher mir Template-System nur zu oberflächlich anzusehen und anhand der Beispiele zu sagen: das taugt nix. Allerdings muss man schon etwas aufpassen, die richtige Mischung zu erwischen, nicht dass ein vorhandenes Template die Erweiterbarkeit des Codes einschränkt, weil es zu viel selber macht.

Zudem, es gibt noch eine zweite (sehr coole) Möglichkeit, mit Genshi Layout etc. zu realisieren: Match-Templates.

Du bindest im Endeffekt nur minimalistische Templates für die jeweiligen Spezialanwendungen, die Du haben willst, ein und diese haben ein einziges Include drin, das das Master-Template lädt, z.B. so:

Geil! ...um das mal so auszudrücken ;-)
Die sollten sowas nicht so gut auf der HP verstecken, damit man das eher findet. Wenn ich versuchen würde das zu realisieren käme ich schnell an die grenzen vom DOM. Ich denke mal, das läuft dann über XSLT.

Siehe auch die Doku zu Genshi.

Ich glaube die muss ich mir doch mal genauer ansehen.

Bleiben aber noch die Nachteile, dass zumindest Genshi nur für Python[1] ist und die Template-Sprachen an sich nicht standardisiert und so ohne weiteres austauschbar sind...

Gruß,

Harlequin

[1] könnte allerdings noch passieren, dass ich die Katze (Tomcat) wieder in den Sack packe und mir die Schlange auf meinen Server hole... hab heut mein erstes Python-Script gebaut und muss sagen die Sprache ist recht nett ;-)

--
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
0 50

xhtml html xml ... verwirrung

manman
  • html
  1. 0
    anjoschu
    1. 0
      manman
      1. 0
        anjoschu
        1. 0
          Gunnar Bittersmann
          1. 0
            anjoschu
        2. 0
          manman
          1. 0
            stareagle
            1. 0
              manman
    2. 1
      Gunnar Bittersmann
      1. 0
        manman
        1. 0
          Gunnar Bittersmann
          1. 0
            manman
            1. 0
              Gunnar Bittersmann
              1. 0
                manman
            2. 0
              Cyx23
        2. 0
          anjoschu
      2. 0
        anjoschu
        1. 0
          Gunnar Bittersmann
  2. 0
    Harlequin
    1. 0
      manman
      1. 0
        Harlequin
        1. 0
          Sven Rautenberg
          1. 0
            Harlequin
            1. 0
              Sven Rautenberg
              1. 0
                Harlequin
              2. 0
                Christian Seiler
            2. 0
              Daniel Thoma
            3. 0
              Christian Seiler
              1. 0
                Harlequin
                1. 0
                  Christian Seiler
                  1. 0
                    Harlequin
                    1. 0
                      Christian Seiler
                  2. 0
                    Harlequin
                    1. 0

                      Templates, Trennung von Präsentation und Prozesslogik

                      Christian Seiler
                      • programmiertechnik
                      1. 0
                        Harlequin
                        1. 0
                          Christian Seiler
      2. 0
        Gunnar Bittersmann
  3. 0
    Gunnar Bittersmann
    1. 0
      Cyx23
      1. 0
        Gunnar Bittersmann
        1. 0
          Cyx23
      2. 0
        molily
        1. 0
          Cyx23
          1. 0
            molily
            1. 0
              Cyx23
              1. 0
                molily
                1. 0
                  Daniel unreg
                  1. 0
                    Gunnar Bittersmann
                  2. 0
                    molily