Напоминание о новом сообщении

1413
Часто бывает, что пользователь юзает сайт и не обращает внимания на то, что у него есть новое сообщение.
Вот небольшой хак.
Почти в самый конец файла template.php (перед </body>) добавить код:
Код PHP:
  1. <?php
  2. $new_messages = cmsUser::getNewMessages($inUser->id);
  3. if ($new_messages['total']) {
  4. ?>
  5. <script type="text/javascript">
  6. if (confirm("У вас есть новое сообщение!")) {
  7. window.location.href="/users/<?=$inUser->id?>/messages.html";
  8. }
  9. </script>
  10. <? } ?>
Квадратные аватары | Кулинарные рецепты для InstantCMS v1.10.3
Комментарии (30)
AndroS 5 октября 2013 в 16:29 0
Где будет появляться это напоминание и как оно будет выглядеть?
Александр I 5 октября 2013 в 16:39 0
Стандартное окно сообщений браузера.
А напоминание то где выводится будет и как?
Александр I 5 октября 2013 в 17:06 -1

Стандартное окно сообщений браузера.

[/color]
Я не слепой,да и повторятся не стоило. Лучше бы демо сделали, хотя бы в картинке.
CozaNostra 5 октября 2013 в 17:17 +6
Trang 5 октября 2013 в 18:18 -1
жуть как выглядит. Поставил минус :(
Александр I 5 октября 2013 в 18:30 -1
Спасибо за минус! Поржал!!! rofl
Trang 5 октября 2013 в 18:56 -3
что ржачного? И обидеть не хотел. Но выглядит ужасно. Неужели нельзя было обернуть окно во что-нибудь более красивое?
Александр I 5 октября 2013 в 19:07 0
Trang, если по вашему мнению окно выглядит ужасно, обратитесь к разработчикам вашего браузера.
Trang 5 октября 2013 в 19:21 -1
я написал здесь, потому что это Вы выложили этот ужас. И выложили здесь, а не на форуме разработчиков браузеров. Представляю, если б neomaster такую жуть выложил со своей системой переписки. Это ж как нужно не любить свой сайт, чтоб такое прикрутить...
Комментарии тут для того, чтобы выразить свои замечания. Я свою позицию выразил. Можете пропустить мимо ушей, дело Ваше
lokanaft 5 октября 2013 в 19:24 +5
Trang, вы нашли до кого добадаться. Почему к более крупным "поделкам", но выглядящих аналогично, вы не имеете претензий?
Trang 5 октября 2013 в 23:08 -2
я ещё раз повторяю- я ни до кого не "добадывался". Не нужны человеку комментарии- пусть их отключает. Я высказал свою точку зрения. И повторяю, что это ужос. В чём проблема?

По другим "поделкам"- где считаю нужным, там и комментирую. Или мне перед Вами отчитываться, где я комментирую и почему?

N.B. не превращайте комменты в сральник. И не надейтесь, что всем всё понравится. Мне- НЕ нравится. Это и написал
Александр I 5 октября 2013 в 19:29 0
Спасибо за коммент, Trang. Поржал еще раз! rofl
lokanaft 5 октября 2013 в 18:43 +3
после </html>
Шутка?
Александр I 5 октября 2013 в 18:48 0
Пост поправил.
Николай 5 октября 2013 в 19:39 +2
Хак без условно нужный на сайте так как действительно мало кто постоянно смотрит на свои сообщения+, но не большое не удобство в том что окно всплывает еще повторно и при открытие сообщений а при уведомлениях вобще что то не понятное пока не нажмеш на отмену всплывает окно.Может такой баг только уменя, тогда сори.
SJen 5 октября 2013 в 20:58 +14
Побаловался с кодом, вот что вышло
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.


На скрине мой дизайн окна сообщений, у вас будет примерно так
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.


1. сообщение выводится в дизайне стандартных сообщений инстанта.
2. на странице сообщений не выскакивает
3. к "разработчикам браузеров" можно не обращаться - дизайн окна как у всех всплывающих сообщений на сайте
4. минус - работает на версиях 1.10+. На 1.9 если не ошибаюсь всплывающих окон не было.

Сам код:
Код PHP:
  1.  
  2. <?php
  3. $new_messages = cmsUser::getNewMessages($inUser->id);
  4. if ($new_messages['total']) {
  5. ?>
  6. <script type="text/javascript">
  7. jQuery(document).ready(function() {
  8. if (window.location.href.search('messages.html')=='-1') {
  9. core.confirm('У вас есть новое сообщение, открыть?', null, function(){
  10. window.location.href="/users/<?php echo $inUser->id; ?>/messages.html";
  11. });
  12. }
  13. });
  14. </script>
  15. <? } ?>
  16.  
  17.  
Но решение не совсем по феншую.. По мне, так логичнее было бы это писать в шаблоне модуля "Меню пользователя" с добавлением настроек в админку модуля.
Smith 5 октября 2013 в 21:09 +3
В дополнение могу предложить варантом воспользоваться blockUI, демо можно глянуть здесь:
http://www.malsup.com/jquery/block/#demos
Димитриус 5 октября 2013 в 21:11 +1
На 1.9 если не ошибаюсь всплывающих окон не было.
всё верно
AndroS 5 октября 2013 в 21:20 +1
Респект!
Майкл 5 октября 2013 в 22:15 +1
Ого SJen появился!) Есть новые поделки?
Trang 5 октября 2013 в 23:09 0
пусть не "по фэн-шую", но уже хоть божеский вид... респект
Александр I 12 октября 2013 в 09:28 +3
В варианте предложенном SJen не учитываются системные уведомления.
Вот так будет правильно:
Код PHP:
  1. <?php
  2. $new_messages = cmsUser::getNewMessages($inUser->id);
  3. if ($new_messages['total']) {
  4. ?>
  5. <script type="text/javascript">
  6. jQuery(document).ready(function() {
  7. if (window.location.href.search('messages<?php if ($new_messages['notices']) echo '-notices'; ?>.html')=='-1') {
  8. core.confirm('У вас есть новое сообщение, открыть?', null, function(){
  9. window.location.href="/users/<?php echo $inUser->id; ?>/messages<?php if ($new_messages['notices']) echo '-notices'; ?>.html";
  10. });
  11. }
  12. });
  13. </script>
  14. <? } ?>
Artem 6 ноября 2013 в 21:51 0
Поставил в самый конец template.php перед тегом /body код из предыдущего комментария.
и теперь всегда, при заходе незарегистрированным пользователем - выскакивает указанное напоминание.
Что это может быть????
Patriot 6 ноября 2013 в 22:19 0
Возможно этот хак подружить с этим плагином? Чтобы вместо стандартной переписки, открывался NeoMessenger.
hummer7887 17 ноября 2013 в 01:31 0
Пользовался неделю, сейчас хочу удалить! в принципе он мне нравится, но за ним есть бока! когда приходит сообщение он постоянно выводит надоедливое окошко, и на одно сообщение 2 раза! когда гость заходит на сайт, ещё не регистрируясь, а просто гуляя по сайту, его так же преследует это сообщение, и от него не избавится! минусить не буду, всё таки для нас делалось, исправьте ошибки пожалуйста! а так плюс, хак нужный!
Александр I 17 ноября 2013 в 01:41 0
Artem, hummer7887, какая у вас версия InstanCMS, какой браузер?
Хак установлен на версии 1.10.2 - в GoogleChrome ваша проблема не подтверждается.
Artem 23 декабря 2013 в 02:14 0
Стоит 1.10.3, Хром и Яндекс браузеры
Шадринец 7 августа 2014 в 09:12 0
Когда приходит сообщение он постоянно выводит надоедливое окошко, и на одно сообщение 2 раза! когда гость заходит на сайт, ещё не регистрируясь, а просто гуляя по сайту, его так же преследует это сообщение.Я Подтверждаю данный Факт. поставил на 1.10.1 проверил в опере и Мозиле.