1 (edited by PunBB 2017.04.19 06:25)

Topic: Как обновить хуки расширения PunBB

Как работает система хуков?

В файле между кодом расположены хуки , то есть своего рода функция у которой есть свой собственный ID. К примеру:
($hook = get_hook('in_start')) ? eval($hook) : null;, это самый первый хук файла index.php
Единая функция загрузки хуков get_hook(), а его ID - 'in_start'.

При загрузке файла функция проверяет, есть ли в базе данных код какого либо расширения навешенный на этот ID, т.е 'in_start'. Если в каком либо расширении присутствует данный ID , то функция загружает код расширения, как будто он находится в самом файле.

Зачем обновлять хуки?

Код хуков хранится в базе данных. А также кешируется в файл папки /cache/
Затем все хуки расширений загружаются из этого файла.

Если вы отредактировали файл manifest.xml а затем сохранили его, не важно как, напрямую, или через файловый менеджер, необходимо еще обновить хуки.

Причем в исходном состоянии такой функции нет. Для того чтобы иметь такую возможность, достаточно установить официальное расширение Pun Admin Manage Extensions Improved. После его установки в разделе Расширения появятся еже пару пунктов.

Что происходит при обновлении хуков?

При нажатии на кнопку обновить хуки, новый код находящийся в файле manifest.xml обновляется в базе данных.

Когда нужно обновлять хуки?

Хуки необходимо обновлять лишь в том случае, когда был отредактирован именно файл manifest.xml, а не какой либо другой. После правки остальных подключаемых файлов, обновлять хуки не нужно.

2 (edited by PunBB 2017.04.19 07:08)

Re: Как обновить хуки расширения PunBB

Xakker, хотелось добавить, что хуки расширений от которых зависят других расширения, обновить будет невозможно, пока не будут отключены все те расширения от которого они зависят.


Примером тому офф расширение pun_bbcode невозможно будет обновить, пока не будут выключены такие расширения как Pan Smiles и другие зависимые от pun_bbcode расширения