Inleiding
Templates hebben één heel mooi doel, namelijk om
PHP en HTML te scheiden. Zonder templates komt het vaak voor dat je een heel
groot script hebt gemaakt, met HTML ertussen en dat je achteraf iets wil
aanpassen aan het uiterlijk. Je moet dus een heleboel regels gaan doorspitten
totdat je de juiste regel uiteindelijk vind. Als je dit met templates doet, dan
weet heb je een bestand van hooguit 100 regels, met alleen maar HTML erin. Hier
kun je dus heel snel een kleine aanpassing maken. Verder zijn templates heel
handig als je een website wil hebben met meerdere lay-outs.
top Begin
Eerst maken we een bestandje met de naam index.tpl:
Code:
<html>
<head>
<title>index</title>
</head>
<body>
<h1>Welkom {persoon}!</h1>
</body>
</html>
Je ziet dat ik geen persoon heb opgegeven. Alle dingen in een .tpl pagina met {
} eromheen zijn zogenaamde 'templatepower variabelen'.
Nu maken we het bestandje index.php aan:
Code:
<?php
include("class.TemplatePower.inc.php");
$tpl = new TemplatePower("index.tpl");
$tpl->prepare();
$tpl->assign("persoon", "XenoX");
$tpl->printToScreen();
?>
Zo ziet een begin van een PHP pagina met templatepower eruit. $tpl = new TemplatePower("index.tpl"); Hier maakt hij een variable met
het template object aan en zegt welke template pagina hij moet gebruiken. $tpl->prepare(); Deze functie moet je altijd uitvoeren voordat je de template
gaat parsen. $tpl->assign("persoon", "XenoX"); Hier zegt hij, zoek
naar {persoon} en verander dat in XenoX. $tpl->printToScreen(); Hier print hij de template.
top Array assigns
Je kan ook met de assign functie meerdere templatepower variablen tegelijk
omzetten. Dat doen we op de volgende manier:
Nu zie je dat er geen tweede parameter meer is opgegeven. Dat is zo omdat die nu
in de array zit.
Je gebruikt het zo: array("<zoeknaar>" => "<vervangdoor>").
top Blocks
Je kan in het templatebestand ook blocks aan maken. Blocks zijn stukjes code die
je kan herhalen, weglaten, tonen wanneer je ze nodig hebt.
Nu kan je de block 'rij' zo vaak als je wilt herhalen. De nieuwe block komt
onder de andere. Als er nog geen block is komt de block waar je hem hebt
gedefineerd.
Dit script zal nu eerst de templatepower variablen {titel} en {persoon}
vervangen en daarna een lijstje tonen met het id nummer en de naam van wat
crewleden.
Als je een block in een block wilt gebruiken kan dat. Let wel op dat je nooit 2
blocks met dezelfde naam gebruikt want dan gaat het mis.
Als je een block in bijvoorbeeld de block 'rij' hebt en je wilt die aanmaken dan
doe je gewoon een $tpl->newBlock("blocknaam"); na dat je de block
'rij' hebt aangemaakt.
top Template in variable
Als je de template niet wilt printen, maar in een variable wilt hebben, om hem
bijvoorbeeld via een email mee wilt verzenden, doe je dat via getOutputContent();