phpbar.de logo

Mailinglisten-Archive

[php] Templates allgemein

[php] Templates allgemein

Enrico Weigelt weigelt at metux.de
Mit Mai 5 12:52:56 CEST 2004


* Konstantin Rekk <k.rekk at intermatix.de> [2004-05-04 11:49:46 +0200]:

<snip>
> Ein foreach, das nur items ausgibt ist zwar Logik , aber Ausgabelogik, vieles 
> andere auch. Ein {$variable} für eine Ausgabe kann noch jeder Designer lernen.

Mir persönlich gefällt es aber deutlich besser, ein einfaches Template
iterieren (=mit den einzelnen Datensätzen wiederholen) zu lassen, statt
einer Schleife. Für uns Coder ist das vielleicht nur syntactic sugar, 
aber für nicht-Coder macht das zuweilen ein gewaltiger Unterschied.

In patTemplate löst man das z.b. so:

Ausfüllen in der Anwendung:
------------------------------
<?php 

$data_vorname  = array ( 'max', 'gunter', 'eberhard' );
$data_nachname = array ( 'schulz', 'becker', 'kunz' );
$data_tel      = array ( 11, 12, 13 );

$tmpl->addVar ( 'list:item', 'vorname',  $data );
$tmpl->addVar ( 'list:item', 'nachname', $data );
$tmpl->addVar ( 'list:item', 'tel', 	 $data );
...
------------------------

Template-Source:
----------------

<patTemplate:tmpl name="list">
    <TABLE>
	<TR> <TH> Vorname </TH> <TH> Nachname </TH> <TH> Telefon </TH> </TR>
    <patTemplate:tmpl name="list:row">
	<TR> <TD> {VORNAME} </TD> <TD> {NACHNAME} </TD> <TD> {TEL} </TD> </TR>
    </patTemplate:tmpl>
    </TABLE>
</patTemplate:tmpl>

-------------------------

Wir füllen also die Daten in das Template "list:row" ein, welches hier 
den Listeneintrag representiert. Da wir eine Reihe von Werten haben,
wird das hier also iteriert. 

Um die Liste schöner zu machen, könnten wir "list:row" auch als 
conditional-template schreiben, das entsprechend eines Zählers oder
eines Variableninhaltes verschiedene Gestalt annimmt ...

<snip>
> Und die Angst vor böswilligen Designern, die "backdoors" einbauen halte 
> ich ehrlich gesagt für etwas übertrieben. 
Wenn irgentjemand nicht-administratives Code einschleusen kann, dann ist
das immer ein Sicherheitsloch, ganz gleich wie nett derjenige ist. 
Es reicht, daß mal dessen account kompromittiert wird und schon hat man
den Salat.

Ansonsten hat pTemplate übrigends auch den Vorteil, daß man den
template-processor auf einem anderen host (z.b. auch im proxy) laufen 
lassen kann. 

> Xipe bietet die die Wahl - im Entwicklungsprozess noch über php-includes
> später dann mit reinen template includes zu arbeiten.
Genau das möchte ich ja unbedingt verhindern ...

> Auch kannst du TagLib (JSP) artige Elemente benutzen, oder auch eigene 
> schreiben. Ist also gleichzeitig eine Art Framework sowie auch ein fertiges 
> Templatesystem.
Das wäre Aufgabe eines Sitekits, also einem Framework für komplexe
Websites - das wäre eine Schicht drüber, und das sollte man nicht 
vermischen.

> Templates bei PHP (früher ja personal home page) ist ja eigentlich überhaupt 
> doppelt-gemoppelt, da php an sich eigentlich als Scriptsprache direkt in die 
> Ausgabe gehört (JavaBeans-artig), warum php jetzt analog zu JavaServlets 
> angewendet wird, liegt wohl daran, dass es leicht zu installieren , von jedem 
> Provider angeboten und anfangs von fast jedem leicht zu lernen ist, sogar von 
> Designern ;-)

Naja, php hat sich nun doch zu einer vollwertigen Scriptsprache entwickelt,
mit der man praktisch alles machen kann. php steht eigentlich i.W. etwa auf 
der gleichen Stufe wie perl und ist also auch für Standalone-Anwendungen
gut geeignet (wofür ich es auch bevorzugt verwende - z.b. auch Mailroboter,
Erzeugen von Configfiles, Datenbankspiegelung, usw, usw)


cu
-- 
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT service

  phone:     +49 36207 519931         www:       http://www.metux.de/
  fax:       +49 36207 519932         email:     contact at metux.de
  cellphone: +49 174 7066481
---------------------------------------------------------------------
 -- DSL ab 0 Euro. -- statische IP -- UUCP -- Hosting -- Webshops --
---------------------------------------------------------------------

php::bar PHP Wiki   -   Listenarchive