Как в теме, получить возможность, каждому участнику принявшему в ней участие, удалять все свои посты (не только последний, если никто еще не ответил, а все которые он постил)
Такую возможность специально закрывают (оставляют только на случай для своего последнего сообщения). Нужно преднамеренно где-то вручную открыть эту возможность для нужного форума, чтобы каждый мог выкусывать свои посты по всей длине обсуждаемой темы.
Помогите составить запрос, который модифицировал бы права для указанный id форумов, чтобы эти права там появились для всех категорий.
Alek$: Поменял название темы на более информативное
Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.
Разрешить юзерам удалять не только последнее сообщение
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
y7u8y7
- phpBB 1.0.0
- Сообщения: 2
- Стаж: 19 лет 1 месяц
-
Alek$
- Former team member
- Сообщения: 2616
- Стаж: 21 год 2 месяца
- Откуда: Новосибирск
- Поблагодарили: 37 раз
Я так понял, это надо для всех тем на всем форуме?
Только это не запрос, это файлы править надо.
Сейчас гляну.
Добавлено спустя 7 минут:
Попробуйте заменить в файле viewtopic.php
на
и в файле posting.php
на
Только это не запрос, это файлы править надо.
Сейчас гляну.
Добавлено спустя 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'] )
Код: Выделить всё
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 или личке - на платной основе.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
-
y7u8y7
- phpBB 1.0.0
- Сообщения: 2
- Стаж: 19 лет 1 месяц
Перевая замена во viewtopic.php - такого нет в phpbb3. Вторую замену уже не смотрел.
Нашел вот что.
В массиве postrow для viewtopic.php
вырезал
В posting.php в коде
вырезал
Теперь проверки на последний пост топика нет.
Проблема в том, что мне надо не глобально, а для отдельных форумов. И еще такое редактирование кода тонкое дело, нужна не точеная правка кода, со всеми вытекающими, а редактирование первоисточника (константу) для topic_last_post_id (проверок еще с таким параметром много)
Хорошо бы сделать дополнительное правило в администрировании, а это уже отдельные поля в таблицах, да и не в одной (во всех правовых подстановочных). Короче морока.
Нашел вот что.
В массиве 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'] && Код: Выделить всё
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 (проверок еще с таким параметром много)
Хорошо бы сделать дополнительное правило в администрировании, а это уже отдельные поля в таблицах, да и не в одной (во всех правовых подстановочных). Короче морока.

