Ejemplo n.º 1
0
 private static function _getSubscribersFromComponent($componentClass)
 {
     $subscribers = array();
     $eventsClass = Kwc_Admin::getComponentClass($componentClass, 'Events');
     $subscribers[] = Kwf_Component_Abstract_Events::getInstance($eventsClass, array('componentClass' => $componentClass));
     foreach (Kwc_Abstract::getSetting($componentClass, 'generators') as $generatorKey => $null) {
         $generator = current(Kwf_Component_Generator_Abstract::getInstances($componentClass, array('generator' => $generatorKey)));
         $eventsClass = $generator->getEventsClass();
         if ($eventsClass) {
             $subscribers[] = Kwf_Component_Generator_Events::getInstance($eventsClass, array('componentClass' => $componentClass, 'generatorKey' => $generatorKey));
         }
     }
     if (Kwc_Abstract::hasSetting($componentClass, 'menuConfig')) {
         $mc = Kwf_Component_Abstract_MenuConfig_Abstract::getInstance($componentClass);
         $eventsClass = $mc->getEventsClass();
         if ($eventsClass) {
             $subscribers[] = Kwf_Component_Abstract_MenuConfig_Events::getInstance($eventsClass, array('componentClass' => $componentClass));
         }
     }
     return $subscribers;
 }
Ejemplo n.º 2
0
 /**
  * Lädt Resourcen die von Komponenten kommen.
  * Muss extra aufgerufen werden wenn diese Resourcen benötigt werden, aus
  * performance gründen
  */
 public function loadKwcResources()
 {
     if (!Kwf_Registry::get('db')) {
         return;
     }
     //if we don't have a db configured yet skip kwc resources. required to be able to build assets without db
     if ($this->_kwcResourcesLoaded) {
         return;
     }
     $this->_kwcResourcesLoaded = true;
     $t = microtime(true);
     $menuConfigs = array();
     foreach (Kwc_Abstract::getComponentClasses() as $c) {
         if (Kwc_Abstract::getFlag($c, 'hasResources')) {
             Kwc_Admin::getInstance($c)->addResources($this);
         }
         if (Kwc_Abstract::hasSetting($c, 'menuConfig') && Kwc_Abstract::getSetting($c, 'menuConfig')) {
             $menuConfigs[] = Kwf_Component_Abstract_MenuConfig_Abstract::getInstance($c);
         }
     }
     usort($menuConfigs, array(get_class($this), '_compareMenuConfig'));
     foreach ($menuConfigs as $cfg) {
         $cfg->addResources($this);
     }
     Kwf_Benchmark::subCheckpoint('kwc resources', microtime(true) - $t);
 }