Создание хука для онлайн пользователей

InstantCMS 2.X

Создание хука для онлайн пользователей

#1 14 августа 2018 в 09:40
Добрый день, как создать хук который будет выполнять запросы к БД?
К примеру есть запрос на обновление даты последнего посещения пользователем сайта, как этот запрос сделать хуком?
UPDATE cms_users SET date_log = now() WHERE id = '3';
Нужен чтоб пользователь с id=3 был на сайте каждый час, вот и хочется сделать хуком а ума только на запрос хватило zst
#2 14 августа 2018 в 12:43

Нужен чтоб пользователь с id=3 был на сайте каждый час

Ramzes
Нужно чтобы он каждый час светился в списке онлай-юзеров на сайте или нужно, чтобы при просмотре его профиля было написано, что он был час назад?
#3 14 августа 2018 в 14:49


Нужен чтоб пользователь с id=3 был на сайте каждый час

Ramzes
Нужно чтобы он каждый час светился в списке онлай-юзеров на сайте или нужно, чтобы при просмотре его профиля было написано, что он был час назад?

Ris

нужно сделать хук))
чтоб онлайн светился там другую таблицу надо дергать, а мне просто чтоб было написано что был час назад, да опять же, дело не в этом, мне надо сделать хук, для выполнения команды к БД… не лезть же постоянно в phpMyAdmin
а чтоб был онлайн и был сейчас будет так-
UPDATE cms_users SET date_log = now() WHERE id = '3';
UPDATE cms_sessions_online SET date_created = now() WHERE user_id = '3';
#4 14 августа 2018 в 16:04

нужно сделать хук))

Ramzes
Хорошо.
Сделайте хук \system\controllers\users\hooks\cron_online.php
  1. <?php
  2.  
  3. class onUsersCronOnline extends cmsAction {
  4.  
  5. public function run(){
  6.  
  7.  
  8. }
  9.  
  10. }
  11.  
В функции run добавляйте какие угодно действия с базой.
В настройках, в планировщике создайте новое задание:
#5 14 августа 2018 в 16:46




В функции run добавляйте какие угодно действия с базой.

Ris

эх блин)) пол дела сделано, благодарю! Но самое вот важное как это правильно пишется, вот что и хотелось бы узнать… ладно, пойду читать умные книжки, или может кто ткнет как и что))
#6 14 августа 2018 в 17:07

Но самое вот важное как это правильно пишется

Ramzes
Можно тупо писать в базу нужные строки:
  1. <?php
  2.  
  3. class onUsersCronOnline extends cmsAction {
  4.  
  5. public function run(){
  6.  
  7. $model = new cmsModel();
  8.  
  9. $insert_data = array(
  10. 'session_id' => 1111111111111,
  11. 'user_id' => 3
  12. );
  13.  
  14. $update_data = array(
  15. 'date_created' => null
  16. );
  17.  
  18. $model->insertOrUpdate('sessions_online', $insert_data, $update_data);
  19.  
  20. $model->db->query("UPDATE cms_users SET date_log = now() WHERE id = 3");
  21.  
  22. }
  23.  
  24. }
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.