Как использовать события ZOO

Это короткий урок о том, как использовать систему событий ZOO.

Использование системы событий ZOO

События - это легкая возможность сторонним разработчикам внедряться в систему компонента ZOO. Для этого существует плагин ZOOevents, который покажет Вам, как регистрировать эти события. События - это неплохая концепция, чтобы прослеживать действия компонента ZOO и реагировать на эти действия. К таким действиям можно отнести, например, отображение материала и др. Вы можете отслеживать эти события и на основе них изменять вывод. Это очень похоже на систему плагинов Joomla. An action would be the rendering of an item e.g. You could listen to that event and eventually modify the output. This is much like Joomlas plugin system. Есть несколько предопределенных событий в ZOO, проверьте ZOO файл config.php, чтобы ознакомиться со всеми предопределенными событиями. Также посмотрите папку events в директории административной панели ZOO. Там есть примеры всех событий и их параметров. В основном, рабочий процесс выглядит так. Вы включаете ZOO файл config.php для загрузки в ZOO. Второй шаг - извлечение приложения ZOO. Затем вы сможете связаться с диспетчером событий ZOO через какой-либо обратный вызов PHP callback. // load ZOO config
require_once(JPATH_ADMINISTRATOR.'/components/com_zoo/config.php');
// Get the ZOO App instance
$zoo = App::getInstance('zoo'); //
register event
$zoo->event->dispatcher->connect('item:saved', array('MYCLASS', 'itemSaved'));
В этом примере мы регистрируем событие item:saved (сохранение материала). Как параметр, мы задаем обратный вызов MYCLASS::itemSaved. Этот вызов сработает, когда материал будет сохранен. class MYCLASS {
public function itemSaved($event) {
$item = $event->getSubject();
$new = $event['new'];
// do whatever you'd like to do
}
}
Так выглядит обратный вызов. Материал, который был только что сохранен, может быть возвращен с помощью функции событий getSubject. Также вы можете определять новый ли материал или был отредактирован с помощью проверки $event['new']. Событие element:beforedisplay - особый случай, потому что вы можете предотвратить отображение элемента с помощью изменения параметра $event['render'] на значение false. Вы можете реагировать на любое событие. Вам только нужно убедиться, что вы регистрируете нужное событие до его срабатывания.
Плагин ZOOevent - это системный плагин Joomla, который подгружается на каждо странице. Поэтому вы можете оперировать с ним, где Вам это необходимо.
  • Понедельник, 05 января 2015

Оставить комментарий

Вы комментируете как Гость.