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

Автоматическая подписка на все форумы и темы конкретного пользователя

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
splinty
phpBB 1.4.2
Сообщения: 55
Стаж: 13 лет 11 месяцев
Благодарил (а): 15 раз

Автоматическая подписка на все форумы и темы конкретного пользователя

Сообщение splinty »

Благодарю всех, включая уважаемого Sheer, кто осознаёт, что ссылка на phhpguru в дистрибутиве phpbb означает определённые обязательства перед всем сообществом phpbb. Далее, делюсь опытом работающего на проме решения.

Задача автоматической подписки пользователя на все существующие Форумы и Темы (аналог ТП) решается, вероятнее всего, наилучшим образом (с минимальным внедрением в дистрибутив и рисками погибнуть под апдейтами) так:

Форумы

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

CREATE EVENT `Check forum subscription` ON SCHEDULE EVERY 5 MINUTE STARTS '2021-02-26 11:09:55' 
ON COMPLETION PRESERVE ENABLE DO
insert into phpbb_forums_watch (forum_id, user_id)
SELECT f.forum_id, u.user_id 
FROM phpbb_forums f, phpbb_users u
WHERE u.user_id in (2,55) and not exists (select 1 from phpbb_forums_watch fw where fw.user_id=u.user_id and fw.forum_id=f.forum_id)
Темы

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

CREATE EVENT `Check topic subscription` ON SCHEDULE EVERY 5 MINUTE STARTS '2021-02-26 16:29:32' 
ON COMPLETION PRESERVE ENABLE DO 
insert into phpbb_topics_watch (topic_id, user_id)
SELECT t.topic_id, u.user_id 
FROM phpbb_topics t, phpbb_users u
WHERE t.topic_status=0 and u.user_id in (2,55) and not exists (select 1 from phpbb_topics_watch tw where tw.user_id=u.user_id and tw.topic_id=t.topic_id)
Лично я пользуюсь phpMyAdmin. Хотя, понятное дело, можно и в командной строке это сделать.

PS Неясно, как это будет работать на хостингах. Тамошние админы могут оказаться фантазёрами.
С почтением, Саша.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Автоматическая подписка на все форумы и темы конкретного пользователя

Сообщение Sheer »

Не совсем так, вы не учитываете тип форума. Подписываться на форум-категорю смысла нет, поэтому

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

INSERT INTO phpbb_forums_watch (forum_id, user_id) SELECT f.forum_id, u.user_id FROM phpbb_forums f, phpbb_users u WHERE u.user_id in (2,55) AND NOT EXISTS
(SELECT 1 from phpbb_forums_watch fw where fw.user_id = u.user_id AND fw.forum_id = f.forum_id) AND f.forum_type <> 0
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 5 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз

Re: Автоматическая подписка на все форумы и темы конкретного пользователя

Сообщение Pazh »

splinty,
1. подписка на темы - лишнее, т.к. если подписан на подфорумы, то уведомления о темах приходят автоматически
2. добавление подфорумов на боевой конференции очень редкая процедура и делает ее обычно сам админ, следовательно может сам подписаться на новый подфорум.
3. исходя из п.1 и п.2 - дергать базу каждый 5 минут на проверку и создание новых подписок - не целесообразно, т.к. это условие сработает раз в год в лучшем случае.

Правильное решение для исключения ручного подписки админов на новые подфорумы и/или изменение состава админов - это расширение, которое будет проверять два события ядра и соответственно добавлять/удалять подписки - а) создание подфорума, б) наделения юзера правами админа (тут нужно решить какие права) или убирание у него этих прав
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
splinty
phpBB 1.4.2
Сообщения: 55
Стаж: 13 лет 11 месяцев
Благодарил (а): 15 раз

Re: Автоматическая подписка на все форумы и темы конкретного пользователя

Сообщение splinty »

Благодарю за пояснения. Очевидно, что моё решение касается моей узкой задачи.
Ваша постановка шире и универсальнее. Думаю, данной темы будет достаточно человеку, который столкнётся с этой задачей и посчитает нужным её развивать.
Честно говоря относительно подписки на темы внутри форума с подпиской я в своей практике не уловил такой связи. То есть задачей начал заниматься как раз по той причине, что мэйл по активностям пользователя (создание новой темы внутри форума, создание сообщения внутри ранее существовавшей темы) "то приходил, то не приходил". Вплоть до того, что накопившийся (видимо в таблице phpbb_notification_emails) мэйл отправлялся только после логина на форум Админа, а до логина находился в какой-то очереди.

Понаблюдаю сейчас, что получилось. Но, как писал выше, задача ставилась и именно по типу ТП: о любой активности пользователя на форуме немедленно оповещается Админ и Супермодератор. А их всего двое.
С почтением, Саша.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Автоматическая подписка на все форумы и темы конкретного пользователя

Сообщение Sheer »

splinty писал(а): 28.02.2021 9:44 о любой активности пользователя на форуме немедленно оповещается Админ и Супермодератор
Зачем? На то и щука в пруду админ на форуме, чтобы пасти без всяких оповещений. Я не подписан здесь нигде.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
splinty
phpBB 1.4.2
Сообщения: 55
Стаж: 13 лет 11 месяцев
Благодарил (а): 15 раз

Re: Автоматическая подписка на все форумы и темы конкретного пользователя

Сообщение splinty »

Дело в том, что вообщем движок phpbb и выверен неплохо и универсален и понятен среднестатистическому пользователю. Лично я для внутренних целей использую его для общения девелоперов с пользователями качестве ТП.
Согласен, что Админу тут надсущность и его не стоит трогать )) Но это ведь не меняет сути задачи: для конкретных user_id любой шорох пользователя на форуме должен быть оперативно доведён мэйлом в первую очередь.
Мне думается, что идеи в данной теме решают эту задачу.
С почтением, Саша.

Вернуться в «Поддержка phpBB 3.3.x»