phpbar.de logo

Mailinglisten-Archive

[php] =?us-ascii?Q?=3D=3Fiso-8859-1=3F?= =?us-ascii?B?ID0/dXMtYXNjaWk/UT9fPTNEPTNGdXMtYXNjaWk9M0ZCPTNGVVQ5U1JUc GZQ?= =?us-ascii?Q?TVCcGhwPTVEX0VtcGZlaGx1bm?= =?us-ascii?Q?d?= fZj?= 1GQ3JfVGVtcGxhdGVzX 1N5?= stem? =

[php] =?iso-8859-1? =?us-ascii?Q?_=3D=3Fus-ascii=3FB=3FUT9SRTpfP TVCcGhwPTVEX0VtcGZlaGx1bm d fZj?= 1GQ3JfVGVtcGxhdGVzX 1N5?= stem? =

Ralf Geschke php_(at)_phpcenter.de
Sun, 28 Jul 2002 17:42:13 +0200


On Son, 28 Jul 2002, Tobias Daur wrote:

> Meinem HTMLer hilft es sehr, wenn ein Template nicht in tausend
> Schnipsel geteilt wird, sondern je nach Komplexität an einem Stück
> bleibt oder aber noch ein oder zwei Untertemplates hat. Dann behält er
> die Übersicht. Dazu benötige ich aber Logik (Schleifen, Bedingungen) im
> Template.

Noe. ;-)

Zum einen ist es selbstverstaendlich moeglich, Templates in mehrere
Schnipsel zu zerteilen und jene nach Bedarf einzubinden.
Dies klappt von Programmierer-Seite aus vorzueglich. 

Dies waere auch meine Vorgehensweise aus Programmierer-Sicht, 
da ich z.B. den Kopf- oder Fussbereich in eine einzige Datei schreiben 
und jene nach Bedarf einbinden wuerde - ganz nach dem include-Datei-
Prinzip von PHP.

Andererseits - und hier musste ich mich vom Designer auch 
erst ueberzeugen lassen - ist dieses Vorgehen in der Praxis 
mitunter gar nicht erwuenscht. Und zwar daher, weil die einschlaegigen 
HTML-Editoren das Bearbeiten mehrerer Dateien in sehr komfortabler
Art und Weise zulassen, z.B. wenn eine Zeile im Kopfbereich
geaendert werden soll, welche in mehreren Template-Dateien 
vorkommt, so passiert dies einfach indem die jeweilige Zeile
markiert, editiert und dann mit zwei,drei Klicks in x-beliebig
vielen Dateien geaendert werden kann. Somit existieren zwar viele
HTML-Template-Dateien, in denen bis auf den Inhalts-Bereich
dasselbe drinsteht, aber genau dies wurde vom Designer
erwartet und kam dessen Arbeitsweise sehr entgegen. 

Was die "Unter-Templates" anbetrifft - ich schaetze, Du meinst
Ausgaben, die von Fall zu Fall unterschiedlich aussehen sollen. 
Klassisches Beispiel - in einer Datenbank werden keine Datensaetze
gefunden, weil noch nichts drin ist, oder es werden die Ergebnisse
zeilenweise ausgegeben. 

Fuer den ersteren Fall braucht man somit eine entsprechende
Fehlermeldung, die natuerlich nicht ausgegeben werden soll, 
wenn Datensaetze enthalten sind. 

Dazu bedient man sich einfach zweier Bloecke. Im ersten
steht die Fehlermeldung. Im zweiten findet sich ein weiterer
Block, indem eine Zeile der Ausgabe mit Platzhaltern enthalten
ist. 

Der ersten Block wird (vom Skript aus gesteuert) im Fehlerfall
ausgegeben, dabei wird der zweite durch einen Leerstring ersetzt,
damit es zu keiner Ausgabe des zweiten kommt. 

Dasselbe umgekehrt - falls Ergebnisse vorhanden sind, wird der
Fehlermeldungs-Block ausgeblendet, und die Ergebnisse im
zweiten Block zeilenweise ausgegeben. 

Von Programmierer-Sicht ist dies ziemlich einfach zu implementieren,
da die verschiedenen Faelle sowieso im Skript abgefangen werden muessen,
damit es zu keiner unerwuenschten Ausgabe kommt. 
Und der Designer kann (falls er das wuenscht) alle Ausgaben in
einer Templatedatei halten, ohne sich den Kopf ueber irgend welche
Bedingungen zerbrechen zu muessen. 

> Außerdem soll er die Möglichkeit haben, die Dinge, die ihn direkt
> betreffen, auch selber zu beeinflussen. Ein IMHO gutes Beispiel ist die
> von mir schon erwähnte Möglichkeit, einen String nach einer bestimmten
> Zeichenzahl abzuschneiden und mit einem "..." zu versehen. Hier muß der
> HTMLer in seinem Code die Werte so lange ändern können, bis sein Code
> paßt, ohne dafür auch nur ein Wort mit dem Programmierer zu wechseln.

Naja, Kommunikation zwischen Designer und Programmierer sollte
trotz Einsatz von Templates noch moeglich sein. ;-)
Wobei - das von Dir erwaehnte Beispiel mag vielleicht sinnvoll sein. 
Andererseits ist das Abschneiden nach x Zeichen eine klassische Aufgabe,
die normalerweise im Skript passiert, bzw. eben bevor die 
Ergebnisse ins Template eingesetzt werden. 

Aber wie erwaehnt - der Code ist offen und kann gerne erweitert
werden. Die Callback-Idee von Ulfs IT[x] fand ich beispielsweise
nicht schlecht. 

> Arbeitsteilung. Templatesysteme wie PHPLIB sind IMHO einseitig aus
> Programmierersicht entwickelt. Es geht ausschließlich um die Auslagerung
> von HTML, alles andere bleibt in der Hand des Programmierers.

Genau, denn da gehoert die Logik auch hin!
Der Designer soll sich gar nicht darum kuemmern muessen. Wenn 
er will, kann er sich ja mit dem Programmierer kurzschliessen
und absprechen. Ansaetze fuer bessere Arbeitsteilung oder
Optimierung gibt es sicherlich immer. 

> Die umgekehrte Perspektive nimmt PHP-Temple von Jörg Krause ein: Auch
> bei komplexeren Standardaufgaben wird keine Zeile PHP nötig, weil die
> Templatesprache dem HTMLer alles bietet, was er benötigt.

Super, noch 'ne Sprache... ;-) Warum sich dann nicht gleich mit 
XML/XSLT & Co beschaeftigen?

> Aber Du hast mich neugierig gemacht - ich schaue mir Apolda noch mal in
> Ruhe an :)

Du meinst Apolda Template - Apolda ist 'ne Stadt in Thueringen - 
http://www.apolda.de ;-)

Beste Gruesse,
   Ralf
-- 
: www  : http://www.bttr.org  :  mail: ralf_(at)_bttr.org
: Eine Site rund um MySQL     :  http://www.bttr.org/mysql/
: Privacy now! My Public Key  :  http://www.bttr.org/geschke.asc


php::bar PHP Wiki   -   Listenarchive