Всем привет, кто сможет подсказать как вывести значок устройства с которого сейчас онлайн пользователь (без разницы какой пользователь при просмотре своего профиля или чужого). Как это делается например ВКонтакте. В коробке есть библиотека mobile_detect.class.php, по которой мы можем делать отображение виджетов для ПК и мобильных устройств. Дак вот можно ли с помощью её писать с какого устройства пользователь сейчас на сайте и согласно этого отображать значок телефона или ПК, а так же например «Был онлайн 5 минут назад с ПК или телефона». Я думаю кому-то тоже будет интересна подобная фича. Всем заранее спасибо.
Примерно так: в нужном файле/месте шаблона:
<?php $online_icon = $device_type == 'mobile' ? 'иконка смартфона' : ($device_type == 'tablet' ? 'иконка планшета' : ''); ?> <?php echo $online_icon; ?>
Примерно так: в нужном файле/месте шаблона:
<?php $online_icon = $device_type == 'mobile' ? 'иконка смартфона' : ($device_type == 'tablet' ? 'иконка планшета' : ''); ?> <?php echo $online_icon; ?>
Это будет видеть сам пользователь у себя. Чтобы видели другие, надо устройство запоминать в базе.
Это несложно, но готового кода нет. И нужен будет запрос в базу. Или поле в профиле создать для хранения.
Примерно так: в нужном файле/месте шаблона:
<?php $online_icon = $device_type == 'mobile' ? 'иконка смартфона' : ($device_type == 'tablet' ? 'иконка планшета' : ''); ?> <?php echo $online_icon; ?>
Не сработало даже на моем профиле(
Не сработало даже на моем профиле(
Выше Zau4man сказал, что это не поможет. Так и есть, полностью с ним согласен, невнимательно прочитал задачу. Нужно писать хук, который куда-то (на мой взгляд, лучше всего в специальное поле в таблице в БД) сохраняет устройство при авторизации, а потом во всех файлах, где это нужно, нужно проверять записанное устройство и выводить нужную иконку. Одной строчкой код не отделаться))
Что-то такое было уже:
instantcms.ru/blogs/korobochka/opredelenie-ustroistva-polzovatelja-v-profile.html
Что-то такое было уже:
instantcms.ru/blogs/korobochka/opredelenie-ustroistva-polzovatelja-v-profile.html
Да только там файл уже удален))
Да только там файл уже удален))
Под спойлером файл.
instantcms.ru/blogs/korobochka/opredelenie-ustroistva-polzovatelja-v-profile.html#comment_113837
Да только там файл уже удален))
Под спойлером файл.
instantcms.ru/blogs/korobochka/opredelenie-ustroistva-polzovatelja-v-profile.html#comment_113837
Спасибо сработало. Единственное надо было cms_users заменить на users. Но это работает только когда пользователь залогиниться и будет пользоваться одним устройством, а если он например залогинен и на телефоне и на ПК, будет указан последний девайс под которым он залогинился, а не тот под которым он сидит в текущий момент. Можно как-то периодически «пинговать» устройство пользователя и обновлять его в БД. Например сейчас в БД записан ПК, идет пинг если пользователь сидит с ПК то ничего не происходит, а если с телефона то обновить устройство в БД.
будет указан последний девайс под которым он залогинился, а не тот под которым он сидит в текущий момент
Если надо — сделал миникомпонент для шаблона модерн. Использует иконки из шаблона.
Устанавливать стандартным способом. Только лучше вернуть родные файлы \system\controllers\users\hooks\auth_login.php и \templates\modern\controllers\users\profile_header.tpl.php
По поводу отображения того, под чем сидит юзер — попробую переделать под событие старт енджайн… может поможет...
будет указан последний девайс под которым он залогинился, а не тот под которым он сидит в текущий момент
Если надо — сделал миникомпонент для шаблона модерн. Использует иконки из шаблона.
Устанавливать стандартным способом. Только лучше вернуть родные файлы \system\controllers\users\hooks\auth_login.php и \templates\modern\controllers\users\profile_header.tpl.php
По поводу отображения того, под чем сидит юзер — попробую переделать под событие старт енджайн… может поможет...
Вернул) подожду тогда вашей переделки и сразу установлю.)
Вернул) подожду тогда вашей переделки и сразу установлю.)
Пробуйте. Добавил еще хук user_auto_login
Вернул) подожду тогда вашей переделки и сразу установлю.)
Пробуйте. Добавил еще хук user_auto_login
Установил, значек ставится только при логине, если уже залогирован никакого обновления не идет. Или сколько нужно ждать?) Меняется только при перезаходе)
Меняется только при перезаходе)
Странно. У меня работает...
Буду искать дальше. Вешать на engine_start — слишком затратно. Будет каждый раз дергать базу при любом движении юзера.
Меняется только при перезаходе)
Странно. У меня работает...
Буду искать дальше. Вешать на engine_start — слишком затратно. Будет каждый раз дергать базу при любом движении юзера.
А если повесить на метод который проверяет онлайн пользователя если можно конечно.