Forum » Server-Side scripting » Template parser
Berichten: 409
avatar
Offline Stuur privebericht
Ik heb een simpele template parsen gezocht op internet en deze gevonden;

template_class.php;
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class template
{
    var 
$templatecontent;
    var 
$templatefile;
  
    function 
parser($file)
    {
        
$this->templatefile $file;
        
$this->templatecontent file_get_contents($this->templatefile) or die("error");
    }

    function 
assign($block$content)
    {
        
$block '[' $block ']';
        
$this->templatecontent str_replace($block$content$this->templatecontent);
    }
    
    function 
output()
    {
        echo 
$this->templatecontent;
    }
}


Me index
index.php;

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
include_once("class/template_class.php");

$tpl = new template();

$tpl->parser("template/index.tpl");
$tpl->assign("title""xxxx");
$tpl->assign("content""welcome");
$tpl->output();


De index.tpl
index.tpl;

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
<html>
<
head>
<
title>[title]</title>
</
head>
<
body>
[
content]
</
body>
</
html>


Kan ik nou php in de index.tpl zetten, als het niet zou kunnen waar & hoe dan?

Gr.
Youri
28-07-2010 23:38
Dit topic is 114 keer bekeken door 25 verschillende leden
Reacties op: "Template parser"
1
Regelnasi
Berichten: 1092
avatar
Offline Stuur privébericht
Ik heb geen idee van .tpl bestanden, maar je kan het proberen om onder je [content] dus een
Code | Selecteer Alles
minimaliseren
1
<?php echo "hoi"?>
te doen.

Of een wat geadvanceerde code natuurlijk .
28-07-2010 23:40
Berichten: 409
avatar
Offline Stuur privébericht
Nee dat lukt niet dan krijg je niks te zien.

Had ik erbij moeten zetten dat dat niet lukte.

Iemand?
28-07-2010 23:41
Regelnasi
Berichten: 1092
avatar
Offline Stuur privébericht
http://www.criminalspoint.com/db/download/517.html

Bekijk dit eens
Mischien dat je hier wat wijzer uit word.

Dit is ook een .tpl CMS, als je hem uitpluist vind je wel iets waar je .php ook kan gebruiken.
28-07-2010 23:43
Berichten: 409
avatar
Offline Stuur privébericht
Word er niks wijzer van zitten maar paar bestandjes in? Alleen tpl bestanden verder niks?

Iemand anders?
28-07-2010 23:46
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Dat gaat niet lukken.

Wat je kan doen is het volgende:
Laat Template:arser() (dat is de naam (hernoem deze method aub naar "set_file" of iets anders, zolang het maar duidelijker is dan "parser" van de method, zo roep je hem dus niet aan) alleen $this->templatefile zetten.

Heel $templatecontent (een property) kan weg.
Laat Template::assign() een waarde aan een array toevoegen. (nieuwe property is dus nodig)
Het vervangen is dus niet meer van toepassing.

De magie gebeurt in Template:utput():
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
public function output()
{
    
extract($this->nieuwepropertyhierEXTR_SKIP);

    require 
$this->templatefile;
}


en tada!
Je kunt gewoon php gebruiken!
Sterker nog, je moet php gebruiken...
[miauw] wordt dus <?php echo $miauw; ?> (of <?=$miauw?> als short_open_tag aan staat en je het niet langer wilt hebben)
29-07-2010 00:08
Reageer op: "Template parser"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden