Hallo,

Ik ben bezig met het overstappen van TemplatePower naar Smarty.

Nu zit ik met het volgende probleem.
Bij templatepower heb je de functie PrintToScreen.

Bij smarty het je volgens mij niet zo functie maar ik zit met een probleempje.
Ik wil me template bestanden met inhoud apart houden van me index layout.

In templatepower had ik een index.tpl bestand met me index er in.
Dan deed ik in mijn php code AssignInclude("content", template."/pagina.tpl");

En die werd dan netjes geprint op het de plek in index.tpl waar <!-- INCLUDE BLOCK : content --> staat.

Nu heb ik een 2 aparte bestanden gemaakt, Header.tpl en Footer.tpl.
Die had ik eerst geinclude d.m.v. {include file='header.tpl'} maar dan stuit ik op problemen met me code.

Ik doe als laatste een berekening van de laadtijd van de pagina.
En die plaatst die dan in de header van de pagina.

Aangezien in nu moet werken met display() en die gelijk de output geeft kan ik daar niets meer veranderen.

Met template power deed ik dit:

Bestand.php
PHP Code:
<?
require_once("include/include.inc.php");
$tpl->assignInclude("pagina"template."/contact.tpl");
$tpl->prepare();
$tpl->assign("pagina""Contact");
$tpl->newBlock("layout");
require_once(
pad."/include/output.inc.php");
?>
En in me output.inc.php deed ik dit:
PHP Code:
<?
// Parsetijd berekenen
$core["tijd"] = getmicrotime() - $core["tijd"];
 
// Parse statistieken
$parsetijd_100 $core["tijd"] / 100;
$db round(($sql->sql_tijd $core["tijd"] * 100), 1);
$php round((100 $db), 1);
$tpl->assignGlobal("parse_info""{tijd}");
// $tpl->assignGlobal("aantal", $core['aantal_leden']);
if($core["ingelogd"]) {
$tpl->newBlock("ingelogd");
$tpl->assign("layout.gebruikersnaam"$core['gebruikersnaam']);
 
}
else{
$tpl->newBlock("gast");
$tpl->assign("layout.gebruikersnaam""Niet ingelogd");
}
 
ob_start(); 
$tpl->printToScreen();
 
$content ob_get_contents();
ob_end_clean();
echo 
str_replace("{tijd}" round($core["tijd"], 4) . " (PHP: " $php "% SQL: " $db "%) [$sql->querys]"$content );
?>
Daar gooide die de template helemaal in elkaar en reaplaced die de tijd.
Nu met smarty moet ik het zo doen als ik het zelfde voor elkaar wilt krijgen.

PHP Code:
<?
require_once("include/include.inc.php");
$template "contact.tpl";
$tpl->assign("pagina""Contact");
 
require_once(
pad."/include/output.inc.php");
?>
PHP Code:
<?
// Parsetijd berekenen
$core["tijd"] = getmicrotime() - $core["tijd"];
 
// Parse statistieken
$parsetijd_100 $core["tijd"] / 100;
$db round(($sql->sql_tijd $core["tijd"] * 100), 1);
$php round((100 $db), 1);
// $tpl->assign("parse_info", round($core["tijd"], 4) . " (PHP: " . $php . "% SQL: " . $db . "%) [$sql->querys]");
$tpl->assign("parse_info""{tijd}");
 
$tpl->assign("gebruikersnaam"$core['gebruikersnaam']);
ob_start(); 
$tpl->display('header.tpl');
$tpl->display($template);
$tpl->display('footer.tpl');
 
$content ob_get_contents();
ob_end_clean();
 
echo 
str_replace("{tijd}" round($core["tijd"], 4) . " (PHP: " $php "% SQL: " $db "%) [$sql->querys]"$content );
 
?>
Maar ik vind dit niet zo netjes,
Weet iemand een andere oplossing?