Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.

Разрешить юзерам удалять не только последнее сообщение

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
y7u8y7
phpBB 1.0.0
Сообщения: 2
Стаж: 19 лет 1 месяц

Разрешить юзерам удалять не только последнее сообщение

Сообщение y7u8y7 »

Как в теме, получить возможность, каждому участнику принявшему в ней участие, удалять все свои посты (не только последний, если никто еще не ответил, а все которые он постил)

Такую возможность специально закрывают (оставляют только на случай для своего последнего сообщения). Нужно преднамеренно где-то вручную открыть эту возможность для нужного форума, чтобы каждый мог выкусывать свои посты по всей длине обсуждаемой темы.

Помогите составить запрос, который модифицировал бы права для указанный id форумов, чтобы эти права там появились для всех категорий.

Alek$: Поменял название темы на более информативное
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 21 год 2 месяца
Откуда: Новосибирск
Поблагодарили: 37 раз

Сообщение Alek$ »

Я так понял, это надо для всех тем на всем форуме?
Только это не запрос, это файлы править надо.

Сейчас гляну.

Добавлено спустя 7 минут:

Попробуйте заменить в файле viewtopic.php

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

		if ( $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] && $forum_topic_data['topic_last_post_id'] == $postrow[$i]['post_id'] )
на

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

		if ( $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] )
и в файле posting.php

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

		else if ( !$post_data['last_post'] && !$is_auth['auth_mod'] && ( $mode == 'delete' || $delete ) )
на

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

		else if ( !$is_auth['auth_mod'] && ( $mode == 'delete' || $delete ) )
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
y7u8y7
phpBB 1.0.0
Сообщения: 2
Стаж: 19 лет 1 месяц

Сообщение y7u8y7 »

Перевая замена во viewtopic.php - такого нет в phpbb3. Вторую замену уже не смотрел.

Нашел вот что.

В массиве postrow для viewtopic.php

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

'U_DELETE'			=> (!$user->data['is_registered']) ? '' : ((($user->data['user_id'] == $poster_id && $auth->acl_get('f_delete', $forum_id) && $topic_data['topic_last_post_id'] == $row['post_id'] && ($row['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time'])) || $auth->acl_get('m_delete', $forum_id)) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=delete&f=$forum_id&p={$row['post_id']}") : ''),
вырезал

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

$topic_data['topic_last_post_id'] == $row['post_id'] && 
В posting.php в коде

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

if ($auth->acl_get('m_delete', $forum_id) || ($post_data['poster_id'] == $user->data['user_id'] && $user->data['is_registered'] && $auth->acl_get('f_delete', $forum_id) && $post_id == $post_data['topic_last_post_id']))
вырезал

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

 && $post_id == $post_data['topic_last_post_id']

Теперь проверки на последний пост топика нет.

Проблема в том, что мне надо не глобально, а для отдельных форумов. И еще такое редактирование кода тонкое дело, нужна не точеная правка кода, со всеми вытекающими, а редактирование первоисточника (константу) для topic_last_post_id (проверок еще с таким параметром много)

Хорошо бы сделать дополнительное правило в администрировании, а это уже отдельные поля в таблицах, да и не в одной (во всех правовых подстановочных). Короче морока.

Вернуться в «Запросы модов для phpBB 3.0.x»