Rapid Template - быстрый и удобный шаблонизатор.

Незадолго до того, как началась повальная пиар акция CMS Zebrum Lite я начал писать собственную cms примерно с теми же целями - минимально требовательный и быстрый движок для сателлитов. После некоторых раздумий я решил, что раз уж я взялся писать cms с нуля, то надо и шаблонизатор свой написать, чтоб был быстрый и удобный. Ну а поскольку я ярый фанат phpBB и считаю их систему шаблонов одной из наиболее правильных, то свой шаблонизатор я сделал по образу и подобию его собрата из phpBB.

Основные особенности Rapid Template:

  • Небольшой размер движка (4.1 кб)
  • Быстрота
  • Простой синтаксис
  • Полная абстракция дизайна от кода

Rapid Template 1.0

Все файлы шаблонов должны храниться в папке /template/ и иметь расширение .tpl

Теперь вкратце опишу синтаксис Rapid Template.

Подключение дополнительного файла шаблона

<!-- INCLUDE tplname -->

tplname - имя файла шаблона без расширения
Эта конструкция будет заменена на содержимое указанного файла на этапе загрузки файла перед компиляцией. Глубина включений не ограничена.

Переменные шаблонов верхнего уровня


{VARIABLE_NAME}

Во время компиляции эти метки будут заменены на значения, заданные с помощью функции Template::set_vars(). Пример использования:


<?php
...
$template->set_vars(array(
'VARIABLE_NAME' => 'Hello world!',
));
...
?>

Циклы и переменные циклов


<!-- BEGIN loop1 -->
{loop1.VAR1}
<!-- BEGIN loop1.loop2 -->
{loop1.loop2.VAR1}
<!-- END -->
<!-- END -->

Циклы позволяют повторять один и тот же фрагмент шаблона по несколько раз, подставляя на места переменных циклов различные данные. Циклы могут быть вложены друг в друга и тогда имя вложенного цикла должно начинаться с имени родительского и отделяться от него точкой. Вложенность циклов не ограничена.
Переменные циклов при каждой итерации могут принимать разные значения и их имя должно начинаться с имени цикла и отделяться от него точкой. Переменные цикла не могут использоваться вне цикла, но в то же время переменные верхнего уровня могут использоваться внутри циклов (их значения при этом останутся постоянными).

Вот и все :)
В будущем планируется еще добавить условные блоки, но пока это не реализовано.

PS/Offtopic:
Подробная статья о том, как правильно оценивать стоимость продвижения с помощью Яззла.
Профессиональная система управления сайтом с широким спектром решаемых при ее помощи задач.



Trackback URL for this post:

http://nevkontakte.org.ru/trackback/259
Прикрепленный файлРазмер
template.txt4.11 кб
Анатолий пн, 16/01/2012 - 17:14

В шаблонизатор были добавлены условные блоки?

Пользоваться аналогично phpBB?

Alek$ сб, 21/01/2012 - 02:54

Нет, поскольку они легко заменяются при помощи циклов :-)
Как это было в phpBB2.



Отправить комментарий

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <b> <s> <u> <p> <h3> <br> <strike> <sup> <pre> <h4> <hr>
  • Строки и параграфы переносятся автоматически.
  • You may use [inline:xx] tags to display uploaded files or images inline.
CAPTCHA
Вы точно не бот?
4 + 18 =
Without JavaScript you won't pass captcha test, sorry. Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.