Из за косяка в Битрикс API убил сегодня несколько часов своего драгоценного времени 🙁
И всё это на фоне «горящих» сроков по проекту 🙁
Итак, ТЗ:
Надыть сделать в Битрик форуме иконку присутствия пользователя на форуме.
C виду задача плёвая — кастомизируем шаблон на предмет текущей активности юзера и готово!
Первая проблема — нужная область вывода находится не в скопированном для кастомизации шаблоне, а в шаблоне «секретного» компонента самого битрикса.
/bitrix/components/forum.message.template/templates/.default/template.php
который копирую в свой дабы не затёрся при обновлении движка
/bitrix/components/forum.message.template/templates/portal/template.php
так же уже в шаблоне компонента заменяем шаблон в вызове метода forum.message.template
это …./forum.topic.read/.default комплексного компонента forum
(искать соответственно в шаблоне комплексного компонента)
Вторая проблема:
CUser::IsOnLine — нихера не работат! На что отдельное Спасибо разработчикам …
Чтобы фукнция заработала в init.d пихаем следующий код:
AddEventHandler('main', 'OnBeforeProlog', 'CustomSetLastActivityDate');
function CustomSetLastActivityDate() {
if($GLOBALS['USER']->IsAuthorized()) { CUser::SetLastActivityDate($GLOBALS['USER']->GetID()); }
}
Дальше вроде всё просто …
Один комментарий на «“Битрикс — не работает User::IsOnLine”»
Знакомая ситуация, вроде и платный движок, а ведет себя как груда кодов, безобразие и только.