Прочитанные сообщения

+31
3.7K
Приветствую всех! В продолжении темы. Входящие сообщения являются прочитанными тогда, когда открывешь папку с сообщениями. Немного неудобно получается… Пришло, например, 5 сообщений от разных людей, октрыл раздел "входящие" и все они разом стали прочитанными, пока отвечаешь одному, отвлекся на что-нибудь и про остальных забыл). Думаю было бы удобней чтобы непрочитанные месседжи так и оставались таковыми, т.е. в пользовательском меню в скобках отображалось количество таких писем.
Я решил эту задачу таким образом.
Открываем /components/users/messages.php и находим строку примерно 127
  1. $record['fpubdate'] = $inCore->dateFormat($record['fpubdate'], true, true, true);
  2. if ($record['is_new']){
  3. if ($opt=='in'){
  4. //erase new mark
  5. $inDB->query("UPDATE cms_user_msg SET is_new = 0 WHERE id = ".$record['id']);
  6. }
  7. }
  8.  
меняем значение нового сообщения с 0 на 1, т.е. должно получиться SET is_new = 1

Далее можно сделать входящее сообщение кликабельным + ограничить количество символов в папке "входящие", как в других соц.сетях.
открываем ваш шаблон/components/com_users_messages.tpl и находим примерно 75 строка
  1. <td width="" valign="top"><div style="padding:6px">{$record.message}</div></td>
и меняем ее на
  1. {if $opt=='in'}
  2. <td width="" valign="top"><div style="padding:6px"><a style="text-decoration:none;" href="/users/{$record.from_id}/reply{$record.id}.html">{$record.message|truncate:200}</div></td>
  3. {else}
  4. <td width="" valign="top"><div style="padding:6px">{$record.message}</div></td>
  5. {/if}
  6.  
Теперь, когда приходят новые сообщения, пользователь может прочитать одно из них… побродить по сайту и вернуться к другим, т.к. в пользовательском меню будет висеть количество непрочитанных сообщений. Т.к. сообщение стало кликабельным, можно убрать кнопку "ответить", потому что при нажатии на письмо оно откроется и тут же можно будет писать ответ.
Пробуем!
+4
reload reload 12 лет назад #
Теперь бы добавить кнопочку отметить все как прочитанное)
Не всегда ведь хочется читать все и от всех) а кликать по всем сами понимаете не очень приятное задание)
Один из примеров это если пользователь подписался на какую либо тему и его не было на сайте месяц))
0
nikitka nikitka 12 лет назад #
Поддерживаю!pivua +
Автору поста(PrazdNik) БОЛЬШОЙ +
0
Hmelex Hmelex 12 лет назад #
Может данную проблему и её решение выложить в Багтрекере (для рассмотрения Фузе).
Идея постановки вопроса и её решение - в принципе нормальное +1
0
Tirpits Tirpits 12 лет назад #
спасибо! очень полезно, все работает на 1.9
+1
Anubis Anubis 12 лет назад #
Отличное решение! Однако, не учтено что если сообщение стало "кликабельным", то ссылка на первоначальное приветствие от "Службы Рассылки" и других уведомлений от "Служба обновлений" будет вести на ошибку, ведь юзера с id=-1 и id=-2 нет
0
PrazdNik PrazdNik 12 лет назад #
и правда, не учтено...
0
PrazdNik PrazdNik 12 лет назад #
давайте придумаем как сделать кнопку "отметить все как прочитанное".
0
PrazdNik PrazdNik 12 лет назад #
0
al955 al955 8 лет назад #
Помогите, никак не соображу, каким образом реализовать в 1.10.6, чтобы в пункте юзерского меню "Сообщения", при поступлении нового сообщения в личку? пункт меню подсвечивался другим цветом и в скобочках появлялось количество новых сообщений, так как это работает здесь на головном сайте ICMS
0
Ris Ris 8 лет назад #
В админке. Дополнения - Плагины - Анимация при новом сообщении. Включить.
0
al955 al955 8 лет назад #
не работает. Может, проблема в новом шаблоне
0
Ris Ris 8 лет назад #
Так переключите временно на дефолт - проверьте. Обратно недолго переключить.
0
al955 al955 8 лет назад #
На дефолте работает. Какая предположительно может быть причина неработоспособности на новом шаблоне?

Еще от автора

Слайдер новых объектов InstantMaps
Приветствую, друзья! Хочу поделиться простеньким слайдером для вывода новых объектов мапса.
Универсальный шаблон для InstantCMS v1.10 (платный)
Приветствую, друзья! Представляю вашему вниманию универсальный шаблон для InstantCMS v1.10. Подойдет для сайта почти любой тематики.
Ограничение количества символов со счетчиком при вводе текста.
Приветствую всех! Понадобилось на одном проекте ограничить количество вводимых символов в текстовом поле и вывести счетчик оставшихся букв.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.