Редактирование сообщений в отдельных разделах phpBB

Занимался тут с форум на движке phpBB, заметил что некоторые пользователи редактируют свои сообщения на рекламные. Так же было замечено что некоторые хотят изменить все свои сообщения на пустые.
В результате получается что темы теряют свою суть, а самое плохое что там могут быть рекламные ссылки.
Я установил «Ограничение времени на редактирование» в 1440 минут. Но в силу особенности phpBB, это ограничение встало на все разделы.
Позже возникла проблема что пользователи не могут редактировать сообщения и темы в торговых разделах. В таких разделах у меня стоит автоматическая чистка старых тем, а вот возможность изменять должна быть.
И так приступим, добавляем новое правило в таблицу phpbb_acl_options запросом:
INSERT INTO `phpbb_acl_options` (`auth_option`, `is_global`, `is_local`, `founder_only`) VALUES ('f_time_edit', '0', '1', '0');
Или открываем базу (например через Navicat) и добавляем туда значения.
Теперь необходимо добавить в файл языка перевод переменной f_time_edit.
Открываем файл language/ru/acp/permissions_phpbb.php
Найти строчку:
'acl_f_edit'		=> array('lang' => 'Может редактировать собственные сообщения', 'cat' => 'actions'),
Добавить после:
'acl_f_time_edit'	=> array('lang' => 'Может игнорировать ограничение времени на редактирование', 'cat' => 'actions'),

Отредактируем файл viewtopic.php
Найти строчку:
($row['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time'])
Заменить:
($row['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time'] || $auth->acl_get('f_time_edit', $forum_id))

Отредактируем файл posting.php
Найти строчку:
if (!($post_data['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time']))
Заменить:
if (!($post_data['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time'] || $auth->acl_get('f_time_edit', $forum_id)))

Далее очищаем кэш и переходим в «Форумные права групп», выбираем необходимую группу и раздел форума. В ролях выбираем «Действия» и разрешаем игнорировать время редактирования сообщения.

Так же эти права можно выставить отдельно для пользователя.
0.10
11.09.2013 14:11

0
network 16.05.2017 13:51 #
Сделал все, как написано выше. Строчка в ролях появилась. Поставил ей «Да» для нужного подфорума в новой группе. Добавил в эту группу пользователя, сделав ее основной. Однако кнопки «редактировать» (как у меня, модератор) у него так и не появилось. Кэш чистил. Более того, поставил «Да» и в «Может закрывать свои темы», однако эта функция тоже не появилась (имитировал права данного пользователя для проверки). Что я делаю не так?
0
Tommy 16.05.2017 18:33 #
У меня два предположение по этому поводу.
Первое, что статься писалась мною очень давно. И то что посмотрел что уже актуальная версия phpBB 3.2, а это было сделано под версию 3.0.Х какую-то.
Если не появилась функция «Может закрывать свои темы» но это мы модом не трогали, значит возможно где то проблема с правами на уровне выше.

А так я даже и не помню уже phpbb, ушел я как то от форумов года 2 назад.)
0
network 16.05.2017 19:24 #
Да у меня как раз версия форума 3.0.11. Полдня убил, функция «Может игнорировать ограничение времени на редактирование» появилась, я создал роль с ее активацией, сделал группу, где к определенному форуму добавил эти права, участника добавил в эту группу. Вроде все ОК, но он по-прежнему может редактировать свои сообщения лишь как задано в функции конференции. (((( Хз где копать, блин. Даже не знаю, понятно ли я изъясняюсь.
0
Tommy 16.05.2017 20:19 #
Так тогда давай я уточню. Функция «Может закрывать свои темы» работает?
Если же она тоже не работает, возможно неправильно настроены права, может быть что пользователю даны права, но глобальные права допустим группы или подраздела форума имеют больший вес.

Просто как ты написал в первом сообщение что эта функция не работает тоже, то тут дело не в модификации, а я думаю в правах. Возможно стоят еще какие то модификации.
В свое время я навозился с этим всем, когда одна модификация ломала другую…
0
network 17.05.2017 09:43 #
В том-то и дело, что «Может закрывать свои темы» то же не работает. Я ее и пробовал с той целью, чтобы выяснить причину. Зато вот роль, где запрещен доступ к определенным форумам работает. Про приоритет прав мысль понял, но хоть убей даже не соображу, где копать, т.к. не нашел ничего подобного. Ведь функция «Может игнорировать ограничение времени на редактирование» сама по себе должна делать игнорирование приоритетов вышестоящих прав. Модов, мешающих, тоже нет вроде. Форум сам forum.mobile-networks.ru
0
network 18.05.2017 10:05 #
В общем, прошелся снова по настройкам и все заработало. Не знаю, в чем был подвох. )) Однако убедился, что сабж рабочий и полезный.
0
Tommy 18.05.2017 14:58 #
Я рад. В общем возможно где то в настройках какой то параметр не включился в базе данных.