Fuel Medlem sedan okt. 2000 1 285 inlägg Frågan 6 sep. 2006 15:51 #1 jag har krafsat ihop en minimal template class som verkar fungera ok. Dock så måste jag skriva <?=DEF_VALUE;?> istället för önskat {DEF_VALUE} i mitt template. Finns det någon som ett snabbhack för detta ? Behöver omg :birp
Compusa Medlem sedan jan. 2002 3 327 inlägg Compusa Medlem sedan jan. 2002 3 327 inlägg
Fuel skrev:
Dock så måste jag skriva <?=DEF_VALUE;?> istället för önskat {DEF_VALUE} i mitt template.
Efter närmare eftertanke. Nu vet jag inte hur ditt template ser ut men borde det inte bara vara att göra en replace när du parsar?
Dvs:
{ = <?
och
} = ;?>
Compusa Medlem sedan jan. 2002 3 327 inlägg Tredje gången gillt! Det du ska göra är att du kör en echo på resultat du får när du hämtar/parsar ditt template.
// Hämta template, inkluderar att templatet parsas...
echo $tpl->fetch('myTemplate.tpl');
A Alpha II Medlem sedan maj 2000 2 993 inlägg Detta är en förenklad version av mitt template script. Det används (detta är en gammal version dock) i mitt template system där varje sida är en xml fil som parsas efter innehåll och säkerhets access för olika grupper <-> sidor, samt stöder flera språk.
Alla variabler anges i formatet %var_name%
<?php
require_once('common.php');
FileSafetyCheck();
class Template
{
var $content;
var $vars = Array();
function SetVar($varName, $value)
{
$this->vars[$varName] = $value;
}
function Insert($varName, $template)
{
global $config, $lang;
$template = $config['template_dir'] . '/' . $config['lang'] . '/' . $template;
$file = fopen($template, 'r');
if (!$file)
exit($lang['TEMPLATE_NOT_FOUND'] . '(' . $template . ')');
$insertContent = fread($file, filesize($template));
$this->content = str_ireplace('%' . $varName . '%', $insertContent, $this->content);
}
function Load($template)
{
global $config, $lang;
$template = $config['template_dir'] . '/' . $config['lang'] . '/' . $template;
$file = fopen($template, 'r');
if (!$file)
exit($lang['TEMPLATE_NOT_FOUND'] . '(' . $template . ')');
$this->content = fread($file, filesize($template));
}
function ProcessToString()
{
$str = $this->content;
foreach ($this->vars as $key => $value)
{
$str = str_ireplace('%' . $key . '%', $value, $str);
}
return $str;
}
function Process()
{
print($this->ProcessToString());
flush();
}
}
?>
Fuel Medlem sedan okt. 2000 1 285 inlägg Stabilt gubbs ! .. hade glömt att jag hade startat den här tråden :r
Tack .. återkommer