Siechfred: Templates vs. scriptgesteuerte Ausgabe

Beitrag lesen

Tag Struppi.

<TMPL IF xxx=liste>
<ul>
<TMPL LOOP ???><li> <TMPL eigenschaft_1>
<p> <TMPL text> </p>
<TMPL ENDLOOP>

</li>
<TMPL ELSE IF xxx=produkte>
<table>
<TMP LOOP ???><tr>
<td> <TMPL eigenschaft_1> </td>
<td> <TMPL eigenschaft_2> </td>
<td> <TMPL eigenschaft_3> </td>
</tr>
<TMP ENDLOOP>
</table>
<TMPL ELD IF xxx=text>
<p><TMPL tex></p>
<TMPL ENDIF>

So ähnlich, wie Christian schon schrieb. Allerdings ist es natürlich nicht immer sinnvoll, für alle Aufgaben ein Template zu nutzen, wenn dadurch die Verständlichkeit für einen Außenstehenden auf der Strecke bleibt. Aber nehmen wir ruhig mal dein Beispiel. Was wäre, wenn ein Anwender nun statt der ungeordneten eine geordnete Liste möchte? In einem Template ersetzt er "ul" durch "ol", das war's. Bei deiner Variante müsste er sich erst in eine Programmlogik hineindenken (was zumindest Grundkenntnisse in der verwendeten Programmiersprache voraussetzt) und dann die entsprechende Zeile im Script/im Modul finden, wo er statt "ul" sein "ol" platzieren kann. Dies ist ein Vorteil von Templates.

Ich gebe eine struktrierte HTML seite aus, wie ich das mache ist erst mal egal. Dabei gibt es unterschiedliche Bereiche (mit DIV und ID gekennzeichnet) die der Designer über CSS nach belieben gestalten mag.

Ja, aber dazu muss der Designer erstmal *sehen*, wie das HTML aussieht, das ist bei einem Template wesentlich schneller und einfacher zu überblicken als bei einer scriptgesteuerten Ausgabe.

Das Header Logo ist eine Einstellung in den Programmoptionen (nicht in der Konfiguration) oder wird in der CSS Datei deklariert.

Okay, schlecht gewähltes Beispiel.

Naja, bei meiner Methode brauch er nur Kenntnisse in CSS (die natürlich ohne HTML Kenntnisse nicht viel bringen), also weniger in HTML und schon gar nciht in Perl.

Ja, aber wenn er die *Struktur* der HTML-Ausgabe ändern will (ein Beispiel hatte ich schon genannt), dann muss er doch am Script schrauben, und dafür benötigt er Perl-Kenntnisse. Indem du das HTML von deinem Script ausgeben lässt, nimmst du dem perlunkundigen Designer viele Möglichkeiten, etwas an der Struktur des ausgegebenen Dokumentes zu ändern.

Da kann jeder beliebig dran schrauben.

Es geht nicht allein um die Darstellung, das wäre zu einfach.

Das ist wahr und bisher auch weitestgehend so. Trotzdem interessiert mich wo der Vorteil von Template liegen soll, da diese ja keinerlei Inhalte präsentieren können da diese i.d.R. erst aus der Anwendung kommen und somit erst mal nutzlos sind.

Sie ermöglichen einen einfachen und schnell editierbaren Einblick in die HTML-Struktur. Du könntest ein Script auch ganz ohne HTML-Template ausliefern, damit würdest du dem Designer die Möglichkeit bieten, mit einfachsten Mitteln eine eigene HTML-Struktur aufzubauen, die seinen Wünschen und Vorstellungen entspricht. Eine ungeordnete Liste ist und bleibt ungeordnet, da kannst du mit CSS keine Nummerierungen mehr hinzufügen. Letztlich sähe ein simpelstes Template z.B. für ein Blog so aus:

<TMPL_VAR NAME="HEADLINE">  
<TMPL_VAR NAME="WELCOME_MESSAGE">  
<TMPL_LOOP NAME="THREAD">  
  <TMPL_VAR NAME="AUTHOR">  
  <TMPL_VAR NAME="DATE_TIME">  
  <TMPL_VAR NAME="TOPIC">  
  <TMPL_VAR NAME="MESSAGE">  
  <TMPL_IF NAME="ARE_THERE_ANY_ANSWERS">  
    <TMPL_LOOP NAME="ANSWERS">  
      <TMPL_VAR NAME="ANSWER_AUTHOR">  
      <TMPL_VAR NAME="ANSWER_DATE_TIME">  
      <TMPL_VAR NAME="ANSWER_MESSAGE">  
    </TMPL_LOOP>  
  <TMPL_ELSE>  
    <!-- if there are no answers, place your individual message here otherwise leave blank -->  
  </TMPL_IF>  
  <TMPL_IF NAME="ANSWERS_ALLOWED">  
    <TMPL_INCLUDE NAME="path/to/answerform.tmpl">  
  <TMPL_ELSE>  
    <!-- if answering is not allowed, place your individual message here otherwise leave blank -->  
  </TMPL_IF>  
</TMPL_LOOP>

Was der Designer für einen Doctype verwendet, wie er die Überschrift präsentiert, ob er evtl. noch eine Headergrafik obendrüber haben will, wie er den Nachrichtenblock darstellen möchte - als (un)geordnete Liste oder in einer Tabelle, ob Autor, Datum/Uhrzeit und Thema in einer Zeile nebeneinander stehen sollen oder ebenfalls in einer Liste oder in P-Elementen, das kann er frei nach seinen Wünschen bzw. Kundenvorgaben entscheiden, packt das entsprechende HTML drumherum und stylt das Ganze mit CSS. Bei deinem Ansatz müsste er in den Perl-Code einsteigen und dort drin herumfriemeln - mit nicht absehbaren Ergebnissen.

Siechfred

PS: ich habe den Titel mal geändert, besser spät als nie :-)