login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > PHP


Gegevens:
Geschreven door:
XenoX
Moeilijkheidsgraad:
Normaal
Hits:
22818
Punten:
Aantal punten:
 (4.05)
Aantal stemmen:
22
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (6)
 


Tutorial:

TemplateEngine: TemplatePower

1. Inleiding
2. Begin
3. Array assigns
4. Blocks
5. Template in variable


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.

Je kan TemplatePower downloads op de volgende website:
http://templatepower.codocad.com/

 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:
Code:
<html>

<head>
<title>{titel}</title>
</head>

<body>
<h1>Welkom {persoon}!</h1>
</body>

</html>
 
Code:
<?php
include("class.TemplatePower.inc.php");

$tpl = new TemplatePower("index.tpl");

$tpl->prepare();

$tpl->assign(array("titel" => "TemplatePower",
                                "persoon" => "XenoX"
        ));

$tpl->printToScreen();
?>

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.

We maken weer een template bestand aan:
Code:
<html>

<head>
<title>{titel}</title>
</head>

<body>
<h1>Welkom {persoon}!</h1>

<!-- START BLOCK : rij -->
{id} : {naam}
<!-- END BLOCK : rij -->
</body>

</html>

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.
Code:
<?php
include("class.TemplatePower.inc.php");

$tpl = new TemplatePower("index.tpl");

$tpl->prepare();

$tpl->assign(array("titel" => "TemplatePower",
                                
"persoon" => "XenoX"
        
));

$tpl->newBlock("rij");

$tpl->assign(array("id" => "1",
                                
"naam" => "Joël"
        
));

$tpl->newBlock("rij");

$tpl->assign(array("id" => "11",
                                
"naam" => "FangorN"
        
));

$tpl->newBlock("rij");

$tpl->assign(array("id" => "20",
                                
"naam" => "Wijnand"
        
));

$tpl->newBlock("rij");

$tpl->assign(array("id" => "25",
                                
"naam" => "XenoX"
        
));

$tpl->printToScreen();
?>

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.
Code:
<?php
include("class.TemplatePower.inc.php");

$tpl = new TemplatePower("index.tpl");

$tpl->prepare();

$tpl->assign(array("titel" => "TemplatePower",
                                "persoon" => "XenoX"
        ));

$tpl->newBlock("rij");

$tpl->assign(array("id" => "25",
                                "naam" => "XenoX"
        ));

$tpl->newBlock("blockinblock");

$tpl->printToScreen();
?>


 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();
Code:
<?php
include("class.TemplatePower.inc.php");

$tpl = new TemplatePower("index.tpl");

$tpl->prepare();

$tpl->assign(array("titel" => "TemplatePower",
                                
"persoon" => "XenoX"
        
));

$template = $tpl->getOutputContent();
?>

De variable $template bevat nu de geparste template.

 top


« Vorige tutorial : Gd Library Deel 2 Volgende tutorial : TemplateEngine: Smarty »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.024s