"Система переписки" на аяксе (Instant 1.8-1.9). Версия 1.1

2048
Приветствую!
С некоторой задержкой готов предоставить очередную версию "системы переписки". В нее вошли как исправление всех озвученных багов, так и добавление порции нового функционала.

Повторю функционал версии 1.0 (ссылка на пост)

Спойлер

А теперь то, что добавилось в новой версии 1.1:

1. История сообщений - можно подгрузить в чат более ранние сообщения
2. Обновление меню пользователя при появлении нового сообщения, даже при закрытом окне переписки.
3. Звуковое оповещение при поступлении нового сообщения (можно отключить).
4. В списке контактов появились вкладки
а) "переписка" - все, с кем вы когда-либо общались
б) "друзья" - соответственно, все друзья
в) "онлайн" - все пользователи, которые в данный момент есть в сети.
5. Пометка "онлайн" в списке контактов. Пометка обновляется динамически. Если открыта закладка "онлайн" - то на нее автоматически добавляются юзеры, которые появляются на сайте.
6. При открытии окна переписки новым посетителем (у которого еще нет сообщений и пустой список контактов) - открывается страница помощи с описанием основных функций.
7. Настройки цветовой гаммы вынесены в админку - цвет фона, текста в заголовке окна, фона выделения активной вкладки.
8. Добавлена отправка уведомления на email при отправке сообщения (как в стандартной отправке средствами движка).
9. Внесено большое количество мелких корректировок в дизайн (выделение активного юзера, формат сообщения в чате, изменение стрелки при сворачивании контактов и тд), которые озвучивались в комментариях к первой версии.
10. При отправке сообщения получатель перемещается в самый верх списка

Все протестировано на версии Инстанта 1.9, для 1.8 обновление будет готово через несколько дней.

ПОПРАВКА - на 1.8 протестировано и для версий 1.8-1.9 теперь одна версия переписки. С учетом особенностей разных версий инстанта.


Потрогать вживую можно на тестовом сайте - тут
Зайти можно под любым из пользователей: demo1, demo2, demo3, demo4, demo5. Пароль у всех 12345 либо зарегистрировать нового пользователя.
Увидеть из любого профиля (своего либо чужого) и из меню пользователя (ссылка Сообщения).
В своем профиле ссылка "Мои сообщения", в чужом ссылка "Переписка".


Архив подготовлю к вечеру воскресенья, также в течение дня разошлю его всем, кто приобрел первую версию. На личные сообщения тоже отвечу в течение дня - до этого всё время отдавалось только разработке и доведению до ума переписки и просто не было времени на что-то еще.

PS Было много разговоров про реализацию системы в дизайне, который продемонстрировал BilarИuss. Предварительная договоренность об этом с ним уже есть, но он пока не подготовил сам дизайн. Возможно, следующая версия будет уже в двух вариантах дизайна.

Скрин


Остальные иллюстрации в старой теме и на тестовом сайте.
Релиз "Системы переписки" на аяксе (Instant 1.8-1.9) | "Система переписки", что дальше?
Комментарии (67)
reload 15 апреля 2012 в 04:13 0
Отлично!
дизайн не проблема, главное функционал!
другими словами - было бы к чему диз прикручивать)

не знаю на сколько прав - но мне кажется что вкладка "онлайн" должна открывать только друзей а не всех подряд)
и мелочь - слово "переписка" можно сменить на "история" - так вроде логичней)
SJen 15 апреля 2012 в 16:08 +1
Вкладка "онлайн" так и задумывалась - показать всех, кто в сети. Независимо от того - друг или нет. Так сказать, чтобы подталкивать к новым знакомствам). Ну а поменять наименование - это можно в самом шаблоне, я сделал по аналогии с одноклассниками - это будет понятно большинству юзеров.
reload 15 апреля 2012 в 17:20 +2
Я за то чтоб разработка была мегаудобна!!!)
То что пишу, всего советы, которые, как мне кажется, должны дать большие удобства для юзеров)

к примеру, общее число пользователей онлайн может несколько тысяч быть. зачем они мне нужны?)
а вот когда я зашел, меня ведь больше интересуют именно мои друзья!
Вижу к примеру 5 друзей онлайн - по любому что то напишу кому-то!
А искать даже из 100, своих 5 друзей, не совсем удобно - тем более что не известно заранее есть в сети они или нет!


Так сказать, чтобы подталкивать к новым знакомствам)
Поиск пользователей для выбора с кем пообщаться тут не пляшет - он должен учитывать город, интересы, пол, ... - в переписке он не актуален - мы ведь обычно абы кому не пишем!) если конечно это не спам)

Вкладка "онлайн" так и задумывалась - показать всех, кто в сети.
есть модуль "кто онлайн" не нужно его пихать в переписку)

Я только на секунду представил - захожу в вк или одноклассники и мне вываливается весь список кто онлайн))
ну увидел что пару сотен тысяч, круто) ок могу вбить поиск по нику, если помню как он правильно написан и найду того кто нужен, потом вспомню о другом и также найду, НО! в этот момен будет еще один друг онлайн который заходит раз в 100 лет! ему бы я точно написал - но так как я знаю что его тут фиг нарисуешь то и искать не стал - соответственно и общение которое было бы с вероятностью в 100% свелось на 0% !!!
Улавливаете?)
Поверьте - все, кто онлайн, это зло в переписке, а свои друзья - это сила!)
reload 15 апреля 2012 в 21:33 0
А прокомментировать можно?!!
Я может и дурак, но мне очень интересно чем модуль "кто онлайн" принесет пользы больше в переписке чем "друзья онлайн"?)

Если кто то имеет мысли обратные моим утверждениям (советам) и уверен в пользе своих идей - не стесняйтесь, пишите! вместе мы сделаем мир красивее!)))
SJen 15 апреля 2012 в 21:51 +1
Прочитал, подумал)

У меня посещалка 35к в сутки, одновременно на сайте не более 30 юзеров онлайн(все они прекрасно помещаются на вкладке). Лично для меня как администратора сайта (и для моих модераторов) вкладка нужна - бывает нужно написать кому-то быстро, не пускаясь в поиски. А вот друзей онлайн так мало(3-5-8), что они прекрасно видны и в списке всех друзей.

Прихожу к выводу, что это надо убирать в настройки в админку - какие вкладки и что на них показывать. Но вкладка "друзья" уже есть, нет смысла переименовывать "онлайн" в еще одних друзей.. Надо фильтровать уже имеющуюся вкладку "друзья" - если хочется видеть только тех, кто в сети.
reload 15 апреля 2012 в 22:40 0
Лично для меня как администратора сайта (и для моих модераторов) вкладка нужна - бывает нужно написать кому-то быстро
Согласен. Я отталкивался только от юзеров)
Можно эту вкладку показывать только админам!) или вывести настройку в админку кому показывать.
Но вкладка "друзья" уже есть, нет смысла переименовывать "онлайн" в еще одних друзей..
Можно открывать вкладку только при клике на друзья, типа так:


Надо фильтровать уже имеющуюся вкладку "друзья" - если хочется видеть только тех, кто в сети.
Если можно - то нужно! пользователи всегда хотят видеть кто из друзей тоже в сети) и если это реализовано без поисков - то это очень удобно.

только что посмотрел ВК у них есть вывод в поиске, так тоже можно:


В общем как угодно - но это нужно - пока не вижу ни одной причины отказываться от этого)
SJen 16 апреля 2012 в 00:14 0
pivua):
пользователи всегда хотят видеть кто из друзей тоже в сети)
Это уже есть в функционале - можно видеть кто онлайн, кто нет. Как на вкладке друзья, так и в переписке
reload 21 апреля 2012 в 03:08 0
SJen:
Это уже есть в функционале - можно видеть кто онлайн, кто нет. Как на вкладке друзья, так и в переписке
pivua:
пользователи всегда хотят видеть кто из друзей тоже в сети) и если это реализовано без поисков - то это очень удобно.
ключевые слова: "друзья" и "без поисков - очень удобно" !)
Алексей Тимофеев 15 апреля 2012 в 04:37 0
SJen выслал на почту psd
ph3no 15 апреля 2012 в 13:56 +2
Вот как будет примерно такой дизайн, сразу можно приобретать. Конфетка!
Эдуард Машковский 15 апреля 2012 в 14:06 0
классный дизайн, в честь празника может подаришь
Zau4man 15 апреля 2012 в 10:28 0
Что по нагрузке на бд? Сильно увеличивается?
SJen 15 апреля 2012 в 16:18 +2
BilarИuss:
SJen выслал на почту psd
Спасибо, получил, в следующем релизе добавлю.

Евгений:
Что по нагрузке на бд? Сильно увеличивается?
Увеличивается по сравнению с чем? Если все юзеры будут активно сидеть в этой "переписке" нагрузка на сервер скорее спадет, потому что они не будут грузить сервер гулянием по сайту - вместо 100 запросов на открытие страницы будет несколько запросов на получение нового сообщения, либо на отправку. Также будет быстрее по сравнению со стандартной отправкой сообщений - вместо перезагрузки страницы всего парочка запросов.

Каких-то жестоких запросов нет(по времени и нагрузке на сервер), все работает довольно шустро.

Эдуард машковский:
классный дизайн, в честь празника может подаришь
Дизайн у меня уже на руках - дело за версткой и натягиванием его на систему
stasis 15 апреля 2012 в 17:22 0
Дизайн у меня уже на руках - дело за версткой и натягиванием его на систему
И когда будет готово???
WALTERZ 15 апреля 2012 в 17:35 0
Он же написал - в следующем релизе
stasis 15 апреля 2012 в 17:42 0
И когда примерно будет следующий релиз???
livecom 15 апреля 2012 в 18:24 0
Как правильно сказал pivua), в системе сообщений во вкладке "Online" нужно оставлять только друзей, а не всех пользователей.

И огромная просьба, появляющееся окно с сообщениями сделать с возможностью передвижения по экрану, свертывания, а не удаления и без затемнения. Поверьте, так будет лучше.
SJen 15 апреля 2012 в 18:51 +1
stasis:
И когда примерно будет следующий релиз???
врядли ранее, чем через неделю, более реальный срок - к концу апреля.
Мне нужно найти верстальщика (сам этим заниматься не буду, дизайн непростой - а я больше кодер, чем верстальщик). Да и по функционалу дизайн чуть богаче, чем моя версия - есть сортировка по последним сообщениям - "сегодня", "вчера", "в течение недели".

livecom:
в системе сообщений во вкладке "Online" нужно оставлять только друзей, а не всех пользователей.
Я бы лучше добавил фильтр онлайн-оффлайн для закладки "друзья" и "переписки" - это логичнее, чем оставлять вкладку "друзья" и добавлять еще одну "друзья онлайн", как вы предлагаете. Вкладка "онлайн" ценна сама по себе, но если вам для вашего проекта она не нужна - могу предложить просто закомментировать ее в шаблоне. Еще как мысль - добавить настройки вкладок в админку, чтобы каждый сам смог настроить названия и контент, который будет подгружаться на вкладке.

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

Интересное предложение, подумаю над реализацией. Вопрос еще в том, что будет со свернутым окном при обновлении страницы. Хотя, если весь сайт работает на аяксе - то вопрос отпадет сам собой.
SJen 15 апреля 2012 в 21:13 +3
Отправил обновление всем купившим и ответил всем, кто хотел приобрести.

Если пропустил кого-нибудь - напишите, пожалуйста, еще раз. Всякое бывает, очень много сообщений - мог запутаться)
VopisUVD 15 апреля 2012 в 22:27 -1
Компонент безусловно интересный по дизайну рекомендую добавить в админку такую функцию чтоб цвет фона, рамок и остальных элементов можно было изменить это позволит быстро подогнать под свой дизайн без правки самих файлов.
Алексей 15 апреля 2012 в 22:32 +2
У разработчика и так много работы... дизайн не так уж и важный каждый понимающий в css может себе по своему сделать.
Даже такой разработки люди рады.. сколько об этом писали на форуме, не кто не брался за это дело... SJen решил и сделал людям наконец то добро дело и не дорого.
SJen 15 апреля 2012 в 22:51 +3
в админку вынесены настройки для пяти цветов - это основные цвета, которые определяют внешний вид. Выносить бОльшее количество (то есть по сути весь css файл) думаю перебор. Если вы хотите подогнать цвета под себя - то лучше всего взять css файл и подкорректировать - это будет логичней всего.
Hunter (Роман) 16 апреля 2012 в 04:24 0
У меня баг - при переписке - переходишь в профиль другого пользователя - то есть вообще под его именем заходишь.
И еще если помолчал минуту - при попытке отправить сообщение пишет - Вы не авторизированы
SJen 16 апреля 2012 в 04:53 0
Если вы сможете написать действие, после которого меняется пользователь - напишите. У меня не получается повторить такого бага.

И еще если помолчал минуту - при попытке отправить сообщение пишет - Вы не авторизированы
Есть подозрение, что умирает сессия, но время жизни сессии всего минута это как-то неправдоподобно.. Сервер виртуальный?
Hunter (Роман) 16 апреля 2012 в 06:46 0
Сервер виртуальный. Но первая версия - работает нормально - проблем с ней нет. А вот поставил обновление и началось.
Hunter (Роман) 16 апреля 2012 в 07:41 0
Нашел конфликт с библиотекой jquery-1.6.4.min.js - у меня один модуль на ней пашет, отключил - все равно такая-же штука.
Поотключал все модули связанные с jquery - все равно глючит новая. Не пойму в чем причина.
SJen 16 апреля 2012 в 15:36 0
Проблему решили, она возникла из-за "register_globals on" - с такой директивой переписка работала некорректно. Обновил свои скрипты, больше такой проблемы не будет независимо от настроек register_globals.
Hunter (Роман) 16 апреля 2012 в 17:22 0
Да большое спасибо за оперативную помощь.
eoleg 16 апреля 2012 в 11:07 0
Все-таки SJen в продолжение нашего ночного общения:
Добавление а друзья.
Приходит сообщение о приглашении в друзья.
Человек должен перейти в свой профиль, найти закладку приглашения в друзья и принять приглашение.
Но это нужно знать, и соответственно получается что пользователь видит что у него есть сообщение но нажимая на сообщение не видит его так как это закладка приглашения в друзья а у него открывается окно сообщений.
В общем неудобно и как то нужно добавить приглашения в друзья в окно сообщений.
SJen 16 апреля 2012 в 11:25 0
"найти закладку" - это только в вашем шаблоне так) Например, на инстантсмс.ру - закладку искать не надо, приглашение прямо на странице профиля под аватаром.

Но в целом согласен - процедура отправки запроса и принятия дружбы сделаны неудобно. Только это никак не связано с "системой переписки", которая просто отображает входящие сообщения и позволяет написать ответ.

Друзья - это отдельная тема, планировал добавить это в переписку. Тогда процедура отправки и принятия запроса на дружбу упростятся. Не будет необходимости открывать профиль. Но пока работает стандартная схема с подтверждением в профиле (на отдельной закладке или нет - зависит от шаблона)
Hunter (Роман) 16 апреля 2012 в 17:23 0
Еще для админа надо обязательно предусмотреть - "отправить всем"
SJen 16 апреля 2012 в 17:31 +1
"Отправить всем" реализовать просто - но боюсь, что далеко не каждый сервер потянет массовую отправку - там же уведомления на email полетят, тут у людей из-за этого VDS повисают, не говоря уже про виртуальные хостинги...

Так что сначала надо написать пакетную отправку, скажем по 100-150 писем в час, а потом уже добавлять в переписку такие вещи - иначе страшная штука получится.

Но если сделать массовую отправку ЛС без уведомлений на имейл - то это довольно просто и не затратно по ресурсам.
Def 16 апреля 2012 в 21:28 0
ага, можно начать без отправки) и то гуд будет, если сообщество активное
Hunter (Роман) 17 апреля 2012 в 06:23 0
В принципе и старый вариант работает - так что все в порядке, можно и не делать. У меня 260 пользователей, ничего хостинг виртуальный (sweb.ru) не засыпается - пользуюсь массовой рассылкой 2-3 раза в неделю.
Hunter (Роман) 17 апреля 2012 в 06:20 0
Заметил такую проблемку - когда приходят сообщения от службы рассылки - то их не видно в окне сообщений. Вообще порой приходят от пользователя сообщения - пока найдешь от кого - время уходит - в списках все до кучи. Не совсем удобно - думаю надо сделать вкладку - новые сообщения или последние сообщения - как с Скайпе или в других системах - чтобы при нажатии на нее отражалось от кого сообщения пришли - так будет намного удобнее - и она должна сразу быть открыта при вызове диалога "переписки"
SJen 17 апреля 2012 в 11:24 0
Вкладку можно добавить, но в аське например ничего подобного нет, как и в одноклассниках (в скайпе не смотрел, не пользуюсь). Вообще задумано так, что искать не нужно новые сообщения - автор сообщения перемещается на первое место в списке с пометкой "сообщение".

Но вкладку "Последние входящие сообщения" я добавлю - была такая мысль, проблема была только как встроить в дизайн красиво. И добавлю в левом списке сортировку контактов по последним сообщениям (сейчас там по алфавиту стоит сортировка).

Из ближайших планов по развитию:
1. Вывод последних входящих сообщений
2. Исчезание панели смайлов после клика на смайл(опционально)
3. Сортировка по последним сообщениям в списке контактов
4. Удаление юзеров в списке контактов
5. Запоминание порядка в списке контактов (при смене вкладки - "Переписка", "Друзья", "Онлайн").
6. Отображение друзей онлайн
7. Отправка группе пользователей

пока вроде все
aha 5 мая 2012 в 01:12 0
а как приобрести такое чудо? никак не могу найти. или в личку написать?
SJen 5 мая 2012 в 01:32 +1
написал в личку
CyberMan 7 мая 2012 в 18:42 0
Отличный компонент.куплю при первой же возможности
БИБАБО 11 мая 2012 в 11:16 0
Вот что заметил сегодня:
Отправил одной знакомой ссылку на скачку Оперы)... ссылка режется при отправке...

И еще, стоит компонент "игры NextGame" от Марата, где приходят сообщения от Службы сообщений.
Дак вот, в сообщениях отсутствуют ссылки, хотя если читать обычным способом сообщения, то ссылки на месте...
SJen 11 мая 2012 в 11:37 0
а можно в личку ссылку на скачку оперы? - проверю
Вообще я сам ссылки отправлял - и просто текстом и через bb код, приходили успешно
может дело в ссылке?
БИБАБО 11 мая 2012 в 12:31 0
Вот, обычная ссылка - http://www.opera.com/download/get.pl?id=34630&location=381&nothanks=yes&sub=marine
Обычным способом все нормально отправляет а через вашу "Систему переписки" режет ссылку...
SJen 11 мая 2012 в 12:37 0
вижу, исправлю
SJen 11 мая 2012 в 11:43 0
ааа, стоп..
Так ссылки не приходят в компонент от Марата? - тогда лучше у него спросить про это.. я про его компонент ответить не смогу
БИБАБО 11 мая 2012 в 12:36 0
Если без ваших сообщении (по старому) ссылки присутствуют от службы сообщении... а если просматривать это же сообщение через "Систему переписки" то, ссылок нет...
БИБАБО 11 мая 2012 в 12:49 0
Например.
Вот так сообщение выглядит через вашу систему:

Приложение отправило Вам сообщение следующего содержания:
Вы давно не заходили в «Бильярды».

А так старым способом

Приложение Бильярды отправило Вам сообщение следующего содержания:
Вы давно не заходили в «Бильярды».

Бильярды это ссылка на приложение.

Т.е. ссылка не приходит через вашу систему, но приходит старым способом...
SJen 11 мая 2012 в 14:00 0
да, я понял
проверю и исправлю
БИБАБО 11 мая 2012 в 18:29 0
Подскажите еще пож. где время исправить, а то Московское в сообщениях показывает.
SJen 12 мая 2012 в 02:28 0
время выводится согласно настройкам в админке - там где у вас стоит часовой пояс и смещение.
И это время должно совпадать с тем, которое указано в старых сообщениях (не в моем окошке на аяксе).
БИБАБО 12 мая 2012 в 07:20 0
В том то и дело что не совпадает.... в старых сообщениях правильное время, а в новых на 2 часа меньше...
БИБАБО 12 мая 2012 в 11:38 0
В админке все настроено)

config.inc.php:

Код PHP:
$_CFG['timezone'] 	= 'Europe/Moscow';
$_CFG['timediff'] 	= '2';
БИБАБО 12 мая 2012 в 11:45 0
Поигрался немного.
Если менять время в админке, то время в старых сообщениях тоже меняется, а в ваших всегда Московское...
SJen 12 мая 2012 в 11:54 0
нашел причину, заканчиваю новую версию - там это исправится. У вас же отображается время сервера
platon 8 июня 2012 в 21:54 0
вообщем приобрел плагин, все сделал по инструкции, но при нажатии на сообщение просто затемняется экран но переписка не появляется! В чем проблема может быть не подскажите? вот сайт http://pagecity.net.ru
SJen 9 июня 2012 в 00:56 +2
чаще всего причина в кривом шаблоне - то есть в конфликтах. Переписка сама по себе конфликтов не добавляет, но если на сайте уже есть ошибки - то и она сама будет некорректно работать.

У вас как раз проблема со скриптами есть. Откройте фаербаг, закладка "Консоль" - обновите главную страницу и увидите, что ругается поиск по городу - /core/ajax/citysearch.php. Не знаю как оно у вас подключается, но работает некорректно и ломает другие скрипты.

Ну а так как этот поиск по городу подключается на каждой странице (я немного погулял по сайту), то со всех страниц переписка не открывается.

Решение простое - убрать поиск по городам(либо починить, чтобы не конфликтовал) и все будет работать.
platon 9 июня 2012 в 10:55 0
подскажите что где поправить нужно, понятия не имею что и где нужно исправить?
SJen 9 июня 2012 в 12:55 0
В личку написал подробно.

ну и могу для всех добавить

в шаблоне socium 3.0 есть проблемы с Перепиской - в шаблоне подключается несколько различных версий jquery, есть проблемы с подключением плагинов jquery, проблемы в модуле поиск пользователя. Из-за этого Переписка не может корректно работать - не работают плагины jquery, которые она использует.
Black-Raven90 9 июня 2012 в 13:27 0
Как раз использую версию 1.1 на шаблоне Socium 3.0 - проблем не замечено) Переписка используется активно. Кстати, а когда версия 1.2 выйдет?)
SJen 9 июня 2012 в 15:13 +1
супер))
ну значит дело может не совсем в шаблоне, а в конкретном сайте на этом шаблоне..

1.2 уже по функционалу полностью готова, но еще нужно некоторое время на подготовку
Алфей 13 июня 2012 в 11:34 0
А что уже Переписка v1.1 в работе? Я думал что еще не вышла она:((
platon 13 июня 2012 в 07:51 0
все исправил баг
Александр 15 июня 2012 в 19:07 0
Ну а все-таки как приобрести этот продукт?
Vyatich 11 июля 2012 в 23:02 0
Присоединяюсь. Хоть бы в магазин какой выкинули, а то разработчик пропал.
Patriot 12 июля 2012 в 09:07 0
Прежде чем писать такой лепет, Вы подумали?! А не приходила мысля такая, если автора нет, значит есть на то причины?! И еще, выкидывают кое где и кое что, а здесь люди живут с пониманием и уважением к друг другу.
Lobov 15 апреля 2013 в 15:22 0
купить как данную вещагу? написал производителю а толку ноль человек пропал!2 нидели нет на сайте я так понимаю часто пропадает
SEOrigin 16 апреля 2013 в 04:57 +2
Не покупайте её. Разработчик забил на поддержку, баги в существующих версиях не правит. ЗАкрытый код не позволяет самостоятельно исправить ошибки.
Shahin 19 января 2014 в 19:30 0
как быстро такие темы подыхают, демо сайты не работаю, и ссылки на скачку нет