Имеется такая штука
<?php
class content
{
var $vars = array();
var $content = '';
function set($name, $val) {
$this->vars[$name] = $val;
}
function out_content($tpl) {
$this->content = file_get_contents($tpl);
foreach($this->vars as $key => $val) {
$this->content = str_replace($key, $val, $this->content);
}
echo $this->content;
}
}
$content = new content();
?>
Нужно сюда добавить функцию include.
То есть в шаблоне пишешь что-то типа
{inc_file="ololo.php"}
И происходит включение файла, как это происходит с include 'some_file.php';
в php файлах.
JoiNeD, для того чтобы развивать мозг - можно добавить функций и использовать.
добавлено спустя 1 минуту:
алгоритм таков,
Ты ищешь определенный текст заключенный в кавычки, потом его вырезаешь, через ехплоде делишь, и выбираешь нужное.
добавлено спустя 1 минуту:
Istsam,
Цитата:
"алгоритм таков,
Ты ищешь определенный текст заключенный в кавычки, потом его вырезаешь, через ехплоде делишь, и выбираешь нужное. "
А можно непосредственно кусок кода и куда его вставлять?
Если не затруднит, конечно...
Istsam, навыки программирования может, а не мозг? В случае автора, чтобы развиваться нужно знать немного больше, т.к в первом посте не код, а хрень. Лучше уж сначало взять уже сделанное и разбираться в нем, а уж потом писать свое.
З.Ы в нэте полно шаблонизаторов, автор, возьми все же за основу уже готовый, "легкий" шаблонизатор и поправляй его под себя
JoiNeD, Так я это как раз в нете и нашёл =)
Я нашёл один "лёгкий", начал внедрять. А потом пошло, то то не так то это...
А этой вот фигни мне с головой хватает.
Чем оно тебе не нравится?
Обычно загрузка шаблона происходит в конструкции, т.е.
$tpl = new tpl(шаблон);
А инклудить другой шаблон через file_get_contents и обрабатывать через eval.
Но я не советую так делать.
Morty, древний он видимо, раз var используется, и смысла "var content" не догнал, это свойство вообще не должно сохраняться в классе.
Как вариант, если уж двух функции тебе хватает
Класс: (content.class.php)
class content {
private $vars=array();
public function set($name, $value) {
$this->vars[$name]=$value;
}
public function display($tpl) {
extract($this->vars);
include($tpl);
}
}
Сам скрипт:
<?php
include('content.class.php');
$content=new Content;
$content->set('login', 'JoiNeD');
$content->set('today', date('d.m.Y'));
$content->display('hello.tpl');
?>
Шаблон: (hello.tpl)
<? include('ololo.php') ?>
Привет, <? echo $login ?><br />
Сегодня: <? echo $today ?>
<? include('foot.php') ?>
добавлено спустя 4 минуты:
Хотя это конечно никуда не годиться, но уж лучше так, чем код с первого поста.
JoiNeD, Спасибо.
Вот только было бы вообще замечательно еслиб теги в шаблон вствалялись как в коде с первого поста. То есть:
Привет {login}<br>
Сегодня {date}<br>
...
Можешь так сделать?