Mr_Edward, твой код лучше, чем в 21посте?
Mr_Edward, в том смысле,что ф-ция стара как мир, если бы сейчас писал,наверняка бы воспользовался user_error
02 Июн 2010, 14:12<?php
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('Ошибка! '.$dir.' - это не директория!');}
$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;
}
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;
}
function out($name)
{
$ret = $this -> da_vr[$name];
$this -> da_vr[$name] = $this -> data[$name];
return $ret;
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> {title} </title>
</head>
<body bgcolor={bgcolor}>
{text}
</body>
</html>
Работа с классом:
include('template.php'); # включили класс
# Зададим переменные #
$bgcolor = '#CCFFCC';
$text = 'Тест класса!';
$title = 'ТЕСТ!';
$tpl = new template('./data','.tpl'); # создали объект, задали каталог и расширение
$tpl -> load('body'); # зашрузили шаблон
$tpl -> vars('body',array('text','title','bgcolor')); # указали какие переменные преобразовать, они должны быть заданы зарание
echo $tpl -> out('body'); # вывели шаблон
?>
вот еще пример
К чему всё таки изобретать свои велосипеды, если можно сесть на вполне приличный и поехать себе, а не на своём трёхколёсно зубчатоквадратной передаче (=
02 Июн 2010, 14:2035, ну например который в 21посте очень легкий и быстрый. мне не нужны внутренние операторы и циклы.
Каждый выбирает что нужно именно ему))
suhonok, не нужно быть всегда на всем готовом. Надо суметь сделать свое, решить задачу по своему, не важно, есть ли готовый шаблонизатор.
02 Июн 2010, 17:14Mr_Edward, если нужно будет создать несколько версий страницы, как ты будешь менять разметку? А ведь тонкости есть, не переживай, свое я написать могу, но не настолько мощное скажем как твиг, смарти, да и если писать подобные, то это займет ооочень много времени, по этому и выбираеш что тебе по душе, а не лепишь свое:)
02 Июн 2010, 17:19Шаблонизатор это прога для написания скриптов? Есле да, то у меня Adobe Dreamweaver CS5. Вооще кул! Даже ошибки подчеркивает!
22 Июл 2010, 9:36