1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.1.x Список пользователей

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем enterdv, 26.12.2011.

Загрузка
  1. enterdv

    enterdv Активный пользователь

    Регистрация:
    13.10.11
    Сообщения:
    23
    Симпатии:
    7
    Версия XF:
    1.1.2
    Захотелось сделать отдельную страницу (ExternalPages) со списком "команды" форума, т.е. администраторы и модераторы.

    В меню пункт добавил, страницу сделал. Проблема в следующем. Не хочет фильтровать пользователей из всего списка. Фильтрует только из тех, кто онлайн.
    Вот так, отображает администраторов и модераторов, которые онлайн:
    Код:
    <xen:foreach loop="$onlineUsers.records" value="$user">
    <xen:include template="member_list_item">
    <xen:set var="$noOverlay">1</xen:set>
    </xen:include>
    <xen:if is="{$user.is_moderator} OR {$user.is_admin}">
    </xen:if>
    </xen:foreach>
    
    А так не отображает ничего:
    Код:
    <xen:foreach loop="$users" value="$user">
    <xen:if is="{$user.is_moderator} OR {$user.is_admin}">
    <xen:include template="member_list_item">
    </xen:include>
    </xen:if>
    </xen:foreach>
    
    В чем косяк? Я уже весь мозг сломал с этой проблемой.

    Ах да, вот так тоже пустая страница:
    Код:
    <xen:foreach loop="$ActiveUsers" value="$user">
    <xen:if is="{$user.is_moderator} OR {$user.is_admin}">
    <xen:include template="member_list_item">
    </xen:include>
    </xen:if>
    </xen:foreach>
    
     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Потому что нет таких переменных как $users и $ActiveUsers. И не ждите, что в шаблон передается массив всех пользователей форума. Для решения Вашей задачи нужно будет писать свой плагин, который будет выдергивать всех нужных Вам пользователей из базы, а затем подсовывающий их в нужный шаблон.
     
  3. enterdv

    enterdv Активный пользователь

    Регистрация:
    13.10.11
    Сообщения:
    23
    Симпатии:
    7
    Версия XF:
    1.1.2
    Хорошо, берем шаблон member_list и смотрим как формируется страница "Зарегистрированные пользователи":
    Код:
    <ol class="section memberList">
    <xen:foreach loop="$users" value="$user">
    <xen:include template="member_list_item">
    <xen:set var="$noOverlay">1</xen:set>
    </xen:include>
    </xen:foreach>
    </ol>
    Почему здесь эта переменная есть, а у меня ее не должно быть?
     
  4. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    у-у-у... как все запущено...
    Если коротко, то чтобы в шаблоне была переменная - ее туда необходимо передать.
     
  5. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Необходимо добавить, что для каждого шаблона формируется свой массив переменных. Поэтому в разных шаблонах массив переменных обычно сильно отличается.
    Вам необходимо достаточно сильно углубиться в то, как формируются массивы для шаблонов, где и как вызываются шаблоны и т.д. В простейшем случае, если в шаблоне не упоминается какая-то переменная, которая встречается в другом шаблоне, то почти наверняка она в этом шаблоне отсутствует. Исключение - шаблоны, которые инклюдятся в родительский, так как в этом случае такой шаблоне автоматически получает тот же массив переменных, который присутствует в родительском.
     
    enterdv нравится это.
  6. enterdv

    enterdv Активный пользователь

    Регистрация:
    13.10.11
    Сообщения:
    23
    Симпатии:
    7
    Версия XF:
    1.1.2
    Спасибо, а можно ли где-нибудь на форуме или в другом месте почитать об этом?

    PS: А где вообще формируется массив для шаблона? В самом шаблоне или нет? Извините, конечно за глупые вопросы, но ткните меня носом в нужном направлении - буду изучать и пробовать.
     
  7. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    К сожалению, как таковой документации практически нет. Есть туториалы различные (не для Вашего случая). Для понимания, как это работает, придется лезть в код движка и непосредственно там смотреть. Естественно, для этого нужны знания PHP и большое желание :)
    Если Вы разработчик, то берите различные плагины, которые что-то добавляют на страницах форума, и смотрите. Если Вы не разработчик, то лучше даже не пытаться. Не знаю, как правильно выразить мысль, но в этом движке добавить что-то свое двумя кликами мышки не получится. Зато создать что-то мощное легче, чем на многих других движках. Т.е. порог вхождения достаточно высок, но он того стОит, если в дальнейшем что-то свое для движка писать.
    Так что выбирайте, если нужно что-то по мелочи подправить, то это можете сделать самостоятельно, но если нужно что-то добавить, то или придется сильно повышать свой уровень знаний или уже нужно быть хорошим специалистом.

    Шаблон только отображает то, что ему передали. Все остальное - смотрите код движка. В админке Вы этого не найдете.
     

Поделиться этой страницей