0. В начале общим пунктом стоит отметить, что NG постепенно переходит на новый шаблонизатор. Конечной целью является полный переход на TWIG и отказ от старого шаблонизатора.
В данной версии NG во всех основных TWIG шаблонах оставлена поддержка старых переменных с целью обеспечения максимальной обратной совместимости, но в последующих релизах эта совместимость не будет поддерживаться.
Таким образом, в данной версии в ряде шаблонов можно писать, например, как {tpl_url}, так и {{ tpl_url }}
Конструкция [TWIG] ... [/TWIG] используется там, где требуется использовать новые TWIG конструкции, но шаблон строится старым шаблонезатором.
Подробнее в документации в разделе "Шаблонизатор TWIG".
Список изменений в шаблонах между версиями 0.9.3 по 0.9.4
1. main.tpl - практически полностью переведен на twig, хоть и вывод осуществляется через [TWIG] ... [/TWIG].
Пример изменений (подробности смотрите в документации).
Пример изменений (подробности смотрите в документации).
Было {htmlvars} стало {{ htmlvars }} Было {tpl_url} Стало {{ tpl_url }} Было {admin_url}/includes/js/functions.js Стало {{ scriptLibrary }}/functions.js Было {admin_url}/includes/js/ajax.js Стало {{ scriptLibrary }}/ajax.js Было {titles} Стало {{ titles }} Было {personal_menu} Стало {{ personal_menu }} Было {search_form} Стало {{ search_form }} Было {categories} Стало {{ categories }} Было {mainblock} Стало {{ mainblock }} Было [ifhandler:news:main]Блок только на главной[/ifhandler] Стало {% if isHandler('news:main') %}Блок только на главной{% endif %}
2. В ваш шаблон нужно добавить файл news.table.tpl скопируйте его из дефолтного шаблона или создайте сами.
Содержимое файла по умолчанию (подробности смотрите в документации).
Содержимое файла по умолчанию (подробности смотрите в документации).
{% for entry in data %} {{ entry }} {% else %} {{ lang['msgi_no_news'] }} {% endfor %} {{ pagination }}
3. В файл registration.tpl добавлена поддержка доп. полей для их работы вам необходимо перевести файл на шаблонизатор Twig.
В примере показан минимальный набор (подробности смотрите в документации).
В примере показан минимальный набор (подробности смотрите в документации).
<form name="registration" action="{{ form_action }}" method="post"> <input type="hidden" name="type" value="doregister" /> {% for entry in entries %} {{ entry.title }} ({{ entry.descr }}): {{ entry.input }} {% endfor %} {% if flags.hasCaptcha %}<img src="{{ admin_url }}/captcha.php"> <input type="text" name="vcode" />{% endif %} <input type="submit" class="button" value="{l_register}" /> </form>
4. В файл usermenu.tpl добавлена поддержка Twig.
В примере показан минимальный набор (подробности смотрите в документации).
В примере показан минимальный набор (подробности смотрите в документации).
{% if (global.flags.isLogged) %} [if-have-perm] <a href="{{ admin_url }}" target="_blank">{{ lang['adminpanel'] }}</a> <a href="{{ addnews_link }}">{{ lang['addnews'] }}</a> [/if-have-perm] <a href="{{ profile_link }}">{{ lang['myprofile'] }}</a> <a href="{{ logout_link }}">{{ lang['logout'] }}</a> {% else %} <script language="javascript"> var set_login = 0; var set_pass = 0; </script> <form name="login" method="post" action="{{ form_action }}" id="login"> <input type="hidden" name="redirect" value="{{ redirect }}" /> {{ lang['name'] }}: <input type="text" name="username"> {{ lang['password'] }}: <input type="password" name="password"> <a href="{{ lost_link }}" >{{ lang['lostpassword'] }}</a> <a href="{{ lang['registration'] }}" >{{ lang['registration'] }}</a> <input type="submit" value="{{ lang['login'] }}"> </form> {% endif %}
5. Добавлен новый файл news.categories.tpl для удобной генерации меню категорий (подробности смотрите в документации).