Плагин "Новые сообщения"

1701
Приветствую!

В качестве первой записи в моем молодом блоге хочу поделиться плагином, который обновляет "Меню пользователя", а именно поле "Сообщения".

Описание: На странице создается таймер, который с заданным интервалом спрашивает у сервера о наличии новых сообщений. Плагин оптимизирован под высокие нагрузки - в нем вообще не используются функции и классы движка. Всего один простой запрос для получения количества новых сообщений.

Период обновления и класс объекта, внутри которого лежит поле "Сообщения" настраиваются из админки. По умолчанию период равен 15 секундам, класс объекта = "my_messages".

Проверялся на версии 1.9


Установка:
1. распаковать архив
2. положить файл jquery.timers.js в папку \includes\jquery.
3. остальные файлы в папку \plugins\p_newmessages
4. установить плагин из админки. И если нужно - настроить (поменять период и класс объекта).

Скачать можно тут

PS Это такой "эконом вариант" - простое решение на аяксе без всплывающих окон, только обновление "меню пользователя".

UPDATE Перезакинул файл
Модуль "Кто онлайн" (оптимизация + аякс)
Теги: плагин
Комментарии (49)
ByMind 2 марта 2012 в 02:47 0
прекрасно
а ведь так же можно и ленту обновлять
SJen 2 марта 2012 в 02:59 +4
Если открыта "лента активности", то подгружать в нее новые события?
ByMind 2 марта 2012 в 03:10 +1
так точно
еще стены, комменты, пиплы онлайн...

уххх, какой простор для творчества.
я прямо загорелся =)
Def 2 марта 2012 в 03:32 0
мм...странно, не показывает без перезагрузки
SJen 2 марта 2012 в 03:43 +2
версия инстанта 1,9?
если есть фаербаг, можно посмотреть через него:
1. есть ли вызов update.php
2. какой код возвращает сервер(в фаербаг на закладке Сеть, колонка Статус)

ну если можно - кидайте мне сайт в личку, проверю что такое
Def 2 марта 2012 в 03:48 0
стукнул в аську)
ByMind 2 марта 2012 в 05:42 0
если сообщения удалить непрочитанными, то они навсегда зависают в новых
пока из базы не удалишь
SJen 2 марта 2012 в 05:56 +3
Согласен, не отфильтровывал удаленные - перезакинул файл. Сейчас показываются только новые, не удаленные сообщения.
KS 2 марта 2012 в 05:53 0
Отличный плагин ! Спасибо ! +

а это отладка?
// if ($user_id ==312)
// {echo $sql;}

ps
Вам нужно срочно подумать о создании хорошего платного чата для инстанта на аяксе! ))
SJen 2 марта 2012 в 05:58 +3

// if ($user_id ==312)
// {echo $sql;}

Это лишнее:) Перезалил файл - исправлено отображение удаленных сообщений и убран этот ненужный код.
stasis 2 марта 2012 в 08:29 +1
Хороший скриптик... пригодился... спасибо Вам за Ваш труд...
CROSS ツ 2 марта 2012 в 10:09 +1
Работает +
NIKITA 2 марта 2012 в 12:17 0
Спасибо! Отлично!
Александр 2 марта 2012 в 13:37 0
Плюсанул и взял на заметку. Думаю скоро пригодится
Mazhara1986 2 марта 2012 в 16:04 0
Коллеги! на 1,8 работает? У меня что то без изменения.
SJen 2 марта 2012 в 16:47 0
Если можно - киньте сайт в личку, проверю. У меня нет версии 1.8, не проверял.
GarikKR 2 марта 2012 в 17:22 +1
Очень спасибо!!!+++100500.Вот бы как нибудь звук приделать на сообщения...
SJen 2 марта 2012 в 17:26 +3
Да, об этом я тоже подумал - хотя бы для админа. Ну или по крайней мере с настройками кому "играть". Добавлю в следующей версии.
SJen 2 марта 2012 в 18:08 +1
Вы не закинули файл таймера.
2. положить файл jquery.timers.js в папку \includes\jquery.

У вас он просто не подгружается, из-за этого таймер не срабатывает
st.Puh 2 марта 2012 в 18:08 +1
Спасибо,все работает супер
VonKruger 4 марта 2012 в 22:36 +1
Установил, испытаю. Спасибо за проделанную работу.
Vovan 5 марта 2012 в 08:41 0
Подскажите а можно сделать что бы при новом сообщении начинала мигать вкладка в браузере например как в одноклассниках
DanRacer 5 марта 2012 в 10:56 0
Подскажите, как бы это дело прикрутить к комментариям?
DanRacer 5 марта 2012 в 11:13 0
Имею ввиду к блоку последние комментарии, чтобы обновлялись без перезагрузки страницы.
SJen 5 марта 2012 в 13:37 +2
Vovan:
Подскажите а можно сделать что бы при новом сообщении начинала мигать вкладка в браузере например как в одноклассниках
Посмотрю как в одноклассниках (я там не сижу, не в курсе как у них сделано). Сделать можно все.

DanRacer:
Подскажите, как бы это дело прикрутить к комментариям? Имею ввиду к блоку последние комментарии, чтобы обновлялись без перезагрузки страницы.

"Это" дело к комментариям не прикрутится:) Там надо дорабатывать сам модуль комментариев. Притом обновлять не весь блок комментов целиком, а красиво добавлять только новые комментарии. Посмотрю как-нибудь, но не обещаю что скоро.
DanRacer 5 марта 2012 в 20:33 0
Хорошо, спасибо, буду ждать.
Mazhara1986 5 марта 2012 в 21:56 -1
Ждем, ждем, ждем! И не забывайте про v 1.8
SJen 5 марта 2012 в 22:20 +2
Да тут такая штука - я же в первую очередь не разработчик (как некоторые тут), а владелец сайта - так что изначально я все делаю под свой проект, ну и какими-то "фишками" непрочь поделиться. Специально разрабатывать для других версий не обещаю, но скорей всего разработки будут универсальные или почти универсальные.
Алексей Гаврилов 11 марта 2012 в 12:22 0
Искал что то подобное, спасибо)
Иван Шкута 22 апреля 2012 в 11:30 0
Прикольно +
SJen 22 апреля 2012 в 11:36 0
сейчас этот плагин встроен в систему переписки
Нил™ 3 мая 2012 в 13:07 0
Супер! Спасибо! Это ж я так понимаю теперь и пользователя не будет выкидывать из списка онлайн пока он на сайте.
SJen 3 мая 2012 в 13:13 0
С выкидыванием пользователя это никак не связано - это же просто сообщения.
Чтобы не выкидывало, вот плагин (бесплатный). Он обновляет онлайн статус.
Нил™ 3 мая 2012 в 13:15 0
ну я в том смысле если у меня открыт браузер и от меня идут какие то запросы на проверку новых сообщений, разве я не поддерживаю таким образом свое присутствие??? за плагин спасибо.
SJen 3 мая 2012 в 13:19 0
не поддерживаю таким образом свое присутствие
если кратко - нет)

"Поддерживать присутствие" - это значит обновлять запись в таблице cms_online, а при проверке новых сообщений проверяются ТОЛЬКО новые сообщения, никаких записей в базу не производится.
Нил™ 3 мая 2012 в 13:37 0
Ясно спасибо. ..
Одно украшательство к плагину - Звуковое оповещение
кому надо делаем так: в файле user_menu_tpl после
<span class="my_messages">
{if $newmsg}
вставляем это
<embed type="application/x-shockwave-flash" src="путь к файлу плеера/audio1.swf?song_url=ссылка на ваш mp3 файл.mp3&autoplay=1&loop=0" width="0" height="0"/>
теперь и видим и слышим.

плеер и звук дверного звонка можно взятьтут http://instantcms.ru/users/files/download2062.html
SJen 3 мая 2012 в 14:06 +1
это не то))
это будет работать только при обновлении страницы, а если сообщение придет от плагина - звука не будет - потому что код из user_menu_tpl не сработает. Да и версию со звуком я тоже выкладывал, где-то есть)
SJen 3 мая 2012 в 14:07 +1
Нил™ 3 мая 2012 в 14:17 0
Большое спасибо!
Александр Корн 12 августа 2012 в 13:22 0
Поставил! Нарадоваться не мог! но поменяли оформление сайта и...! Посмотрите пожалуйста! http://in-army.com! меню пользователя переделали и теперь два пункта СООБЩЕНИЯ. Один штатны, второй которы появляется при обновлении. Подскажите пожалуйста! Заранее спасибо! И сильно не ругайте! В веб-программировании не силен ни разу!
Александр Корн 12 августа 2012 в 23:23 0
пришлось пока убрать чтобы сайт не выглядел глупо... будем пытаться лечить... если что получится - напишу
letsgo 12 августа 2012 в 23:35 0
Та его глупее ничто не сделает уже. Пацанам в армии очень важна прошивка биос в виндоус, да ладно уж это, но главное вывести в меню маркетинг и Эластичность спроса. Крутой сайт. Все про все, а названии "в армии".
Александр Корн 13 августа 2012 в 21:43 +2
Уважаемый letsgo! Вы сами служили в армии? Судя по вашему сообщению вы далеки от всего военного и околовоенного. Вы плохо себе представляете военных. Вы думаете им (НАМ) интересны только ширина плаца, вес пули и длина строевого шага? Вынужден Вас огорчить. Ничто человеческое нам не чуждо! А статьи по умолчанию - при наполнении скроются новыми материалами. Которые, кстати, выбираются теми пользователями, которые зарегистрированы на сайте!!! Будут новые пользователи, новые пожелания - будут и новые статьи на новые темы! Также прошу заметить, что это СОЦИАЛЬНАЯ СЕТЬ! Да, она называется В АРМИИ! Она объежиняет людей так или иначе связанных с военным делом. Но это не значит, что здесь они будут говорить только о службе. И вообще знаете... легко обосрать проект которые только зародился... Я так понял, что Вас не интересовала техническая реализация, дизайн... Просто что-то Вас подвигло плюнуть туда где работают люди. Такая политика тоже имеет право на существование. Но я искренне надеюсь, что Вы ее пересмотрите. Буду рад конструктивной критике и советам.
P.S. наполнение сайта тематическим контентом конечно же будет!
В любом случае, спасибо за внимание к проекту!
Санечек 13 августа 2012 в 21:57 +1
спасибо, работает как и все у Sjen +
Александр I 6 ноября 2012 в 10:47 0
На версии 1.10 НЕ работает только у меня?
SJen 6 ноября 2012 в 11:10 0
подтверждаю, не работает на 1.10
Александр I 6 ноября 2012 в 11:28 0
Странно... Не работает только на главной, а на других страницах работает.
Александр I 6 ноября 2012 в 11:37 0
Кроме главной работает только после обновления страницы.
Antik 7 ноября 2012 в 13:47 0
Для 1.10 появится версия? Хотелось бы :)