Ik ben bezig met het schrijven van een eigen template system, alleen ik heb nu één opstakel waar ik niet uit kom. Nu wil ik een template file in een andere laden, alleen het enige wat hij dan weer geeft is deze tekst:
"templates/default/home.tpl"
Nu is dit mijn simpele parser:
<?
error_reporting(0);
class parser {
var $templatecontent;
var $templatefile;
function parser($file) {
$this->templatefile = $file;
$this->templatecontent = file_get_contents($this->templatefile)or die("Fout: \"$this->templatefile\" kon niet geopend worden!");
}
function assign($block, $content) {
$block = '{' . $block . '}';
$this->templatecontent = str_replace($block, $content, $this->templatecontent);
}
function output() {
echo $this->templatecontent;
}
}
?>
Wat moet ik veranderen of erbij zetten, zodat ik dit op de juiste manier wordt weergegeven?
Dan is de hele layout weg. althans, plaatjes enzovoorts doen het niet meer. Omdat ik natuurlijk geen waarde heb gegeven aan de Blocks » {titel}
Alles werk prima voor de rest, alleen het laden van een .tpl file in een ander werkt niet. het enige wat ik dan zie in het veld waar ik die file wil laden is dus wat ik al eerder had gepost.
Als ik zo bij andere parsers kijk, dan gebruiken hun iets van een assignInclude tag of iets in die richting. Dat is het gene wat ik nodig heb.