Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
Новогодние скидки до 25%!
Подробнее

От личных сообщений к ajax чату

29.07.2016, 22:43
Блохин Илья Сергеевич
Илья Блохин

Зарегистрирован:
2014-07-23
Сообщений: 5

Здравствуйте!
Занимаюсь переделкой компонента "личные сообщения" в ajax чат.
Все получилось кроме отметки сообщения о прочтении. В изначальном варианте в отображении объекта отметка о прочтении ставится так:
Код:
if ($f_RowID) {
opt(!$f_Status && $current_user['User_ID'] == $f_ToUser && $db->query("UPDATE Message$classID SET Status=1 WHERE Message_ID=$f_RowID"), NULL);
}

За нее отвечает Status.
У меня все хитро... Чат собирается из двух частей:
Есть раздел с ЛС с шаблоном 1. Есть его подраздел ЛС2 с зеркальным компонентом и шаблоном 2.
В шаблон 1 через ajax подгружается список объектов из ЛС2 при помощи url: /profile/message/message2/message2_<?=$f_RowID?>.html?show_all&isNaked=1
Итого мы имеем:
Страница /profile/message/ со списком чатов (выборка из БД с группировкой по to_User). Ссылка на чат приводит к списку объектов с поставленной по умолчанию отметкой show_all - мы видим список всех сообщений с датами и именами.
Вводим сообщение и радумся - чат готов. Получается нечто, как на скриншоте - работает онлайн и без перезагрузок при добавлении объектов.
Изображение
-------------
Но при переписке мы не можем отметить сообщения как прочитанные - они все выделены как Status=0. Как сделать, чтобы при открытии окна чата, т.е. при переходе пользователем на страничку вида /profile/message/message_1.html?show_all "прочитывались" все сообщения от пользователя, с кем ведется диалог?
Помогите, пожалуйста, кто знает, все зубы переломал!

Илья
24.08.2016, 12:48
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 1037

Отправьте запрос $db->query("UPDATE Message$classID SET Status=1 WHERE Message_ID=$f_RowID"), NULL); на странице /profile/message/message2/message2_<?=$f_RowID?>.html . Место где вы получаете ответ от аякса для формирования чата в вверху там пропишите запрос.

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
198 196 2016-08-24 12:48:56 14574
Описание проекта