Xwab
Форумыnavigate_nextПрограммирование на PHP

Шаблонизаторы
Сообщения
suhonok

Mr_Edward, в том смысле, что когда ты его яко бы "написал"?)

02 Июн 2010, 12:26
iceman12

Mr_Edward, твой код лучше, чем в 21посте?


__________
посл.ред. 02 Июн 2010, 14:12; всего 1 раз 02 Июн 2010, 14:08
Signum

Mr_Edward, в том смысле,что ф-ция стара как мир, если бы сейчас писал,наверняка бы воспользовался user_error

02 Июн 2010, 14:12
iceman12

<?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:15
suhonok

К чему всё таки изобретать свои велосипеды, если можно сесть на вполне приличный и поехать себе, а не на своём трёхколёсно зубчатоквадратной передаче (=

02 Июн 2010, 14:20
iceman12

35, ну например который в 21посте очень легкий и быстрый. мне не нужны внутренние операторы и циклы.

Каждый выбирает что нужно именно ему))

02 Июн 2010, 14:26
Mr_Edward

suhonok, не нужно быть всегда на всем готовом. Надо суметь сделать свое, решить задачу по своему, не важно, есть ли готовый шаблонизатор.

02 Июн 2010, 17:14
suhonok

Mr_Edward, если нужно будет создать несколько версий страницы, как ты будешь менять разметку? А ведь тонкости есть, не переживай, свое я написать могу, но не настолько мощное скажем как твиг, смарти, да и если писать подобные, то это займет ооочень много времени, по этому и выбираеш что тебе по душе, а не лепишь свое:)

02 Июн 2010, 17:19
Aarox

Шаблонизатор это прога для написания скриптов? Есле да, то у меня Adobe Dreamweaver CS5. Вооще кул! Даже ошибки подчеркивает!

22 Июл 2010, 9:36
iceman12

 Нет. почитай тему- поймешь

22 Июл 2010, 9:39
Ответить на тему