Hi mensen,

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

Iemand?

MvG,
Niek
bij mijn weten en kennis doe je dit:


$parse->assign("content", include 'registger.php'); // zie hierboven


voor wat betreft de include niet zo.
wellicht gewoon dit:


$parse->assign("content", 'eventueel_de_map/registger.php'); // zie hierboven
niek schreef op 22.07.2006 13:43
maar waarom werkt dan bv dit niet:

<?
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:

<?php
ob_start();
require 'register.php';
$content = ob_get_clean();

$template->assign('content', $content);
?>
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
?>
??
Dat is een optie ja.
ok, bedankt!
ja het werkt, k zoek alleen nu nog ene manier om makkelijk functies erin te zetten.

$parse->assign("Statistieken", user_stats();");

gewoon?
niek schreef op 22.07.2006 14:59
ja het werkt, k zoek alleen nu nog ene manier om makkelijk functies erin te zetten.

$parse->assign("Statistieken", user_stats();");

gewoon?


[edit]
en dan natuurlijk de tpl file enal aanpassen, maar dit is het moeilijkste..
[/edit]
fijn dan is dat in iedergeval gelukt !!
suc6 met de rest :)
$parse->assign("Statistieken", user_stats();"); ???

$parse->assign("Statistieken", user_stats());

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.

Reageren