|
Блохин Илья Сергеевич
Илья Блохин
Зарегистрирован: 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 "прочитывались" все сообщения от пользователя, с кем ведется диалог?
Помогите, пожалуйста, кто знает, все зубы переломал!
Илья
|
|
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
|