[BS] Conversation Message Alert

[BS] Conversation Message Alert 1.0.1a

Нет прав для скачивания
  • Автор темы unconfirmed
  • Дата начала
U

unconfirmed

BINGO_SHARK добавил(а) новый ресурс:

[BS] Conversation Message Alert - Уведомления о новых сообщениях в переписке.

.плагин позволяет добавить на форум уведомления о новых сообщениях в переписках без обновления страницы

Настройки:
  • Интервал обновлений
  • Звуковое уведомление
  • Отображение сообщения в pop-up окне
  • Мигающий заголовок

Узнать больше об этом ресурсе...
 
Было бы прекрасно увидеть такой аддон для второй ветки :)
 
Любой каприз, как желание и возможность у автора появится.
 
Настало время критики.
1. Я бы закрыл доступ от незарегистрированных, проверив userId
5f89edec9d4d70b275cc.png

2. Что насчет csrf token? Я думаю, нужно сделать проверку на валидность токена.
3. А что если у юзера 0 conversations_unread? Смысл тогда делать запрос к базе?
4. Еще хотелось бы узнать смысл конструкций "начало-конец транзакции" (не разбираюсь в этом, поэтому и спрашиваю)
f9f6575148c0c6cdd3be.png


5. Насчет вывода сообщений. Я бы убрал обработку сообщений из ControllerPublic, классу XenForo_Template_Helper_Core там не место, я бы поместил обработку в ViewPublic примерно следующим образом:
PHP:
$output['templateHtml'] = $this->createTemplateObject(
            'bs_conversation_alert_messages',
            $this->_params
        );
return XenForo_ViewRenderer_Json::jsonEncodeForOutput($output);

bs_conversation_alert_messages - шаблон в админке. Это позволит нам кастомизировать стиль уведомлений через шаблоны в админке
 
Последнее редактирование:
.критиковать нужно, когда понимаешь, что и как работает.

1. У контроллера переписок есть метод preDispatch, который не позволяет зайти туда не авторизованным пользователям.
2. На какую нахер валидность? Какую нахер проверку?
3. Начнем с того, что чтобы узнать сколько у пользователя непрочитанных сообщений, нужно сделать запрос в базу. А мой запрос получает непрочитанные сообщения, о которых не уведомлен пользователь.
4. Движок смотреть нужно.
5. Я посчитал нужным сделать это там, где я это сделал. И я не посчитал нужным делать шаблон для уведомления, т.к. туда выводится только нужная информация.
 
1. У контроллера переписок есть метод preDispatch, который не позволяет зайти туда не авторизованным пользователям.
Окей, согласен

2. На какую нахер валидность? Какую нахер проверку?
Вот такую
PHP:
$this->_checkCsrfFromToken($this->_input->filterSingle('_xfToken', XenForo_Input::STRING));
3. Начнем с того, что чтобы узнать сколько у пользователя непрочитанных сообщений, нужно сделать запрос в базу
Посмотри, как работает класс XenForo_Visitor и поймешь, что запрос к базе делается один раз при первом setup.


Я посчитал нужным сделать это там, где я это сделал
Это не аргумент
И я не посчитал нужным делать шаблон для уведомления, т.к. туда выводится только нужная информация.
А вот юзеру надо вывести дату и время полученного сообщения, ему лезть на фтп?

Еще не понятно, зачем тянуть лишнюю библиотеку для вывода уведомлений, ведь в движке есть объявления, там вполне хорошо работает, оттуда можно стянуть
 
.эта проверка есть по дефолту, блеать.

Запрос в базу делается каждый раз при Ajax-запросе.

Это охуеть, какой аргумент. Напиши свой аддон и делай вывод там так, как тебе хочется.

Дата и время не передается вообще. Таков функционал дополнения.

Затем, что мне она показалась симпатичнее и удобнее для моих целей.

Изучай движок, а потом говори, как писать другим людям.
 
Ошибка при установке на 1.5.16
Код:
Mysqli prepare error: Unknown column 'message.user_alerted' in 'where clause'

Информация об ошибке Zend_Db_Statement_Mysqli_Exception: Mysqli prepare error: Unknown column 'message.user_alerted' in 'where clause' - library/Zend/Db/Statement/Mysqli.php:77

Сгенерирована пользователем: Неизвестная учётная запись, минуту назад

Трассировка стэка #0 /htdocs/forum/library/Zend/Db/Statement.php(115): Zend_Db_Statement_Mysqli->_prepare('\r\n            S...')
#1 /htdocs/forum/library/Zend/Db/Adapter/Mysqli.php(381): Zend_Db_Statement->__construct(Object(Zend_Db_Adapter_Mysqli), '\r\n            S...')
#2 /htdocs/forum/library/Zend/Db/Adapter/Abstract.php(478): Zend_Db_Adapter_Mysqli->prepare('\r\n            S...')
#3 /htdocs/forum/library/XenForo/Model.php(219): Zend_Db_Adapter_Abstract->query('\r\n            S...', 0, 2)
#4 /htdocs/forum/library/BS/CMA/Model/CMA.php(22): XenForo_Model->fetchAllKeyed('\r\n            S...', 'message_id', 0)
#5 /htdocs/forum/library/BS/CMA/ControllerPublic/CMA.php(14): BS_CMA_Model_CMA->getUnreadMessagesByUserId(0)
#6 /htdocs/forum/library/XenForo/FrontController.php(369): BS_CMA_ControllerPublic_CMA->actionUpdate()
#7 /htdocs/forum/library/XenForo/FrontController.php(152): XenForo_FrontController->dispatch(Object(XenForo_RouteMatch))
#8 /htdocs/forum/index.php(13): XenForo_FrontController->run()
#9 {main}

Содержимое запроса array(3) {
["url"] => string(30) "http://site/cma/"
["_GET"] => array(0) {
}
["_POST"] => array(3) {
["_xfRequestUri"] => string(14) "/threads/7089/"
["_xfNoRedirect"] => string(1) "1"
["_xfResponseType"] => string(4) "json"
}
}
 
Последнее редактирование модератором:
Ошибка при получении нового сообщения
Код:
Информация об ошибке ErrorException: Fatal Error: Class name must be a valid object or a string - library/XenForo/BbCode/Formatter/Base.php:1955
Сгенерирована пользователем: *** 2 мин. назад
Трассировка стэка #0 [internal function]: XenForo_Application::handleFatalError()
#1 {main}
Содержимое запроса array(3) {
["url"] => string(30) "http://site/cma/"
["_GET"] => array(0) {
}
["_POST"] => array(4) {
["_xfRequestUri"] => string(1) "/"
["_xfNoRedirect"] => string(1) "1"
["_xfToken"] => string(8) "********"
["_xfResponseType"] => string(4) "json"
}
}
2.png
 
подскажите пожалуйста, при попытки установить данное дополнение, установка не происходит а в админке появляются ошибка такая

Код:
ErrorException: Fatal Error: syntax error, unexpected '[' - library/BS/CMA/Installer.php:25
Сгенерирована пользователем: *** только что
Трассировка стэка #0 [internal function]: XenForo_Application::handleFatalError()
#1 {main}
Содержимое запроса array(3) {
["url"] => string(49) "http://**********/admin.php?add-ons/install"
["_GET"] => array(1) {
["add-ons/install"] => string(0) ""
}
["_POST"] => array(3) {
["server_file"] => string(0) ""
["_xfConfirm"] => string(1) "1"
["_xfToken"] => string(8) "********"
}
}

подскажите пожалуйста как ее решить? версия форума 1.5.15. заранее спасибо
 
Последнее редактирование модератором:
Возможно реализовать, чтобы пользователь сам у себя в профиле мог отключать или включать звуковое уведомления?
 
не знаю может у меня так только, но если я убираю галку с пункта отображать сообщении, то оповещение не работает
 
Есть переменная которая выводит само сообщение?
1526203186276.png
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу