Template parser

  • Ik heb een simpele template parsen gezocht op internet en deze gevonden;


    template_class.php;


    Me index
    index.php;


    PHP
    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;


    PHP
    <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

  • Ik heb geen idee van .tpl bestanden, maar je kan het proberen om onder je [content] dus een

    PHP
    <?php echo "hoi"; ?>

    te doen.


    Of een wat geadvanceerde code natuurlijk ;).

  • Dat gaat niet lukken.


    Wat je kan doen is het volgende:
    Laat Template::parser() (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::output():

    PHP
    public function output()
    {
        extract($this->nieuwepropertyhier, EXTR_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)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!