Отправка личных сообщений (Ajax)

+63
3.39K
Приветствую.

Выкладываю финальную версию плагина для отправки сообщений посредством аякса. Оформить это в формате плагина решил для того, чтобы максимально упростить его установку и в случае чего было бы так же просто его отключить.
Из особенностей могу выделить отправку сообщения через Enter либо Ctrl+Enter. Комбинацию выбирает сам пользователь и она запоминается для последующих сообщений (в cookies).


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

Скрин
Иллюстрация

Установка:

1. скачать архив
2. разложить файлы согласно инструкции в архиве
3. в файле templates/ВАШ_ШАБЛОН/components/com_users_profile.tpl заменить строку
  1. <td><a href="/users/{$usr.id}/sendmessage.html" title="{$LANG.WRITE_MESS}">{$LANG.WRITE_MESS}</a></td>
на
  1. <td><a id="messages" href="/users/{$usr.id}/sendmessage.html" title="{$LANG.WRITE_MESS}">{$LANG.WRITE_MESS}</a></td>
Добавится
  1. id="messages"
Делал для версии 1.9.

Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
+1
Jestik Jestik 12 лет назад #
Большой, огромный, жирный ПЛЮС!!! спасибо огромное!
0
Эдуард Машковский Эдуард Машковский 12 лет назад #
сделал ксс под себя и радуюсь))) вот: http:// www. achdo .ru
+4
SJen SJen 12 лет назад #
ок, просто отлично, что не возникло проблем с установкой)
+1
Эдуард Машковский Эдуард Машковский 12 лет назад #
я заметил что ты полностью cms на аякс перевести хочешь)
0
reload reload 12 лет назад #
а можно как то довентить чтоб по клику в переписке открывалось? а еще интересней в переписке добавить кнопочку "быстрый ответ")
0
SJen SJen 12 лет назад #
все это будет вот тут.

В мини версии наворотов не планирую.
0
nikitka nikitka 12 лет назад #
Хотелось бы еще чтобы окошко можно было двигать по экрану!Если можно-реализуй это! )
0
SJen SJen 12 лет назад #
окно модальное, то есть блокирует все остальное - есть смысл его двигать по экрану? - реализовать то просто, нужно еще один файлик подключить (jquery, для перетаскивания). Но могут быть конфликты с чем-нибудь.. Да и просто не вижу в такой реализации добавлять перетаскивание.

Тут же просто - открыл, отправил и оно закрылось. Зачем его перетаскивать куда-то?)
0
nikitka nikitka 12 лет назад #
Привычка )))
0
nikitka nikitka 12 лет назад #
От месенджеров различных осталась)
0
Майкл Майкл 12 лет назад #
Вот спасибо!!!!!
-4
Эдуард Машковский Эдуард Машковский 12 лет назад #
надо девушек в постель таскать, а не окошки) а на флеше можно было такую систему провернуть? красиво бы оформили...
0
SJen SJen 12 лет назад #
можно и на флэше. Но тут есть зависимость от версии флэша у посетителей. Да и на actionscript я бы писал это в несколько раз дольше. Нет резона.
0
Майкл Майкл 12 лет назад #
А звуковое оповещение есть?
0
Эдуард Машковский Эдуард Машковский 12 лет назад #
ты про систему сообщений или именно про этот плагин?
0
SJen SJen 12 лет назад #
какое звуковое оповещение может быть если тут сервис только для отправки?)
Звук того, что сообщение отправилось? - нет, такого нет

Повторюсь - получение сообщений, быстрый ответ и еще много всего будет в полной версии.
+3
Fuze Fuze 12 лет назад #
Код PHP:
	$to_id = $_POST['user_id'];

заменить на

Код PHP:
	$to_id = $inCore->request('user_id', 'int', 0);
0
SJen SJen 12 лет назад #
ок
0
Эдуард Машковский Эдуард Машковский 12 лет назад #
а почему заменить?
+1
SJen SJen 12 лет назад #
потому что нужно осуществить контроль входных данных
0
SJen SJen 12 лет назад #
хотя в данном случае я не могу придумать примера, чтобы можно было что-то испортить, подменив данные:)
Замечание скорее на будущее
+1
Fuze Fuze 12 лет назад #
хотя в данном случае я не могу придумать примера, чтобы можно было что-то испортить, подменив данные:)
принцип такой: никому не верю и все проверяю всегда, даже если уверены в отсутствии потенциальной уязвимости. кстати sql inj тут явная.
+3
SJen SJen 12 лет назад #
согласен, все верно - контроль данных должен быть. Файлы перезалил.
-2
letsgo letsgo 12 лет назад #
Я что то подумал, что конечная версия) Думаю да что ж такое то) Буду ждать платную версию)
0
Def Def 12 лет назад #
тогда сразу и здесь /users/1/messages.html заменить на новую ссылку)
+1
Def Def 12 лет назад #
перевести бы еще на аякс приглашение в друзья и вступление в группы)
+1
Ne OS Ne OS 12 лет назад #
SJen

+

[/b]! Устанавливать не буду... жду платной и полной версии! Надеюсь цена не будет кусать кошелек...))
0
Black-Raven90 Black-Raven90 12 лет назад #
Отличный плагин +
Как раз его не хватало) А зачем в личных сообщениях кнопки "спойлер" и "скрытый текст"? Что можно в ЛС скрывать...
0
vitalson9 vitalson9 12 лет назад #
Вот тут /p_send_simple_message/ajax/sendform.php уберите вот эти строчки
Код PHP:
<a title="Вставить скрытый текст" href="javascript:addTag('content', '
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
')" class="usr_bb_button"> <img border="0" alt="Вставить скрытый текст" src="/includes/bbcode/images/hide.png"> </a> <a title="Вставить спойлер" href="javascript:addTag('content', '[spoiler=Спойлер]', '[/spoiler]')" class="usr_bb_button"> <img border="0" alt="Вставить спойлер" src="/includes/bbcode/images/spoiler.png"> </a>
и будет вам счастье)))))
0
Настёна Настёна 12 лет назад #
Спасибо за отличный плагин! Вот такой вопрос: у меня смайлы заменены полностью, и в аякс окне он не выводятся, так как там прописаны у вас стандартные, как прописать именно мои смайлы? Один смайл совпал по имени, выводится, но в сообщение его вставить не могу.
0
Настёна Настёна 12 лет назад #
Нашла в каком файле это все прописать, но можно сделать это проще? уж очень много у меня смайлов...
+1
Александр Александр 12 лет назад #
спасибо, с утра настроение поднял, посмеялся )))
без обид.
удачи в освоении языков программирования)
много букафф, модно сделать в раз 10 короче и быстрее, но даже не в этом дело. так писать код не есть хорошо, каждая строчка - произведение искусства)
PS: если что, могу проконсультировать.
0
SJen SJen 12 лет назад #
я не гордый, написал в личку)
0
SJen SJen 12 лет назад #
только вот про "в 10 раз короче" не верю. Про быстрее вполне, вариант рабочий, но очень простой
+1
Роман Роман 12 лет назад #
сделайте аналог этого плагина по всем правилам (с коментами)и опубликуйте. Начинающие посмотрят как надо писать правильно. Если не трудно конечно. Может кому-то пригодится :))
+2
SJen SJen 12 лет назад #
Учитывая, что к коду были замечания от Fuze и Александра я бы не превращал плагин в пример для обучения новичков:)

Это простая рабочая версия отправки сообщений(работает без глюков, багов, без уязвимостей), которая будет полезна некоторым пользователям. Но на эталон написания плагина не тянет) А пример для новичков же уже есть в движке.
0
vitalson9 vitalson9 12 лет назад #
кстати глюк не большой есть когда появляется надпись сообщение отправлино то остаётся верх от основной формы
0
SJen SJen 12 лет назад #
это не глюк, так сделано.
Глюк - это когда не работает то, что должно работать или работает не так, как должно) А в данном случае все задумано именно так - может не совсем красиво, но я прописал именно так.
0
stasis stasis 12 лет назад #

+

на 1.9 работает...

СПАСИБО!

0
vitalson9 vitalson9 12 лет назад #
а возможно добавить добавление фото?
0
SJen SJen 12 лет назад #
да, вполне
но тут просто подредактировав код не получится (так, как вы убрали спойлер)
0
vitalson9 vitalson9 12 лет назад #
но спойлер то тут точно не к чему и скрытие текста тоже вот я и убрал
0
SJen SJen 12 лет назад #
а спойлер то почему не нравится? - ну если я отправляю кому-то огромный кусок текста. Почему бы его не заспойлить для удобства восприятия. Тем более если в сообщении два-три таких куска (или большая картинка)
+1
Эдуард Машковский Эдуард Машковский 12 лет назад #
не слушай vitalson9. Фотки подгружать было бы неплохо.
0
vitalson9 vitalson9 12 лет назад #
в смысле не слушай я только за
+2
SJen SJen 12 лет назад #
"не слушай" - это видимо про убрать спойлер.
Фотки, нужно - добавлю позже. Сейчас вся работа идет над полной версией)
0
Mazhara1986 Mazhara1986 12 лет назад #
Полная версия будет в одной инсталяшке?
+2
SJen SJen 12 лет назад #
Не совсем понял вопроса. Полная версия будет, скорей всего, тоже в виде плагина. И для установки потребуется внести самые минимальные изменения в код шаблона.
0
VonKruger VonKruger 12 лет назад #
SJen, спасибо огромное. Очень удобные и хорошие разработки.
0
mrDON mrDON 12 лет назад #
А когда приблезительно ждать полной версии?
0
SJen SJen 12 лет назад #
На этой неделе выложу полную, планирую до 23 марта закончить.
0
mrDON mrDON 12 лет назад #
видимо планы поменялись))))
-1
letsgo letsgo 12 лет назад #
Нда тоже ожидаю сильно.
-3
Алексей Т Алексей Т 12 лет назад #
а у меня слетели табы в профиле
0
Артемий Б Артемий Б 11 лет назад #
Нашли решение?
0
d0th d0th 11 лет назад #
что нужно изменить чтобы эта фишка работала на 1.8?
+1
SJen SJen 11 лет назад #
обновите два файла отсюда.
Проверил, будет работать.

После обновления файлов переустановите плагин
0
d0th d0th 11 лет назад #
Cпасибо!
0
lezginka.ru lezginka.ru 11 лет назад #
не мог найти в плагине "Отправить группе" и "Отправить всем" ?
0
SJen SJen 11 лет назад #
да, эту штуку в плагине действительно не получится найти)
Я сейчас добавил это в большую "систему переписки", а тут еще нет такой возможности.
0
Артемий Б Артемий Б 11 лет назад #
SJen, как быть с табами в Профиле?
BilarИuss выше уже говорил об этом...
0
Агроном Агроном 11 лет назад #
Похоже только у меня все сообщения отправленные через этот плагин админу приходят( Может кто столкнулся с подобным. Версия 1.9, кому бы пользователи не писали все приходит администратору.
0
fgvyguyu fgvyguyu 11 лет назад #
Сколько ни пытался не работает(

Еще от автора

Обновление компонента "Мне нравится"
Приветствую. Закончил версию с исправлением ошибок и багов, всем пользователям обновление выслано на электронку.
Обновление компонента  "Каталог дополнений в админку"
Приветствую. Обновление самого популярного аддона из официального каталога дополнений.
Обновленный парсер Яндекс.Карт
Приветствую Изменения довольно значительны, поэтому имеет смысл оформить их отдельным постом.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.