/** * Placeholder for the configParams event * * @param AppEvent $event The event triggered */ public static function configParams($event) { $element = $event->getSubject(); // set events ReturnValue after modifying $params $params = $event->getReturnValue(); $event->setReturnValue($params); }
/** * Add extra layouts from modules and plugins * * @param AppEvent $event The event object */ public static function init($event) { $app = $event->getSubject(); $extensions = $event->getReturnValue(); // get modules foreach ($app->path->dirs('modules:') as $module) { if ($app->path->path("modules:{$module}/renderer")) { $name = ($xml = simplexml_load_file($app->path->path("modules:{$module}/{$module}.xml"))) && $xml->getName() == 'extension' ? (string) $xml->name : $module; $extensions[$name] = array('type' => 'modules', 'name' => $name, 'path' => $app->path->path("modules:{$module}")); } } // get plugins foreach ($app->path->dirs('plugins:') as $plugin_type) { foreach ($app->path->dirs('plugins:' . $plugin_type) as $plugin) { if ($app->path->path("plugins:{$plugin_type}/{$plugin}/renderer")) { $resource = "plugins:{$plugin_type}/{$plugin}/{$plugin}.xml"; $name = ($xml = simplexml_load_file($app->path->path($resource))) && $xml->getName() == 'extension' ? (string) $xml->name : $plugin; $name = rtrim($name, ' - ZOO'); $extensions[$name] = array('type' => 'plugin', 'name' => $name, 'path' => $app->path->path("plugins:{$plugin_type}/{$plugin}")); } } } $event->setReturnValue($extensions); }
/** * After adminmenu items added * @param AppEvent $event */ public static function addMenuItems($event) { $app = self::app(); $params = $event->getParameters(); $controller = $app->jbrequest->getCtrl(); if (strpos($controller, 'jb') === 0) { $params['tab']->setAttribute('data-href-replace', 'controller=' . $controller); } $event->setReturnValue($params); }
/** * Filters a value by calling all listeners of a given event. * * @param AppEvent $event A AppEvent instance * @param mixed $value The value to be filtered * * @return AppEvent The AppEvent instance * * @since 1.0.0 */ public function filter(AppEvent $event, $value) { foreach ($this->getListeners($event->getName()) as $listener) { $value = call_user_func_array($listener, array($event, $value)); } $event->setReturnValue($value); return $event; }
/** * Placeholder for the configParams event * * @param AppEvent $event The event triggered */ public static function configParams($event) { $application = $event->getSubject(); // set events ReturnValue after modifying $params $params = $event->getReturnValue(); $params[] = '<application><params group="application-config"><param name="test" type="text" size="3" default="15" label="Test Param" description="Test Param Description" /></params></application>'; $event->setReturnValue($params); }
/** * joomlaMenuItems * * @param AppEvent $event The event triggered */ public function joomlaMenuItems($event) { // set views $views = array(); $views[] = array('name' => 'cart', 'title' => 'ZOOcart Cart', 'path' => 'zoocart:views/site/cart/params.json'); $views[] = array('name' => 'orders', 'title' => 'ZOOcart Orders', 'path' => 'zoocart:views/site/orders/params.json'); $views[] = array('name' => 'addresses', 'title' => 'ZOOcart Addresses', 'path' => 'zoocart:views/site/addresses/params.json'); $views[] = array('name' => 'subscriptions', 'title' => 'ZOOcart Subscriptions', 'path' => 'zoocart:views/site/subscriptions/params.json'); // add to list $list = (array) $event->getReturnValue(); $list[] = array('name' => 'zoocart', 'views' => $views); // save $event->setReturnValue($list); }
/** * On after edit view display * @param AppEvent $event */ public static function afterEdit($event) { $params = $event->getParameters(); if (isset($params['html'][0])) { $element = $event->getSubject(); $find = 'element-' . $element->getElementType(); $params['html'][0] = JString::str_ireplace($find, $find . ' element-' . $element->identifier, $params['html'][0]); } $event->setReturnValue($params); }
/** * InitApp event handler - hack for custom JBZoo controllers * @param AppEvent $event */ public static function initApp($event) { $zoo = App::getInstance('zoo'); $params = $event->getParameters(); $curApp = $params['application']; $currentCtrl = strtolower($zoo->request->getCmd('controller')); $jbzooCtrls = array('autocomplete', 'basket', 'compare', 'favorite', 'payment', 'search', 'viewed'); if (empty($curApp) || $curApp->getGroup() != JBZOO_APP_GROUP && in_array($currentCtrl, $jbzooCtrls)) { $jbzooApp = $zoo->table->application->first(array('conditions' => array('application_group="' . JBZOO_APP_GROUP . '"'))); if ($jbzooApp) { $params['application'] = $jbzooApp; $event->setReturnValue($params); } } }
/** * Parse current url (usually) and fix some urls bugs (from classical Zoo) * @param AppEvent $event */ public function sefParseRoute($event) { $this->_jbdebug->mark('jbzoo-sef::sefParseRoute::start'); $params = $event->getParameters(); // parse category or item by priority order if ($this->_config->get('parse_priority', 'item') == 'category') { // try to find category if (empty($params['vars']) || isset($params['vars']['category_id']) && $params['vars']['category_id'] == 0) { $params = $this->_parseCategoryUrl($params); } // try to find item if (empty($params['vars']) || isset($params['vars']['item_id']) && $params['vars']['item_id'] == 0) { $params = $this->_parseItemUrl($params); } } else { // try to find item if (empty($params['vars']) || isset($params['vars']['item_id']) && $params['vars']['item_id'] == 0) { $params = $this->_parseItemUrl($params); } // try to find category if (empty($params['vars']) || isset($params['vars']['category_id']) && $params['vars']['category_id'] == 0) { $params = $this->_parseCategoryUrl($params); } } // feed if (empty($params['vars']) && $this->_config->get('fix_feed', 0)) { $params = $this->_parseFeedUrl($params); } // redirect to correct url if ($this->_config->get('redirect', 0)) { $this->_checkRedirect($params); } // set new params $event->setReturnValue($params); $this->_jbdebug->mark('jbzoo-sef::sefParseRoute::finish'); }