Запуск на ранних версиях IPB 3

Чтобы заставить хук работать с IPB версий < 3.0.4 достаточно проделать следующее1:

  1. Открываем /admin/applications/forums/modules_admin/forums/forums.php
  2. Находим метод admin_forums_forums_moderator::modForm
  3. Если у него модификатор private заменяем на public
  4. Если получаем
    Fatal error: Access level to ....
    значит необходимо изменить в классе admin_forums_forums_moderator модификаторы всех полей и методов с модификатором private на protected.
  5. Открываем /admin/applications/forums/modules_public/moderate/moderate.php
  6. У всех полей и методов с модификатором private заменяем его на protected
  7. Заменяем в методе PinpostsForumsModerateModerateAction::_multiPostModify() (находиться в файле /hooks/PinpostsForumsModerateModerateAction_[много цифр].php) вызов метода
    $this->pids  = $this->_getIds('selectedpids', 'selectedpidsJS');
    на
    $this->pids  = $this->_getIds( 'selectedpids' );
  8. Открываем /admin/applications/forums/modules_public/forums/topics.php
  9. У всех полей и методов с модификатором private заменяем его на protected

Для версии 3.0.2 достаточно изменить /admin/applications/forums/modules_public/moderate/moderate.php и внести изменения в метод PinpostsForumsModerateModerateAction::_multiPostModify() (следующий пункт). Работающая с IPB 3.0.2 версия хука может быть найдена в этой теме2.


1 Я против такого подхода, не вижу причин использовать старые версии.

2 Все благодарности за адаптацию/сборку и за большую часть этих инструкций отправляем пользователю steroid