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 для удобной генерации меню категорий (подробности смотрите в документации).