В статье описывается способ применения php условий в html шаблонах в Invision Community 4.
Управляющие конструкции
Для большинства конструкций в Invision Community синтаксис схож с альтернативным синтаксисом управляющих структур в PHP, но конструкции заключаются в двойные фигурные скобки. В большинстве случаев скобки, двоеточия и точки с запятыми не требуются.
Пример:
{{if $var}} HTML код {{endif}}
Сложное условие
{{if $foo}} HTML код {{elseif $bar}} HTML код {{elseif $baz}} HTML код {{else}} HTML код {{endif}}
{{foreach $foo as $bar}} HTML код {{endforeach}}
Сокращения
Вы можете использовать сокращения в различных конструкциях, например, вместо:
{{if \IPS\Member::loggedIn()->member_id}} HTML код для авторизованного пользователя {{endif}}
Вы можете использовать:
{{if member.member_id}} HTML код для авторизованного пользователя {{endif}}
Доступные сокращения:
- request.var соответствует \IPS\Request::i()->var
- member.var соответствует \IPS\Member::loggedIn()->var
- settings.var соответствует \IPS\Settings::i()->var
- theme.var соответствует \IPS\Theme::i()->settings['var']
- cookie.var соответствует \IPS\Request::i()->cookie['var']
Переменные
Переменные можно использовать в обычных фигурных скобках:
{$foo}
Для предотвращения XSS (межсайтовый скриптинг), необходимо использовать конструкцию, исключающую отображение форматированного контента переменной:
{$foo|raw}
Экранирование выполняется таким способом, при котором содержание отображается без кодирования специальных символов, для возможности их кодирования необходимо использовать следующую конструкцию:
{$foo|doubleencode}
Теги
Почти везде, где может быть использована логика шаблонов, могут быть использованы теги, для форматирования дат, чисел, языковых срок и так далее.
PHP код
Вы можете выполнять исходный PHP код, заключив его в двойные фигурные скобки:
{{$foo = array();}}
Отображение контента шаблонов
В Режиме разработчика существует специальный тег, позволяющий отобразить контент шаблона. Тег можно вставлять в любое место шаблона:
{{{PRINT}}}