Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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);
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
 /**
  * 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);
 }
Example #6
0
 /**
  * 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);
 }
Example #7
0
 /**
  * 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);
 }
Example #8
0
 /**
  * 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);
         }
     }
 }
Example #9
0
 /**
  * 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');
 }