Биллинговая система Nodeny
21 Ноября 2024, 19:16:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Шаблонизатор  (Прочитано 4347 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« : 09 Мая 2012, 23:44:58 »

Есть одна не очень приятная вещь в биллинге - оформление формируется в коде. Обычно пофик, но иногда удобней было бы шаблон поместить в файл - легче менять дизайн.

Я решил дать вам шаблонизатор из 52й версии. За основу взят джанговский формат. Он не такой навороченный и поддерживает только основные фичи, например:

Код:
 <div >{{ data1 }}</div>
 {% if made_msg %}<div class='{{made_msg_class}}'>{{made_msg}}</div>{% endif %}
 {% for ip in ips %}
    <tr> <td>Ip</td> <td>{{ip.ip}}</td> </tr>
 {% endfor %}

Т.е. переменные, условия, циклы. Условия слегка могут отличаться, например, регулярные выражения:

Код:
{% if ip.ip =~ /^10.100.100/ %} Yes! {% endif %}

Движок очень простой ибо хитрожопый: шаблог конвертится в perl-код, потом выполняется. Кстати, благодаря этому у нас по дефолту возможность компиляции шаблонов.

Пример вызова:

Код:
%param = (
      title => 'заголовок',
      ips = [ { ip => '10.100.0.1' },  { ip => '10.100.0.2' } ],
);
print tmpl('test', %param);

См. прикрепление. Запускайте файл с консоли и подсовывайте ему  test.html в том же каталоге, что и он.

Как его прикрутить к текущему NoDeny - это сами придумайте кто-нибудь... я думаю труда не составит
« Последнее редактирование: 09 Мая 2012, 23:48:48 от Efendy » Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!