Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- class template # создали класс
- { # зададим переменные
- var $data = array(); # переменная для шаблонов
- var $root = '.'; # каталог для шаблонов
- var $ext = '.tpl'; # расширение для шаблонов
- var $da_vr = array(); # переменная для преобразованых шаблонов
- // Класс создан, далее формируем функции:
- function template($dir, $ext)
- {
- if (is_dir($dir)){ $this->root = $dir; }
- else{ die('Ошибка! <b>'.$dir.'</b> - это не директория!'); }
- $this->ext = $ext;
- }
- // Эта функция выполниется сразу после создания класса, поэтому при создании надо
- // указывать директорию и расширения шаблонов (см. ниже). Далее надо загрузить шаблон:
- function load($name)
- {
- $nn = $name;
- $dir = $this->root;
- $ext = $this->ext;
- $name = $dir.'/'.$name.$ext;
- if (!is_file($name)) { die('Ошибка <b>'.$name.'</b> - это не файл!'); }
- $fp = fopen($name, 'r');
- $data = fread($fp, filesize($name));
- fclose($fp);
- $this->data[$nn] = $data;
- $this->da_vr[$nm] = $data;
- }
- // В этой функции мы считали шаблон через fread и запихнули его в две переменных:
- // da_vr и data. При загрузке шаблона надо указывать имя шаблона без расширения
- // (см.ниже). Далее преобразовываем переменные:
- function vars($nm, $vars = array())
- {
- $data = $this->data[$nm];
- while (list($id, $var) = each($vars))
- {
- global $$vars[$id];
- $data = str_replace('{'.$vars[$id].'}', $$vars[$id], $data);
- }
- $this->da_vr[$nm] = $data;
- }
- // Тут мы преобразовали переменные и загнали в переменную da_vr. И осталось вывести
- // шаблон:
- function out($name)
- {
- $ret = $this->da_vr[$name];
- $this->da_vr[$name] = $this->data[$name];
- return $ret;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement