XF 1.5 Total online внутри thread_list

Improvs

Проверенные
Сообщения
633
Реакции
87
Баллы
11,030
Всем привет, интересует вопрос как вывести "пользователей онлайн" за пределами сайдбара. Есть готовые решения или инструкции?
 
Hope, это в обновленной версии такую возможность добавили? А то я может устарелой пользуюсь, но у меня нет такой возможности.
Или ты все же путаешь вывод значения с выводом сайдбара на любой странице форума.
Еще раз повторюсь, мне нужно вывести {$onlineUsers.total} в header, без использования sidebar (боковой панели).

Пример:
 
Последнее редактирование:
Improvs, конечно имеются. Создаете новый обработчик событий в дебаг режиме - template_hook. В строку "Выполнить обработчик" пишите:
MyFirstPlugin_OnlineAnyWhere_EventListener :: templateHook
Нижнее подчеркивание означает переход в каталог (Создаете файл /library/MyFirstPlugin/OnlineAnyWhere/EventListener.php)
Создаете класс с таким же названием как и обработчик, функция templateHook
Тут проверяем, если на странице есть хук с названием onlineUsersAnyWhere, то вызываем функцию и генерируем шаблон onlineUsersAnyWhere
Код:
class MyFirstPlugin_OnlineAnyWhere_EventListener
{
    public static function templateHook($hookName, &$contents, array $params, XenForo_Template_Abstract $template)
    {
        if ($hookName == 'onlineUsersAnyWhereHook')
        {
            $onlineUsers = self::getOnlineUsers();
       
            $ourTemplate = $template->create('onlineUsersAnyWhere', $template->getParams());
            $ourTemplate->setParam('onlineUsers', $onlineUsers);
            $rendered = $ourTemplate->render();
            $contents = $rendered . $contents;
        }
    }
   
    public static function getOnlineUsers()
    {
         return 'Online 999999 users';
    }

}

Далее в нужном шаблоне нам нужно вставить хук onlineUsersAnyWhereHook
<xen:hook name="onlineUsersAnyWhereHook" />

Создаете шаблон onlineUsersAnyWhere, туда пишите {xen:raw $onlineUsers} - выводит переменную, которую мы создали в функции.

Там должно вывести "Online 999999 users'
Дальше сами :-)
 
grisha2217, спасибо, получилось вывести "Online 999999 users' по вашему руководству.
Но опять же, либо я не верно подменяю значения 'Online 999999 users'; либо просто не понимаю как это сделать правило, но при попытке вывести "total_online_users", получаю значение ноль.
 
Improvs, вы не понимаете, как действует эта система. Та функция создает переменную onlineUsers ($ourTemplate->setParam) - это не массив, у нее нет элемента total_online_users, вы должны изменить функцию getOnlineUsers, чтобы получить нужные данные.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу