Mam taką prostą klasę:
<?php
class template
{
public $dir = "templates/default/";
public $file;
public $tags;
public function __construct($file, $tags = array())
{
$this->file = $file;
foreach($tags as $tag => $tagvalue)
{
$this->tags["{".$tag."}"] = $tagvalue;
}
}
public function tag($tags, $value = NULL)
{
if(!isset($value))
{
foreach($tags as $tag => $tagvalue)
{
$this->tags["{".$tag."}"] = $tagvalue;
}
}
else
{
$this->tags["{".$tag."}"] = $tagvalue;
}
}
public function display()
{
$tmp = file_get_contents($this->dir.$this->file);
$tmp = str_replace(array_keys($this->tags), array_values($this->tags), $tmp);
$tmp = preg_replace("#\(\.(.*?)\.\)#", "", $tmp);
echo $tmp;
}
}
?>
Wszystko leci do .tpl'ki w ten sposób:
$szablon = new template('page_header.tpl');
$szablon->tag(array(
'U_KEYWORDS' => 'opis',
'U_DESCRIPTION' => 'opis',
'U_BLOG_NAME' => 'test ?> Blog')
);
$szablon->display();
Jednak chciałbym, aby można było przypisać do tej tablicy, 'nazwę', czyli w ten sposób:
$szablon->tag('moja_nazwa', array(
A w pliku .tpl odtwarzać to tak:
<!-- BEGIN moja_nazwa -->
moj kod html
<!-- END moja_nazwa -->
I nie mogę za cholerę nic sensownego wymyśleć, aby to ładnie działało ;/ Jakaś pomoc? Google przekopałem pod tym względem doszczętnie, ale tam nic nie ma na ten temat.