Показать сообщение отдельно
Старый 27.08.2005, 02:59
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 1  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Arrow простейший класс для разделения кода и дизайна

Для тех, кого задолбало каждый раз перерывать код чтобы поменять какой-нить элемент оформления

Переменные шаблона выделяются знаками процента, например, вот так: %SOMEVAR% . Так же название переменных чувствительно к регистру

Создание:
$tpl=new tpl("path/to/template");
ИЛИ
$tpl=new tpl("строка содержащая переменную %VAR%",1);
если задан второй аргумент и он не равен 0 то первый параметр интерпретируется не как путь к файлу шаблона, а как текст шаблона

при ошибке в любой функции её причина записывается в свойство объекта error (можно проверять по isset())

Присвоение:

$tpl->a("VAR", $value); //заменяет в шаблоне строку %VAR% на значение $value

Парсинг:
$out=$tpl->parse(); //возвращает обработанный шаблон, НЕ ВЫВОДИТ В ДОКУМЕНТ

Вывод:
$tpl->p(); //выводит обработанный шаблон. эта функция НЕ ТРЕБУЕТ предварительного парсинга

ЗЫ: звыняйте, не умею я мануалы писать



Код:
<?
class tpl{
	//Конструктор класса
	function tpl($path, $from_str=0){
		$this->error="";
		if(!$from_str){
			if(!file_exists($path)){
				$this->error="Файл \"$path\" не найден.";
				$this->str=$this->error;
				return 0;
			}//end if
			$str=join("", file($path));
		}else{//if(!$from_str)
			$str=$path;
		}//end if
		$this->str=$str;
		return 1;
	}//конец конструктора

	//assign - присвоение
	function a($var, $value){
		$this->vars[$var]=$value;
	}//end of assign function

	//Парсинг
	function parse(){
		$this->parsed_str=$this->str;
		if(isset($this->vars))
		foreach($this->vars as $k=>$v){
			$this->parsed_str=str_replace('%'.$k.'%', $v, $this->parsed_str);
		}
		return $this->parsed_str;
	}//end of parse function

	//print - вывод
	function p(){
		echo $this->parse();
	}
}//end of class description
?>
__________________
тонкий тролль, осеянный благодатью