Templates need help !

Bl!zZzArD

Mitglied
tach

ich will mich jetzt mal mit den templates beschäftigen doch hab ich so gut wie kein plan davon.. ich hab zwar jetzt schon etwas darüber gelesen etc.. aber weiss trozdem noch nicht so richtig wie ich sie einsetzen soll..

Die HTML-Datei, die der Webdesigner erstellt hat, könnte zum Beispiel so aussehen:

<html>

<head>
<title>Templates mit der PHPLIB</title>
</head>

<body>

<h2>
{UEBERSCHRIFT}
</h2>

<p>
{TEXT}
</p>

</body>

</html>

Das dazu passende PHP-Skript sieht so aus:

<?php

/* Include-Datei der Template-Klasse */
include("/pfad/zur/datei/template.inc");

/* Template-Klasse initialisieren */
$tpl = new Template;

/* Datei bestimmen, die verwendet werden soll */
$tpl->set_file(array("page" => "content.tpl"));

/* Werte für Platzhalter festlegen */
$tpl->set_var(array("UEBERSCHRIFT" => $ueberschrift,
"TEXT" => $text));

/* Template parsen */
$tpl->parse("OUT","page")

/* geparstes Template ausgeben */
$tpl->p("OUT");

?>

mit sowas kann ich einfach jetzt noch nix anfangen weil keine großartige beschreibung dabei ist..
ich weiss ja auch nicht in welche datei ich was schreiben soll etc..
Also wenn mir jemand genau sagen kann wie cih des mit den templates anstellen soll
dann wäre ich echt froh ;)


THX
 
das sieht aus wie die phplib

sprich die Templates von Herrn Koehntopp,
oder liege ich da völlig falsch ??

Ich versuche das jetzt mal eben zu
erläutern kann aber in der kurzen mir
zustehenden Zeit leider nur die
Oberfläche ankratzen :

PHP:
<?php
//Hiermit includest du die Klasse die 
//vom System benötigt wird bzw. das
//System überhaupt ausmacht.
include("/pfad/template.inc");

//Hiermit initialisierst du die Klasse
$tpl = new Template;

//Hiermit legst du das Template PAGE fest
//Es benutzt die Datei content.tpl die
//allerdings jeden beliebigen Namen 
//tragen kann : z.B. xyz.html
$tpl->set_file(array("page" => "content.tpl"));

//Hiermit weißt du den Platzhaltern
//Uberschrift und Text die 
//Variablen $ueberschrift und $text,
//die du natürlich vorher füllen musst zu
$tpl->set_var(array("UEBERSCHRIFT" => $ueberschrift, "TEXT" => $text));

//Hiermit veranlasst du das System das
//Template PAGE zu parsen, sprich die
//Platzhalter im Text durch den Variablen
//Inhalt zu ersetzten
$tpl->parse("OUT","page")

//Hiermit sagst du dem System : Gib die
//Page mit dem ersetzten Platzhaltern 
//bitte an den Browser 
$tpl->p("OUT");
?>

Was es mit den Klassen bzw. der PHPLib
auf sich hat erfährst du unter :
http://www.koentopp.de/php und hier im Forum.

Gruß,
Mentor Jonathan
 
THX
aber des hat mir leider auch nix gebracht..
weil ich ja noch net mal weiss was in der template.php bzw content.php etc stehen muss...
deshalb peil ich davon auch gar nix..
 
immer mit der Ruhe ...

Erstmal hättest du vielleicht den ganzen
Artikel aufmerksamer lesen aus dem du die CodeSnippet hast :

"Ein Beispiel für die Anwendung der
Template-Klasse der PHPLIB: "

steht da .. das heißt du brauchst die
PHPLIB. Was das ist ? Nun, lies selbst :

http://www.dclp-faq.de/q/q-phplib-was.html

Da steht auch wo du sie bekommst und wie
du sie installierst. In der PHPLIB
enthalten ist auch die Datei Template.php
die du dann einfach nur noch includen
musst.

Selber schreiben wird schwierig, dazu
müsstest du erstmal PHP beherrschen und
ausserdem noch OOP und PCRE bzw. POSIX.

Und wenn dir das alles garnichts sagt
weißt du das du erstmal kleine Brötchen
backen solltest ..

(sorry for Posing, Folks)

Gruß,
Mentor Jonathan
 
ok jetzt versteh ich des schon mehr...
aber trozdem noch nicht alles..
weil wenn ich nen link in meiner navi
hab und durch den natürlich was anderes als main includet werden soll
wie muss ich des dann machen ?
 
moment

also wenn du was includen möchtest
ist das schon wieder ein ganz anderes
thema. aber ich glaube ich weiß worauf
du abzielst ..

versuch doch mal dir folgendes
vorzustellen :

Template = Container
Datenbank = Quelle
URL = Rohrleitung
Id = Ventil

Du speicherst deinen Content in einer
Datenbank. Dann schreibst du in dein
Menü einfach einen Aufruf im Stil von

PHP:
<a href="index.php?id=1">Home</a>
<a href="index.php?id=2">About</a>
<a href="index.php?id=3">Gbook</a>

Diesen Link klickst du an und die
Seite lädt neu. Du siehst nun in
der URL einen Link der so aussieht :

http://deinedomain.tld/index.php?id=x

Diese URL sagt deinem Script daß das
Ventil für deine Contentquelle "x" ist.
Dein Script holt sich jetzt von der
Quelle (deiner Datenbank) den Content
mit der ID "x" und füllt diesen in dein
Template, sprich er ersetzt die Platzhalter mit den passenden Inhalten.

Verstanden ?? Sonst löcher mich weiter.

Gruß,
Jonathan
 
Also Templates.
Koehntopps zu nehmen, ist eine art, aber zum lernen ists nicht ganz richtig.

Grundlage zu Templates:
Templates sollen dafür sorgen das HTML und Code getrennt wird.
Das hat mehrere Vorteile:

a) die Coder koennen am Code arbeiten und die Designer an den HTML Templates
(sprich viel gelobte Trennung von Logic und Presentation)

b)Bessere Übersicht in grösseren Projekten

c) Modulareres Design *(Modular ist das was Windows nicht ist :-)). Das heisst das Design ist absolut Leicht abänderbar ohne überhaupt an den PHP Code zu müssen.

und noch andere Vorteile.

Wie also programmiert mann Templatebasierend?

Koehntopp ist nicht nur Template basierend sondern auch OOP (geht mit PHP auch wenn ziemlich eingeschränkt)
Weswegen dieses evtl. zu umfangreich ist um sich da am anfang was abzuschauen.

Das nutzen von Include dateien ist schon eine schwache Art der modularen trennung.

Erstelle ein Ordener tmpl z.b.
in diesen knallst du nach und nach teile deiner Page. Wie z.b. ein header template welches den Start HTML code beeinhaltet:

headert.tpl.php:
Code:
<html>
   <title>Template Test</title>
<body bgcolor=#fffccc>
 <table width=100% border=0>
 <tr>
   <td>

Dann brauchst du einen footer

footer.tpl.php
Code:
 </td>
 <tr>
</table>
<br>
(C) by SuperSucker

Dann erstellst du z.b ein Content Contaienr

content.tpl.php
Code:
 <table width=800 align=center>
 <tr>
   <td>$menu</td>
   <td>$content</td>
  </tr>
  </table>

In deinem hauptfiles kannst du nun ganz easy deine Templates einbinden:

Code:
//--- includes
include('./tmpl/header.tpl.php');
include('./tmpl/footer.tpl.php');

// WAS WEIS ICH was aus der Datenbank laden 
while($res = mysql_fetch_array($q))
   $content .= $res["text"];

include('./tmpl/header.tpl.php');

Leuchtet ein, denk ich mal ;)
bei Koehntopp Templates wird das noch in Klassen gekapselt aber das Prinzip ist diesem ziemlich ähnlich.
 
OK
soweit klar!

aber wie kann ich da jetzt
nen link machen zu nem anderen content ?
und dann noch was.
ihr kennt doch sicherlich die esl-europe.net seite..
da sind die links ja dann immer nur auf die verzeichnise..
und ich denke mal die seite ist auch mit templates gemacht.
und wie würde das dann gehen ?

THX
 
Zurück