Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

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

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 11 лет 3 месяца
Благодарил (а): 42 раза
Поблагодарили: 251 раз
Контактная информация:

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

Сообщение 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 минут. Можно скачать хук и расширение и найти отличия.

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

Вернуться в «Для разработчиков»