Mailinglisten-Archive |
On Sun, 2002-07-28 at 17:42, Ralf Geschke wrote: > Zum einen ist es selbstverstaendlich moeglich, Templates in mehrere > Schnipsel zu zerteilen und jene nach Bedarf einzubinden. > Dies klappt von Programmierer-Seite aus vorzueglich. Keine Frage. > Andererseits - und hier musste ich mich vom Designer auch > erst ueberzeugen lassen - ist dieses Vorgehen in der Praxis > mitunter gar nicht erwuenscht. Ebent. Genau das habe ich vor Deinem "Noe" geschrieben ;) Ein mächtigeres Templatesystem (mit einer im Template liegenden Logik) ist aber eher in der Lage, alles in einem einzigen Template abzuhandeln, als eines, das mit einem vergleichsweise dummen Template arbeitet. > Was die "Unter-Templates" anbetrifft - ich schaetze, Du meinst > Ausgaben, die von Fall zu Fall unterschiedlich aussehen sollen. Naja, die würde ich nicht in separate Sub-Templates packen. Eher sowas wie: index.tpl - Das Template, das den groben Rahmen erzeugt menu.tpl - Das Untertemplate fürs Menü, das innerhalb von index.tpl aufgerufen wird artikel.tpl - Das Template, das aufgerufen wird, wenn im Inhaltsbereich von index.tpl ein Artikel erscheinen soll. > 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. Ab hier geht Smarty einen anderen, wie ich finde: eleganteren Weg. Die beiden alternativen Blöcke werden so zusammengefaßt: {section name array-mit-den-daten} Hier ist Dein erster Block {sectionelse} Hier ist Dein zweiter Block, wird ausgeführt, wenn das array leer ist {/section} Finde ich transparenter, da im Template selber klar wird, wie die beiden Blöcke zusammenhängen. Das ist IMHO auch für den HTMLer einsichtiger. Egal, wer diesen Code reinschreibt, der PHPler oder der HTMLer - hinterher muß man nur in eine Datei gucken, um zu verstehen, wie's funktioniert. > > Außerdem soll er die Möglichkeit haben, die Dinge, die ihn direkt > > betreffen, auch selber zu beeinflussen. > Naja, Kommunikation zwischen Designer und Programmierer sollte > trotz Einsatz von Templates noch moeglich sein. ;-) ;-) Deshalb bauen wir ein System, das möglichst so kryptisch wird, daß der HTMLer ständig den PHPler fragen muß, wenn er ein Zeichen ändern will. Also lassen wir das doch besser mit den Templates, oder nicht? Nee, der Sinn der Sache ist doch, daß jeder möglichst das sieht, das er benötigt, und möglichst nicht das, was nur der andere braucht. Und da (hier sind wir uneins) bin ich der Meinung, daß eine Lösung, die die Modifizierung von Variablen und die Logik der Blockausgabe ins Template legt und dafür mächtigere Templatefunktionen bietet, klar die bessere Lösung vor einer ist, bei der zwangsweise alles im Script ablaufen muß, weil's das Template nicht kann. Da Du in so einem System genauso restriktiv arbeiten kannst, wenn Du willst, wie in einem weniger mächtigen System, ist dem IMHO lediglich der Performance-Nachteil entgegenzuhalten. Den macht aber Smarty dadurch wieder wett, daß es eine PHP-Datei aus Template und Script generiert, die immer dann ausgeführt wird, wenn sich Template oder Script nicht geändert haben. Damit verbindet Smarty die Vorteile eines mächtigen Templatesystems mit denen einer Datei, die aus PHP und HTML besteht. > Andererseits ist das Abschneiden nach x Zeichen eine klassische Aufgabe, > die normalerweise im Skript passiert, bzw. eben bevor die > Ergebnisse ins Template eingesetzt werden. Normalerweise. Aber: Welches ist der bessere Weg? IMHO ganz klar der, das über einen Modifier im Template zu machen. Wenn hier mein HTMLer gemeinsam mit dem Gestalter vor dem Monitor hockt und an der Schriftgröße, Zellenbreite, Grafik, etc. dreht, so lange, bis alles paßt, dann ist es produktiv, wenn er den Einfluß darauf selber hat, nach wievielen Zeichen abgeschnitten wird. Daß er dann wahlweise im PHP-Code wühlen oder aber den PHPler dazuholen muß, ist nicht wirtschaftlich. > Aber wie erwaehnt - der Code ist offen und kann gerne erweitert > werden. Die Callback-Idee von Ulfs IT[x] fand ich beispielsweise > nicht schlecht. Callback? > > 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 ;-) Wieder was gelernt ;) cu Tobias
php::bar PHP Wiki - Listenarchive