Ik ga dus nu voor mijn site een template engine knutselen, maar ik heb al bij de scripts gekeken, maar daar kan ik niet zo veel uit op maken hoe het nou precies werkt...
Wat is de beste manier om een GOEDE template engine te maken? (de reden dat ik niet smarty e.d. download, omdat ik 1: die niet snap 2: die niet werkt op mijn host(kweenie waarom) 3: ik wil niet zo iets uitgebreid, ik wil het gewoon zelf kunnen maken, niet dat ik alles download.. ik heb het veel liever zelf gemaakt.. + dat ik dan geen reclame op mijn site hoef te zetten...
<?
require_once("parser.class.php"); // het script dus
$parse = new parser("template.tpl"); // de template
$parse->assign("pname", "henk en annie zitten op de wc"); //naam van blok zonder [ of ] + inhoud
$parse->assign("content", include 'registger.php'); // zie hierboven
$parse->output(); // de pagina outputten
?>
wat ik dus net ff in elkaar had geflanst?
Omdat include een php-bestand include, alsof het inline is. Dus de uitvoer van het script wordt niet teruggegeven door include.
Een andere oplossing is gebruik maken van ob-control in PHP. Voorbeeld:
dus voor mij word het dan:
<?php
ob_start();
require_once("parser.class.php"); // het script dus
require 'mijn_include.php';
$cont = ob_get_clean();
$parse = new parser("template.tpl"); // de template
$parse->assign("pname", "henk en annie zitten op de wc"); //naam van blok zonder [ of ] + inhoud
$parse->assign("content", $cont); // zie hierboven
$parse->output(); // de pagina outputten
?>
??
En dan moet natuurlijk user_stats() wel zijn uitvoer teruggeven met 'return' in plaats van 'echo'. Gebruik je toch 'echo' binnen die functie, dan zal je er weer ob_start() en ob_get_clean() omheen moeten gebruiken. Die vangen namelijk alle uitvoer op en ob_get_clean() geeft de uitvoer terug als een string.