|
Все для программиста! |
| ||||||||||||||||||||||||||||||||
|
CodeNet / Языки программирования / PHP / HTML, формы
CodeNet / Языки программирования / PHP / Шаблоны Использование шаблонов в PHP4Денис Давыдов, Webscript.ru
Многие программеры сталкивались с проблемой, когда дизайнеру "нужна свобода" в написании html, а программеру "чистота" кода :) У меня такое приключилось при написании виртуального веб-магазина. В общем, недолго думая я стал искать различные PHP-классы для создания "динамических сайтов" с использованием так называемых шаблонов. И нашел один, который отвечал всем моим требованиям, но слишком уж он оказался "большим и тяжелым". Называется этот класс FastTemplate (уж не помню, где я его скачал). Недолго думая, я решил написать свой класс, взяв за основу функциональность FastTemplate. Мои результаты в написании своего класса получились практически такими как у FastTemplate, но, как мне кажется, ни чуть не хуже (прим.: код я не копировал, а создавал сам с нуля). Итак, для начала работы Вам необходимо скачать мой класс template. Скачали? Теперь можно пробовать на простом примере. Сделаем пример листинга файлов текущего каталога с подсчетом кол-ва байт каждого файла, при этом динамически создав таблицу. Итак, создайте следующие файлы: main.htm
<html>
<head>
<title><!-- ABOUT --></title>
<link rel="stylesheet" type="text/css" href="/styles.css">
</head>
<body>
<p align="center" class="b"><!--
ABOUT
--><br>
Localtime is <!-- LOCALTIME -->
</p><br>
<div align="center"><table
STYLE="border-collapse:collapse" class="th">
<tr>
<td colspan="2" class="th"
align="center"
style="background-color:#000000; color:white">
File listing</td>
</tr>
<!--
TABLE_CONTENT
-->
<tr>
<td class="th" align="right"
style="background-color:#000000; color:white"> </td>
<td class="th"
style="background-color:#000000; color:white">
<!-- TOTAL --> </td>
</tr>
</table></div>
</body>
</html>
rows.htm
index.php
Результаты выполнения можно увидеть здесь http://null.magelan.ru/php/templates Данный класс работает очень шустро, обработчик построен на основе регулярных выражений. Детальное описаниеВ классе определенны массивы:
// init - Инициализация шаблонов
// arr - ассоциативный массив (см.пример) с дескрипторами и файлами
// root - корневой каталог, где лежат файлы (по-умолчанию текущий)
// delimit - тут можно указать ограничитель из двух символов, например "{}"
function init($arr = "", $root = "", $delimit = "")
// Установка корневого каталога шаблонов
function setroot($root = "")
// Добавление дескрипторов и файлов для работы с шаблонами
// list - ассоциативный массив
function listit($list = "")
// Обработка шаблона
// $d - дескриптор файла ИЛИ МАССИВ!
// $temp - обработка в тег $temp (если не указать, данная ф-ия обработает
// декср.файла и добавит его к массиву с результатами)
function parseit($d = "", $temp = "")
// Получить обработанный массив, возвращает string
// $array - массив
function getparsed($array)
// Указать ограничители
// $d1 - левый, $d2 - правый
// Например $t->delimiters("<!--", "-->");
function delimiters($d1 = "", $d2 = "")
// Как listit, только добавить можно не ассоциативный массив, а
// простую строку
// $d - дескриптор файла
// $name - имя файла
function addtolist ($d = "", $name = "")
// Используется для очистки всех массивов в классе
function freshall()
// Используется для очистки результатов обработки
// Очищается $arr
function fresh()
// Вывести на экран.
// В v1.02 - если указан $tag, выводит тег $this->assign["$tag"]
function printit([$tag])
Если возникнут какие-либо комментарии, пишите на null@magelan.ru. Также выслушаю замечания и поправки. Огромное спасибо Fil (fil@apb.farlep.net) за некоторые дополнения и замечания :) И всем тем, кто откликнулся! Комментарии пользователей (всего 7)omgnoob / 06 февраля 2008, 19:27:33$t->assign("LOLO", include "lolo.php"); Arsench / 11 сентября 2006, 20:58:44a gde templates.php kogda napisano requers templates.php леша / 10 января 2006, 15:09:22Вариант неплохой. Ton / 07 мая 2005, 00:24:52Все отлично фунциклирует! Мне понравилось :) p / 27 апреля 2005, 18:03:09ссылка на пример http://null.magelan.ru/php/templates не работает. Timon / 25 апреля 2005, 00:43:50Скачал, скопировал, попробовал. Заработало "с полпинка" без каких либо дополнительных телодвижений. Прочитал коммент Игоря от 14-04-05 и рашил дать своего :) Игорь / 14 апреля 2005, 14:06:30Скачал, скопировал, попробовал. Ни хрена не заработало. Разочаровался и стёр. |