Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[3.2][3.3] Best Answer

Поддержка расширений, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с расширениями для phpBB, кроме относящихся к форуму Для авторов.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

[3.2][3.3] Best Answer

Сообщение ReXtor »

Название расширения: Best Answer
Автор: Kailey
Описание расширения: Расширение позволяет пользователям отмечать сообщение как "Лучший ответ", который будет процитирован в первом сообщении со ссылкой на него.
Функционал:
  • Пользователи могут отмечать сообщение как "Лучший ответ"
  • Ответ цитируется в первом сообщении со ссылкой на исходное сообщение (помеченное как лучший ответ)
  • Включается для каждого форума отдельно
  • Имеются пользовательские и модераторские разрешения
  • Сообщение с ответом выделено для отличия
  • Количество тем, на которые даны ответы отображается в мини-профиле
Скачать: https://www.phpbb.com/customise/db/exte ... st_answer/
Язык: EN, RU (тут)
Совместимость: на 3.3.8 - работает (почти)
Путь установки 
kinerity\bestanswer
Последний раз редактировалось ReXtor 19.02.2023 12:45, всего редактировалось 4 раза.
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Best Answer

Сообщение ReXtor »

Замечена некоторая проблема с данным расширением:
  1. user1 включает уведомления расширения по электронной почте в UCP
  2. user1 оставляет ответ в теме
  3. user2 отмечает ответ user1
    (уведомление отправляется на электронную почту)
  4. user2 отменяет отметку с ответа user1
    (уведомление отправляется на электронную почту)
  5. user2 снова отмечает ответ user1
    (возникает ошибка, уведомление НЕ отправляется на электронную почту)
Текст ошибки 

Код: Выделить всё

SQL ERROR [ mysqli ]

Duplicate entry '40-402-402-2' for key 'PRIMARY' [1062]

SQL

INSERT INTO phpbb_notification_emails (item_id, notification_type_id, item_parent_id, user_id) VALUES (402, 40, 402, 2)

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 1023
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 202
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 682
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 393
CALL: phpbb\db\driver\driver->sql_multi_insert()

FILE: [ROOT]/phpbb/db/sql_insert_buffer.php
LINE: 138
CALL: phpbb\db\driver\factory->sql_multi_insert()

FILE: [ROOT]/phpbb/notification/method/email.php
LINE: 118
CALL: phpbb\db\sql_insert_buffer->flush()

FILE: [ROOT]/phpbb/notification/manager.php
LINE: 430
CALL: phpbb\notification\method\email->notify()

FILE: [ROOT]/phpbb/notification/manager.php
LINE: 322
CALL: phpbb\notification\manager->add_notifications_for_users()

FILE: [ROOT]/ext/kinerity/bestanswer/controller/main_controller.php
LINE: 154
CALL: phpbb\notification\manager->add_notifications()

FILE: [ROOT]/vendor/symfony/http-kernel/HttpKernel.php
LINE: 151
CALL: kinerity\bestanswer\controller\main_controller->change_post_status()

FILE: [ROOT]/vendor/symfony/http-kernel/HttpKernel.php
LINE: 68
CALL: Symfony\Component\HttpKernel\HttpKernel->handleRaw()

FILE: [ROOT]/app.php
LINE: 35
CALL: Symfony\Component\HttpKernel\HttpKernel->handle()
В то же время отметка фактически ставится на сообщение.
Кроме того, если теперь сделать попытку снять пометку, возникнет еще одна ошибка, и письмо также не отправится (но отметка фактически снимется).

Если отключить уведомления по электронной почте по этим событиям - все работает нормально.

Как это исправить?
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: [3.2][3.3] Best Answer

Сообщение rxu »

ReXtor писал(а): 19.02.2023 12:26 Как это исправить?
Боюсь, что никак. В коде расширения предусмотрено удаление старых уведомлений, но в методе notification.method.email такой функции, насколько я понимаю, нет.
Изображение
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Best Answer

Сообщение ReXtor »

rxu писал(а): 19.02.2023 13:04Боюсь, что никак.
Вот подстава. Не понимаю как разработчик расширения мог допустить такое. А ведь оно внесено в базу расширений. Но такой косяк ставит крест на его использовании. Лично я не хочу видеть (или получать от пользователей) сообщение об ошибке при осуществлении вышеописанного сценария действий.

Ну либо выпилить из него уведомления по email, хах.
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: [3.2][3.3] Best Answer

Сообщение rxu »

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

Отправлено спустя 5 минут 30 секунд:
Надо, кстати, посмотреть, как это в расширении спасибок работает. Никогда не задумывался.
Изображение
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Best Answer

Сообщение ReXtor »

rxu писал(а): 19.02.2023 17:23 если вообще не отправлять повторные уведомления на почту.
Или вообще не отправлять их на почту. Правда я не вижу чтобы можно было по-быстрому убрать уведомления на почту, но оставить при этом локальные.
rxu писал(а): 19.02.2023 17:23 как это в расширении спасибок работает
В gfksx/thanksforposts при передергивании туда-сюда вроде все нормально. Правда почему-то на почту уведомления об этом вообще не приходят (в настройках включены конечно же), только локальные. Может оно "специально" не работает, гхм... При этом файл шаблона в ru/email только один. Дважды гхм...
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: [3.2][3.3] Best Answer

Сообщение rxu »

Шаблон один, но при повторном лайке, по аналогии с данным расширением, должна возникать ошибка.
ReXtor писал(а): 19.02.2023 18:02 на почту уведомления об этом вообще не приходят
Не в курсе, у меня приходили :) Правда, давно отключил.
Изображение
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Best Answer

Сообщение ReXtor »

rxu писал(а): 19.02.2023 18:17 Не в курсе, у меня приходили
Может там какая-то очередь с задержкой формируется? Я включил уведомления на почту в UCP, другим аккаунтом "лайкнул" сообщение первого. Подождал минуту. В почте пусто, локально есть. Снял лайк, опять подождал. В почте по прежнему пусто, локально есть. Ну и еще несколько кругов прошел. В любом случае, раз оно в ошибку не вываливается, то наверное как-то можно такое же сделать и в "Best Answer" этом бедном, хмм...

Отправлено спустя 9 минут 20 секунд:
Тьпу, попробовал еще раз - письмо пришло. Странно. Удалил спасибку - тоже письмо пришло. Сделал второй круг - писем нет. Ага. Значит повторно не шлет. Как и локальные уведомления тоже, если предыдущие не были прочитаны. Если прочитать а потом еще раз поставить спасибку и убрать - то будут повторные локальные. Замечательно :)
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: [3.2][3.3] Best Answer

Сообщение rxu »

ReXtor писал(а): 19.02.2023 18:36 Может там какая-то очередь с задержкой формируется?
Смотрите размер почтового пакета в настройках почты в адмиразделе.
Изображение
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Best Answer

Сообщение ReXtor »

rxu писал(а): 19.02.2023 18:46 размер почтового пакета в настройках почты в адмиразделе
"0" стоит у меня. Да и тогда бы все другие уведомления на почту тоже через эту очередь шли. Я сегодня весь день тестил всякие уведомления, но с неотправлением впервые с расширением спасибок столкнулся. Хотя есть подозрение, что я лайкнул сообщение, которое уже когда-то давно лайкал, потому и не случилось письма, уахаха.

Ну попозже может еще потестирую. Если чего обнаружится в [3.2][3.3] Thanks for posts отпишу.

Надо подумать как из спасибок выдернуть нужное по поводу отправки уведомлений и запихать в Best Answer этот бедный. Еще б я что-то понимал в этом, хах...
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]

Вернуться в «Поддержка расширений для phpBB»