Struppi: Systemlast / Module nicht einbinden

Beitrag lesen

Um auf das Produkt Beispiel zurück zukommen, dort ist es sehr wohl eine Frage ob ich eine Auflistung aller Produkte habe oder eine Auflistung inklusiver einiger Eigenschaften. Oder ob jetzt nur ein Informationstext angezeigt wird. Sicher ist dies mit Templates zu lösen, aber da hätten wir schon drei  unterschiedliche.

Nein, ein einziges mit Alternativen.

Das ist mir nicht klar. Im Template steht dann sowas wie:

<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>

Da kann kein Designer etwas mit Anfangen.

Nach deiner Logik müßte ich dann ein Schleife im Template programmieren können und innerhalb dieser auch die Möglichkeit zusätzliche Elemente (z.b. ein <p> Absatz für eine Beschreibung zu integrieren)

Ja, genau. Aber das ist Aufgabe des Erstellers der Software, während die Aufgabe des Designers ist, diese Ausgaben hübsch aussehen zu lassen. Letzterer muss nicht wissen, wie man in dem Template eine Schleife einbaut oder eine bedingte Anzeige. Er muss nur wissen, welches Element er anfassen muss, um eine bestimmte Optik zu erzeugen. Wenn ein Designer auch Templatevariablen oder -anweisungen anfassen muss, dann ist das Template entweder schlecht dokumentiert oder taugt am Ende nichts.

Das widerspricht zumindest teilweise dem was Christian über den Zweck von Templates sagt. Und entspricht dem was ich teilweise sage.
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.

Dann ist sie nur für ein Mindestmaß anwendbar. Das ist doch der Punkt, wie Siechfred auf seiner Seite versucht HTML::Template einem näher zu bringen ist das ganze ja kein Problem, doch jeder hat auf seiner Seite wesentlich komplexere Strukturen, die z.T. HTML::Template auch kann, nur bin ich dann nach wie vor an einem Punkt wo ich das Template programmieren muss obwohl ich im Programmcode schon weiß was ich ausgeben muss.

Du programmierst nicht für dich, sondern für den Anwender, und um nichts anderes geht es m.E., denn darüber, dass es dir als Ersteller der Software egal ist, ob du was im Skript oder an einem Template umstellen musst, sind wir uns sicher einig. Doch was ist, wenn ein Anwender deiner Software mit null Ahnung von Perlprogrammierung einfach nur ein anderes Header-Logo haben will? Dem willst du zumuten, dass er sich durch deine Scripte wühlt, bis er die entsprechende Anweisung gefunden hat? Für manche ist es schon ein Ding der Unmöglichkeit, diese tollen Konfigurationsblöcke am Anfang mancher Scripte anzupassen.

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

Der Designer interessiert sich ja nicht für die Struktur, sondern für das optische Ergebnis und da ist selbst mit meiner Methode das Logo an jedem x-beliebigen Platz platzierbar

Ja, aber nicht ohne Kenntnisse sowohl in HTML und CSS als auch in Perl. Ein Anwender einer Software muss auf den ersten Blick sehen, was Sache ist, und diese Möglichkeit bietet ihm ein vernünftiges Template. Bei deinem Ansatz ist der Anwender gezwungen, in die Scripte zu schauen, was ein gewisses Maß an Fachwissen voraussetzt, bei Templates hingegen hat er HTML im Klartext stehen und sieht auf den ersten Blick, wo er drehen muss.

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. In der CSS Datei steht dan  sowas:

#logo
{
...
}
#logo img
{

}
#logo h1
{
..
}

Da kann jeder beliebig dran schrauben.

Soweit du Software ausschließlich für deinen Einsatz programmierst, ist die Diskussion, ob Templates oder nicht, genauso akademisch wie eine Diskussion über semantisch korrekten Einsatz von HTML-Elementen :-)

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.

Struppi.