Т.к. разработчики не позаботились о возможности создания плагинов для этого компонента. На досуге реализовал такую возможность.
Для обработки доступны следующие события:
* onAfterItemSavefunction onAfterItemSave(&$item, $isNew)
{
global $mainframe;
// Code
return true;
* onAfterItemRemovefunction onAfterItemRemove( &$item)
{
global $mainframe;
// Code
return true;
}
В файле установки обязательно группу указываем
zoo - group="zoo".
Для того, чтобы плагины работали немного нужно залезть в ядро компонента. Сложного ничего нет, только и требуется то скопировать и вставить.
Для работы события
onAfterItemSave необходимо добавить следующий код в файлы
item.php (/site/administrator/components/com_zoo/controllers/) и
submission.php (/site/components/com_zoo/controllers/) в функцию
save() перед $this->setRedirect($link, $msg):
JPluginHelper::importPlugin('zoo');
$dispatcher =& JDispatcher::getInstance();
if ($cid || (int) $this->item->id) {
$isNew = '0';
} else {
$isNew = '1';
}
$dispatcher->trigger( 'onAfterItemSave', array(&$item, $isNew) );
Для работы события
оnAfterItemRemove необходимо добавить следующий код в файлы
item.php (/site/administrator/components/com_zoo/controllers/) и
submission.php (/site/components/com_zoo/controllers/) в функцию
remove(). Тут посложнее, находим
// delete items
foreach ($cid as $id) {
$table->delete($table->get($id));
}
Внутрь foreach, перед $table->delete($table->get($id)) вставляем - $item = $table->get($id), а после $table->delete($table->get($id)) - код ниже, а для submission.php - только вставляем ниже приведенный код после $table->delete($item) :
JPluginHelper::importPlugin('zoo');
$dispatcher =& JDispatcher::getInstance();
$dispatcher->trigger( 'onAfterItemRemove', array(&$item) );
На этом все.
Оригинал статьи можете почитать на моем сайте, там же можете скачать первую
пару плагинов для Yootheme Zoo, которые написаны по данной методике: плагин для пинга (думаю, будет полезен всем) и плагин для публикации в ленте активности JomSocial.