Powered by CodeIgniter

Вызов хука

Помимо стандартных способов работы с хуками существует возможность бросить «ловушку» для вызова хука.
/** * Функция базового контроллера, отвечающая за вызов хука. * * @param string $class Класс. * @param string $method Метод. * @param string $class Суффикс. * @param array $args Аргументы. * @return void * */ function _hook($class,$method,$suffix,$args){ ... } // ------------------------------------------------------------------------ /* * Пример. * В любом месте любого контроллера бросаем "ловушку". */ ... $this->_hook("hkclass","hkmethod","hksuffix",array($data)); ... /** * Вызовем хук из компонента mail. * /gears/mail/_hooks.php * * @param object $CI Сущность движка. * @param mixed $data Входные данные. * ... * @return void */ function mail_hkclass_hkmethod_hksuffix($CI,$data){ ... } // ------------------------------------------------------------------------ /* * Пример. * Изменим параметр, передаваемый хуку. * В любом месте любого контроллера бросаем ловушку. */ ... $data = $this->_hook("hkclass","hkmethod","hksuffix",array($data)); ... /** * Вызовем хук из компонента mail. * Вернем измененный параметр. * /gears/mail/_hooks.php * * @param object $CI Сущность движка. * @param mixed $data Входные данные. * ... * @return void */ function mail_hkclass_hkmethod_hksuffix($CI,$data){ ... return $data; } // ------------------------------------------------------------------------ С ловушками в моделях все аналогично. Только не забывайте "_" на конце названия функции хука, чтобы указать принадлежность хука к «модельным».