Вот решил выложить на мой взгляд очень полезную штуку) шаблонизатор скрученный с ДЛЕ, но немного изменен, думаю многим должно помочь в написании своей CMS ну и т.д ))
Что можно сказать о его возможностях!?
Возможность добавлять php код в tpl, вывод переменных такого типа : {.....}
Ну а дальше я думаю разберитесь
Код index.php =)
PHP код:
<?
include("templates.class.php"); //подключение class
$tpl = new Template; //инициируем класс
$tpl->dir = 'template/'; //задаём местоположение папки с шаблонами
$tpl->load_template('main.tpl'); //загружаем каркас
$tpl->set('{sub_templ}', $tpl->sub_load_template('sub.tpl')); //подключаем код блока
//подставляем значения переменных
$tpl->set('{var1}', 'блок2');
$tpl->set('{var2}', 'блок3');
$tpl->compile('main'); //собираем шаблон
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php '); //выводим результат работы, с возможностью вставки пхп кода в tpl
$tpl->global_clear(); //очищаем все переменные для возможно следующего шаблона
?>
Код templates.class.php
PHP код:
<?php
class Template {
public $dir = '.';
public $template = null;
public $copy_template = null;
public $data = array();
public $block_data = array();
public $result = array('info' => '', 'content' => '');
public $template_parse_time = 0;
//задаём параметры основных переменных подгрузки шаблона
public function set($name , $var) {
if (is_array($var) && count($var)) {
foreach ($var as $key => $key_var) {
$this->set($key , $key_var);
} } else $this->data[$name] = $var;
}
//обозначаем блоки
public function set_block($name , $var) {
if (is_array($var) && count($var)) {
foreach ($var as $key => $key_var) {
$this->set_block($key , $key_var);
} } else $this->block_data[$name] = $var;
}