Есть одна не очень приятная вещь в биллинге - оформление формируется в коде. Обычно пофик, но иногда удобней было бы шаблон поместить в файл - легче менять дизайн.
Я решил дать вам шаблонизатор из 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 - это сами придумайте кто-нибудь... я думаю труда не составит