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

Удаление постов и force_delete_allowed

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Andex
phpBB 1.4.2
Сообщения: 59
Стаж: 17 лет 10 месяцев
Благодарил (а): 5 раз
Поблагодарили: 6 раз

Удаление постов и force_delete_allowed

Сообщение Andex »

Хочу давать определенным пользователям удалять посты (чужие) в определенной теме.
Допустим все необходимые проверки сделаны и вопрос остается в обработке данного случая.

Есть такая переменная force_delete_allowed (ивент core.viewtopic_modify_post_action_conditions в viewtopic.php)
После ее установки во viewtopic начинают отображаться ссылки/кнопки на удаление, ок.

Теперь дело за тем, чтобы обработать эту ситуацию в posting.php - тут появились вопросы.

Например, для аналогичной force_edit_allowed во viewtopic есть такая же переменная в ивенте core.posting_modify_cannot_edit_conditions в posting.php.

А как обработать удаление :?:

Как вижу, можно изменить $is_authed в ивенте core.modify_posting_auth (само собой, предварительно делаем нужные проверки)
Но далее это все заканчивается выполнением функции phpbb_handle_post_delete() из functions_posting.php, в которой опять происходит проверка прав и соответственно удаление не происходит, а влияния на эту ф-цию никакого нет, т.к. ивентов в ней нет.

В таком случае, непонятно, какой толк от force_delete_allowed вообще?
Или не туда смотрю? :?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Удаление постов и force_delete_allowed

Сообщение rxu »

Andex, видимо, так оно и есть. Данная фича не доделана. Создал тикет https://tracker.phpbb.com/browse/PHPBB3-15186
Попробуем исправить.

Отправлено спустя 1 час 1 минуту 49 секунд:
https://github.com/phpbb/phpbb/pull/4804
Изображение
Andex
phpBB 1.4.2
Сообщения: 59
Стаж: 17 лет 10 месяцев
Благодарил (а): 5 раз
Поблагодарили: 6 раз

Re: Удаление постов и force_delete_allowed

Сообщение Andex »

rxu, спасибо, попробуем проверить

Правильно ли я понял, что $is_authed нужно продолжать использовать?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Удаление постов и force_delete_allowed

Сообщение rxu »

Andex писал(а): $is_authed нужно продолжать использовать?
В зависимости от контекста решаемой задачи, если без этого никак - то надо.
Изображение
Andex
phpBB 1.4.2
Сообщения: 59
Стаж: 17 лет 10 месяцев
Благодарил (а): 5 раз
Поблагодарили: 6 раз

Re: Удаление постов и force_delete_allowed

Сообщение Andex »

rxu, ну, ее придется использовать в любом случае, т.к. если !$is_authed то до выполнения функции phpbb_handle_post_delete() дело просто не дойдет, а соответственно и до удаления поста.

Кроме того ,есть еще один нюанс, установив is_authed в true - все работает, но как раз перед ивентом modify_posting_auth, для режима soft_delete переменная mode сбрасывается в просто delete если нет соответствующих прав - т.е. был у нас режим soft_delete, стал delete. И, само собой, установка $is_authed не вернет soft_delete.
Что можно сделать в данном случае:
это внаглую изменить режим в этом же ивенте (modify_posting_auth), т.е. вернуть soft_delete, но там правда пишут, что Extensions should only change the error and is_authed variables.
или
в добавленном ивенте handle_post_delete_conditions изменить состояние флага is_soft предварительно проверив состояние request-переменных mode и delete_permanent
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Удаление постов и force_delete_allowed

Сообщение rxu »

Andex писал(а): 19.04.2017 21:23попробуем проверить
Удалось?
Изображение
Andex
phpBB 1.4.2
Сообщения: 59
Стаж: 17 лет 10 месяцев
Благодарил (а): 5 раз
Поблагодарили: 6 раз

Re: Удаление постов и force_delete_allowed

Сообщение Andex »

rxu, Да, вроде бы работает нормально, проблем не увидел. Но у меня пока нет массового использования расширения, которое использует новоиспеченный ивент, но похоже, что все ок, да и по логике все работает как надо. Если вдруг что вылезет - сообщу.

Спасибо!
Ответить

Вернуться в «Для разработчиков»