Условия переменных в шаблонах XenForo

Тема в разделе "Инструкции и основная информация", создана пользователем kasim, 31.01.16.

  1. kasim

    kasim Участник

    Сообщения:
    28
    Репутация:
    6
    Рейтинг:
    +10 / -0
    Условия переменных в шаблонах XenForo

    Как я могу отобразить содержимое только для зарегистрированных пользователей и скрыть его от гостей?

    Код:
    <xen:if is="{$visitor.user_id}">
    Этот текст видят только зарегистрированные пользователи
    </xen:if>
    Как я могу отобразить содержимое только для гостей и скрыть его от зарегистрированных пользователей?
    Код:
    <xen:if is="!{$visitor.user_id}">
    Этот текст видят только гости
    </xen:if>
    Как я могу отобразить разное содержимое для гостей и зарегистрированных пользователей?
    Код:
    <xen:if is="{$visitor.user_id}">
    Этот текст видят только зарегистрированные пользователи
    <xen:else />
    Этот текст видят только гости
    </xen:if>
    Как я могу отобразить содержимое только определённым группам пользователей?
    Код:
    <xen:if is="{xen:helper ismemberof, $visitor, x}">
    Этот текст видят только пользователи из группы x
    </xen:if>
    Как я могу скрыть содержимое от определённых групп пользователей?
    Код:
    <xen:if is="!{xen:helper ismemberof, $visitor, x}">
    Данный текст скрыт от пользователей из группы x
    </xen:if>
    Как я могу отобразить содержимое нескольким определённым группам пользователей?
    Код:
    <xen:if is="{xen:helper ismemberof, $visitor, x, y}">
    Данный текст видят  только пользователи из групп x и/или y
    </xen:if>
    Как я могу скрыть содержимое от нескольких групп?
    Код:
    <xen:if is="!{xen:helper ismemberof, $visitor, x, y}">
    Данный текст скрыт от пользователей из групп x и/или y
    </xen:if>
    Как я могу отобразить содержимое только для администраторов?
    Код:
    <xen:if is="{$visitor.is_admin}">
    Этот текст видят только администраторы
    </xen:if>
    Как я могу отобразить содержимое только для модераторов?
    Код:
    <xen:if is="{$visitor.is_moderator}">
    Этот текст видят только модераторы
    </xen:if>
    Как я могу отобразить содержимое только для администраторов и модераторов?
    Код:
    <xen:if is="{$visitor.is_admin} OR {$visitor.is_moderator}">
    Этот текст видят только администраторы и модераторы
    </xen:if>
    Как я могу отобразить содержимое только для конкретного пользователя?
    Код:
    <xen:if is="{$visitor.user_id} == x">
    Этот текст видит только пользователь x
    </xen:if>
    Как я могу отобразить содержимое для нескольких конкретных пользователей?
    Код:
    <xen:if is="in_array({$visitor.user_id}, array(x, y, z))">
    Этот текст видят только пользователи x, y и z
    </xen:if>
    Как я могу отобразить содержимое после первого сообщения в теме или переписке?
    Код:
    <xen:if is="{$post.position} == 0 AND !{$message.conversation_id}">
    Этот текст будет показан после первого сообщения темы или переписки
    </xen:if>
    Как я могу отобразить содержимое после первого сообщения в теме?
    Код:
    <xen:if is="{$post.position} == 0">
    Этот текст будет отображён после первого сообщения
    </xen:if>
    Как я могу отобразить содержимое после сообщения x на каждой странице темы форума или переписки?
    Код:
    <xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == x AND !{$message.conversation_id}">
    Этот текст будет показан после сообщения x на каждой странице темы
    </xen:if>
    Как я могу отобразить содержимое после сообщения x на каждой странице темы форума?
    Код:
    <xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == x">
    Этот текст будет показан после сообщения x на каждой странице
    </xen:if>
    Как я могу отобразить содержимое после сообщения x на каждой странице, только в форумах y и z?
    Код:
    <xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == x AND in_array({$thread.node_id}, array(y, z))">
    Этот текст будет показан после сообщения x на каждой странице, только в форумах y и z
    </xen:if>
    Как я могу отобразить содержимое после сообщения x на каждой странице, за исключением форумов y и z?
    Код:
    <xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == x AND !in_array({$thread.node_id}, array(y, z))">
    Этот текст будет показан после сообщения x на каждой странице, за исключением форумов y и z
    </xen:if>

    Как я могу отобразить содержимое на определённой странице?

    Код:
    <xen:if is="{$contentTemplate} == 'xyz'">
    Этот текст будет показан в шаблоне xyz
    </xen:if>
    Как я могу отобразить содержимое на определённых страницах?
    Код:
    <xen:if is="in_array({$contentTemplate}, array('forum_list', 'forum_view', 'thread_view'))">
    Этот текст будет показан в шаблонах xyz
    </xen:if>
    Как я могу отобразить содержимое в определённой категории?
    Код:
    <xen:if is="{$category.node_id} == x">
    Этот текст будет показан в категории x
    </xen:if>
    Как я могу отобразить содержимое в определённом форуме?
    Код:
    <xen:if is="{$forum.node_id} == x">
    Этот текст будет показан в форуме x
    </xen:if>
    Как я могу отобразить содержимое в нескольких определённых форумах
    Код:
    <xen:if is="in_array({$forum.node_id}, array(x, y, z))">
    Этот текст будет показан только в форумах x, y, и z
    </xen:if>
    Как я могу отобразить содержимое в определённой теме форума?
    Код:
    <xen:if is="{$threadId} == x">
    Этот текст будет показан в теме x
    </xen:if>

    Или так:

    Код:
    <xen:if is="{$thread.thread_id} == 'x'">
    Этот текст будет показан в теме x
    </xen:if>
    Как я могу отобразить содержимое в нескольких темах форума?
    Код:
    <xen:if is="in_array({$threadId}, array(x, y, z))">
    Этот текст будет показан только в темах x, y, и z
    </xen:if>
    Или так:
    Код:
    <xen:if is="in_array({$thread.thread_id}, array(x, y, z))">
    Этот текст будет показан только в темах x, y, и z
    </xen:if>
    Как я могу отобразить содержимое в определённом сообщении?
    Код:
    <xen:if is="{$postId} == x">
    Этот текст будет показан в сообщении x
    </xen:if>
    Как я могу отобразить содержимое в нескольких определённых сообщениях?
    Код:
    <xen:if is="in_array({$postId}, array(x, y, z))">
    Это сообщение будет показано в сообщениях x, y, и z
    </xen:if>
    Как я могу отобразить содержимое только для автора темы?
    Код:
    <xen:if is="{$thread.user_id} == x">
    Это сообщение видит только автор x
    </xen:if>
    Как я могу отобразить содержимое в сообщении автора темы?
    Код:
    <xen:if is="{$post.user_id} == {$thread.user_id}">
    Это сообщение будет показано в сообщении автора темы
    </xen:if>
    Как я могу отобразить содержимое для пользователей, у которых ноль сообщений?
    Код:
    <xen:if is="{$visitor.message_count} == 0">
    Этот текст будет показан пользователям с 0 сообщений
    </xen:if>
    Как я могу отобразить содержимое для пользователей с x сообщениями?
    Код:
    <xen:if is="{$visitor.message_count} > x">
    Этот текст будет показан пользователям с x сообщениями
    </xen:if>
    Как я могу отобразить содержимое для пользователей, у которых менее x сообщений?
    Код:
    <xen:if is="{$visitor.message_count} < x">
    Этот текст будет показан только пользователям, у которых менее x сообщений
    </xen:if>
    Как я могу отобразить содержимое только для пользователей, которые не подтвердили свой email адрес?
    Код:
    <xen:if is="{$isAwaitingEmailConfirmation}">
    Этот текст будет показан только пользователям, которые не подтвердили свой email адрес
    </xen:if>
    Как я могу отобразить содержимое для посетителей, пришедших из поисковых систем?
    Код:
    <xen:if is="{$visitor.from_search}">
    Этот текст будет виден только для посетителей, пришедших из поисковых систем
    </xen:if>
    Как я могу отобразить содержимое для пользователей, зарегистрированных менее 30 дней?
    Код:
    <xen:if is="{$visitor.register_date} > {$serverTime} - (3600 * 24 * 30)">
    Этот текст будет виден только для пользователей, зарегистрированных менее 30 дней
    </xen:if>
    Как я могу отобразить содержимое только для видимых пользователей?
    Код:
    <xen:if is="{$user.visible}">
    Это содержимое смогут просматривать только видимые пользователи
    </xen:if>
    Как я могу отобразить содержимое только для тех пользователей, у которых есть аватар?
    Код:
    <xen:if is="{$visitor.avatar_date} OR {$visitor.gravatar}">
    Это содержимое могут видеть только те пользователи, которые установили себе аватар
    </xen:if>
    Как я могу отобразить содержимое только для тех пользователей, у которых нет аватара?
    Код:
    <xen:if is="!{$visitor.avatar_date} AND !{$visitor.gravatar}">
    Это содержимое могут видеть только те пользователи, у которых нет аватара
    </xen:if>
    Как я могу отобразить содержимое только для тех пользователей, у которых заполнено дополнительно поле X?
    Код:
    <xen:if is="{$visitor.customFields.field_id}">
    Это содержимое могут просматривать только те пользователи, у которых заполнено дополнительное поле X (field_id необходимо заменить на ID нужного поля)
    </xen:if>
    Как я могу отобразить информацию только для пользователей, у которых не менее X симпатий?
    Код:
    <xen:if is="{$visitor.like_count} > 5">
    Это содержимое могут видеть только пользователи, набравшие 5 симпатий
    </xen:if>
    Правильно вставить "свой html" после любого по счету сообщения на каждой странице (кроме личных переписок)
    (Обратите внимание, что сообщения нумеруются от нуля!):

    Код:
    <xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == 0 AND !{$conversation}">
    Cвой html
    </xen:if>
    После второго сообщения на каждой странице:
    Код:
    <xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == 1 AND !{$message.conversation_id}">
    Cвой html после второго сообщения
    </xen:if>
    Рандомный (случайный) показ:
    Код:
    <xen:if is="{$post.position} % {$xenOptions.messagesPerPage} == {xen:calc '({$serverTime} % 9) + 1'} AND !{$message.conversation_id}">
    Рандомно.. при условии что на странице 10 сообщений )))
    </xen:if>
    Как показать содержимое пользователям определённого пола?
    Код:
    <xen:if is="{$user.gender} == 'male'">
    Для мальчиков
    </xen:if>
    Код:
    <xen:if is="{$user.gender} == 'female'">
    Для девочек
    </xen:if>
    Код:
    <xen:if is="{$user.gender} == 'male'">
    Для мальчиков
    <xen:elseif is="{$user.gender} == 'female'" />
    Для девочек
    <xen:else />
    Для тех, кто не указал свой пол.
    </xen:if>
    Как я могу скрыть содержимое от поисковых роботов?
    Код:
    <xen:if is="!{$session.robotId}">
    Этот текст не могут видеть поисковые роботы
    </xen:if>
    Как сделать вывод для пользователей, у которых не заполнено поле Адрес (Location)?
    Код:
    <xen:if is="!{$visitor.location}">
    Этот текст будет виден только для посетителей, у которых не заполнено местоположение
    </xen:if>
    Как я могу отобразить содержимое пользователю в его День Рождения?
    Код:
    <xen:if is="{$visitor.dob_month} == 6 && {$visitor.dob_day} == 9">
    Этот текст будет показан пользователю 9 июня.
    </xen:if>
    Если вы хотите отобразить данный текст в разделе только на первой странице (шаблон forum_view или где есть PAGINATION)
    Код:
    <xen:if is="{$page} == 1">
    Этот текст отображается только на первой странице в разделе.
    </xen:if>
    Если вы хотите отобразить текст для команды форума
    Код:
    <xen:if is="{$visitor.is_staff}">
    Этот текст видят только команда форума.
    </xen:if>
    Если вы хотите отобразить текст для заблокированных пользователей
    Код:
    <xen:if is="{$visitor.is_banned}">
    Этот текст видят только заблокированные пользователи.
    </xen:if>
    Состояние пользователя
    Код:
    <xen:if is="{$visitor.user_state} == 'valid'">
    Этот текст видят только активированные пользователи.
    <xen:elseif is="{$visitor.user_state} == 'email_confirm' " />
    Этот текст видят только те кто ожидает подтверждение по электронной почте.
    <xen:elseif is="{$visitor.user_state} == 'email_confirm_edit' " />
    Этот текст видят только те кто ожидает подтверждение по электронной почте (после редактирования).
    <xen:elseif is="{$visitor.user_state} == 'email_bounce' " />
    Этот текст видят только те у кого электронная почта недействительна.
    <xen:elseif is="{$visitor.user_state} == 'moderated' " />
    Этот текст видят только те пользователи которые ожидают одобрения.
    </xen:if>

    Если вы хотите отобразить текст нежелательному пользователю


    Код:
    <xen:if is="{$visitor.is_discouraged}">
    Этот текст видят только нежелательные пользователи.
    </xen:if>