Templates erstellen

Hallo Experten,

ich würde gerne wissen wie man ein Template für den Einsatz mit PHP erstellt. Gibt es hiefür geeignete Tools, die einem ein wenig arbeit abnehmen oder ist da Handarbeit angesagt.

Irgendwie habe ich die Arbeitsweise / Prinzip von Templates noch nicht ganz verstanden. Bislang habe ich PHP Code und HTML fleißig gemischt…

Vielleicht könnt Ihr mir da weiterhelfen ?

Gruß

Hallo,

eine sehr schöne Template-Engine ist Smarty. Wikipedia erklärt ausführlich wie es geht.
http://de.wikipedia.org/wiki/Smarty

Ciao
So9

http://www.sven-of-nine.de

Hallo,

das habe ich mir schon einmal angesehen.
Scheinbar liegt mein Problem zwischen den Ohren…wozu benötige ich diese Engine ?

Worauf basiert denn das Template eigentlich ?

Tut mir leid für diese Fragen ? Noob :wink:

Gruß

Hallo

Hallo,

das habe ich mir schon einmal angesehen.
Scheinbar liegt mein Problem zwischen den Ohren…wozu benötige
ich diese Engine ?

Eigentlich ist es ganz einfach. Vielen PHP-Programmierer neigen zu folgendem Code

echo „Das ist eine Zelle“

Das mag für ein kleines Gästebuch noch funktionieren aber wenn das Projekt größer (oder modular) wird, wird der Code extrem unübersichtlich und der Programmierer wird gleichzeitig der Designer was er aber im zweifelsfall nicht sein sollte.
Da aber der Designer nicht programmieren kann wird er kaum ein schönes Design hinkriegen.
Hier setzt eine Template Engine an. SIe trennt einfach den Programmierer und den Designer.
Der Designer baut schönen HTML-Code und fügt nur „Fenster“ ein an welchen dynamische Inhalte eingefügt werden können.
Der Programmierer schreibt dann ein Programm das den dynamischen Inhalt erzeugt und die TemplateEngine setzt alles zusammen.

Um im obigen Beispiel zu bleiben :

Designer :

$inhalt$

Programmierer :

smarty-\>assign("inhalt","das ist eine Zelle");

Smarty :

Das ist eine Zelle

Ich hoffe das hilft die weiter :smile:

Ciao
So9

http://www.sven-of-nine.de

p.s.
Steht in so auch in Wikipedia drin.

Worauf basiert denn das Template eigentlich ?

Tut mir leid für diese Fragen ? Noob :wink:

Gruß

Vielen Dank,

verstehe jetzt die Wirkungsweise.
Bislang war ich leider Designer und Programmierer in einem…

Das bedeutet ich muss lediglich die Arbeitsschritte teilen und die Syntax von SMARTY lernen :-o

Gruß

Hi Knax,

ich würde gerne wissen wie man ein Template für den Einsatz
mit PHP erstellt. Gibt es hiefür geeignete Tools, die einem
ein wenig arbeit abnehmen oder ist da Handarbeit angesagt.

Templates erstellen ist die simple Trennung von PHP und (X)HTML, und ja - es ist Handarbeit, so wie eine statische (X)HTML-Seite zu erstellen, welche aber zusätzlich zur simplen Strukturierung eine Logik enthält, welche von den serverseitigen Skripts aus über die Template-Engine gesteuert wird. Der Vorteil ist eine sinkende Komplexität der PHP-Programme (da viel in das Template verlagert wird und Standard-Logiken in die Template-Engine integriert sind), dadurch kürzerer und leichter lesbarer PHP-Code. So ungefähr wie Layout von Markup trennen - gewissermaßen arbeitet man dann in drei Ebenen - Serverseitiges Skript, Markup und Layout - ohne das eine in das andere zu mischen. Eine feine Sache, besonders bei umfangreichen Projekten.

Ich hab Smarty getestet, die Syntax gefiel mir aber auf Dauer nicht. Inzwischen arbeite ich mit TinyButStrong - kann ich wärmstens weiterempfehlen: http://tinybutstrong.com - das Manual ist englisch, die deutsche Übersetzung nicht vollständig. Wenn das keine Hürde für Dich ist, würde ich vor Smarty zu TBS raten.

Ciao
Rudy

Hallo zusammen,
ich arbeite mit include bzw. require.

Ich habe in einem zentralen Verzeichnis Kopf- und Fußzeile und lese dies in die Seite ein.

Bsp.

<?php require ("kopf.inc");
?\> ... Hier ist der variable Inhalt ... <?php require ("fuss.inc");
?\> Wo ist nun der Unterschied bzw. der Nachteil gegenüber eines Templates? Prinzipiell stellt dieses Schema doch ein Template dar, oder liege ich hier falsch? Danke und Gruß Marcel

naja das ist keine komplette trennung von design und programm.
Was ja einer der Hauptvorteile von Templatesystemen ist

Gruß

Hi Rudy,

danke für die ausführliche Info.
Bislang habe ich meine Layouts mit Fireworks gemacht und darin dann HTML Platzhalter definiert, die ich dann mit PHP Inhalten gefüllt habe.

Bislang gefiel mir diese Variante ganz gut. Nun habe ich aber ein Shopsystem von EOXID gesehen, dass auf Templates basiert. Ich habe mich gefragt wie ich diese Templates ohne viel „Aufsehen“ anpassen kann und habe ehrlich gesagt nur Bahnhof verstanden.

Wie es scheint muss ich mich wohl mit dieser Thematik beschäftigen um auf der Höhe der Zeit zu bleiben schätze ich…
Bislang war ich froh mit PHP zurecht zu kommen…und nun auch noch das :wink:

Gruß Knax

Hi Knax,

Bislang habe ich meine Layouts mit Fireworks gemacht und darin
dann HTML Platzhalter definiert, die ich dann mit PHP Inhalten
gefüllt habe.

Fireworks? Ui, ich hab in meiner Anfangszeit mal mit einer uralten Version gearbeitet - wie das Programm die Rollover-Bilder aufspaltete fand ich ganz furchtbar und habs lieber sein lassen. Ich hoffe die haben sich inzwischen gebessert :wink:

Bislang gefiel mir diese Variante ganz gut. Nun habe ich aber
ein Shopsystem von EOXID gesehen, dass auf Templates basiert.
Ich habe mich gefragt wie ich diese Templates ohne viel
„Aufsehen“ anpassen kann und habe ehrlich gesagt nur Bahnhof
verstanden.

Bei Template-Systemen reicht es nicht mehr, „nur“ XHTML und PHP zu verstehen, man muss sich auch in das Template-System einarbeiten. Dann ist es aber sehr schön. Beispiel mit TBS:

Template:

...

Domains
DomainnameInhaber[domains.domainname;block=tr][domains.owner][domains.domainname;block=tr][domains.owner][domains;block=tr;nodata]Keine Domains vorhanden.

PHP:

<?php ...<br /> $tbs-\>loadtemplate('template.html');
 $tbs-\>mergeblock('domains', $conn, 'SELECT domainname, owner FROM domains ORDER BY domainname');
 $tbs-\>show();
?\>

Das gibt eine Liste der Domains aus der Tabelle ‚domains‘ aus, mit Kontrastzeile (klasse ‚odd‘), oder einer leerer Tabelle nur mit der Zeile ‚keine Daten vorhanden‘ wenn die Tabelle leer ist. Für die Template-Engine ist vor allem das, was zwischen den eckigen Klammern steht relevant, anhand dessen wird mit den umliegenden Tags (im Beispiel alles zwischen und ) die Ausgabe generiert. Der äquivalente PHP/XHTML-Mix ist unverhältnismäßig kompliziert für diese einfache Anwendung, da brauchst Du variablen, whiles, ifs, …

TBS gefällt mir deshalb besser als Smarty, weil bei Smarty die Templates wie Programme aussehen (Schleifen, etc.), TBS aber mit einer einleuchtenden Blocklogik arbeitet. Zudem lassen sich die Templates auch ohne Template-Engine gut stylen. Und alles in allem ist es nur eine Klasse.

Wie es scheint muss ich mich wohl mit dieser Thematik
beschäftigen um auf der Höhe der Zeit zu bleiben schätze
ich…

Du sparst dadurch idealerweise ne Menge Zeit, das ist nicht als modischer Trend zu verstehen… ^^ Template-Systeme gibt es schon ziemlich lange. Früher dachte ich auch nicht, dass ich sowas mal brauchen könnte, aber nachdem ich mich intensiver damit auseinandergesetzt hatte, hat sich diese Ansicht schnell geändert.

Bislang war ich froh mit PHP zurecht zu kommen…und nun auch
noch das :wink:

Viel Spaß :smile:

Ciao
Rudy

Nun habe ich aber
ein Shopsystem von EOXID gesehen, dass auf Templates basiert.

gibt es dazu einen link?

Nun habe ich aber
ein Shopsystem von EOXID gesehen, dass auf Templates basiert.

gibt es dazu einen link?

Ja den gibt es: www.oxid-esales.com

Gruß Knax