Страница 1 из 1

Как конвертировать хук в расширение

Добавлено: 01.11.2014 14:22
c61
Здесь чато задают вопросы: будут ли работать хуки от версии 3.0 на 3.1 ? Нет, не будут. Но их можно преобразовать в расширение. Для начала изучаем тему Расширения - это просто!. Затем Как конвертировать мод в расширение. Приступаем (далее - на примере простенького hook_brquotes, см. Пустые строки в цитатах и портированного [BETA] brquotes: удаление пустых строк до/после цитат).

Последовательность действий с файлом хука v.3.0.x:
  • создать дерево каталогов своего расширения, переименовать файл хука в listener.php и положить в /event
  • убрать в файле всё, кроме самого хука, если есть define - перенести их в начало файла, добавить public перед function обработки события, остальные - private и изменить их вызов на $this->(функция)
  • добавить обвязку event listener, специфичную для phpBB 3.1
  • удалить global $auth, $template, $user и др.
  • заменить $auth на $this->auth, $user а $this->user и т.д.
  • заменить$template->_rootref и $template->_tpldata на $rootref и $tpldata соответственно
  • в начале процедуры, где использовались $template->_rootref и $template->_tpldata добавить:

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

    		global $phpbb_container;
    
    		$context = $phpbb_container->get('template_context');
    		$rootref = &$context->get_root_ref();
    		$tpldata = &$context->get_data_ref();
  • можно использовать файлы данного расширения brquotes - [BETA] brquotes: удаление пустых строк до/после цитат - для создания своего, заменив везде c61/brquotes на свои данные...
Разумеется, затем придется немного поотлаживаться. Для brquotes весь процесс занял у меня около 30 минут. Можно скачать хук и расширение и найти отличия.

Успешного портирования ! ))