Ejemplo n.º 1
0
 public function getListeners()
 {
     $ret = array();
     foreach (Kwc_Abstract::getComponentClasses() as $class) {
         if (in_array('Kwc_Directories_List_Component', Kwc_Abstract::getParentClasses($class)) || in_array('Kwc_Directories_List_Trl_Component', Kwc_Abstract::getParentClasses($class))) {
             if (Kwc_Abstract::hasChildComponentClass($class, 'feed') && $this->_class == Kwc_Abstract::getChildComponentClass($class, 'feed')) {
                 $directoryClasses = call_user_func(array(strpos($class, '.') ? substr($class, 0, strpos($class, '.')) : $class, 'getItemDirectoryClasses'), $class);
                 foreach ($directoryClasses as $directoryClass) {
                     $ret[] = array('class' => $directoryClass, 'event' => 'Kwc_Directories_List_EventItemInserted', 'callback' => 'onDirectoryUpdate');
                     $ret[] = array('class' => $directoryClass, 'event' => 'Kwc_Directories_List_EventItemDeleted', 'callback' => 'onDirectoryUpdate');
                     $ret[] = array('class' => $directoryClass, 'event' => 'Kwc_Directories_List_EventItemUpdated', 'callback' => 'onDirectoryUpdate');
                     $ret[] = array('class' => $directoryClass, 'event' => 'Kwc_Directories_List_EventItemsUpdated', 'callback' => 'onDirectoryUpdate');
                 }
             }
         }
     }
     return $ret;
 }
Ejemplo n.º 2
0
 private function _fireTagEvent($event, $directory, $itemId = null)
 {
     $cacheId = 'kwc-dirlistview-isdata-' . $this->_class;
     $dirIs = Kwf_Cache_SimpleStatic::fetch($cacheId);
     if ($dirIs === false) {
         $dirIs = array('data' => false, 'string' => false);
         foreach (Kwc_Abstract::getComponentClasses() as $class) {
             if (in_array('Kwc_Directories_List_Component', Kwc_Abstract::getParentClasses($class)) || in_array('Kwc_Directories_List_Trl_Component', Kwc_Abstract::getParentClasses($class))) {
                 if (Kwc_Abstract::hasChildComponentClass($class, 'child', 'view') && $this->_class == Kwc_Abstract::getChildComponentClass($class, 'child', 'view')) {
                     $isData = call_user_func(array(strpos($class, '.') ? substr($class, 0, strpos($class, '.')) : $class, 'getItemDirectoryIsData'), $class);
                     if ($isData) {
                         $dirIs['data'] = true;
                     } else {
                         $dirIs['string'] = true;
                     }
                 }
             }
         }
         Kwf_Cache_SimpleStatic::add($cacheId, $dirIs);
     }
     $event = "Kwf_Component_Event_ComponentClass_Tag_{$event}";
     if ($itemId) {
         if ($dirIs['data']) {
             $this->fireEvent(new $event($this->_class, $directory->componentId, $itemId));
         }
         if ($dirIs['string']) {
             $this->fireEvent(new $event($this->_class, $directory->componentClass, $itemId));
         }
     } else {
         if ($dirIs['data']) {
             $this->fireEvent(new $event($this->_class, $directory->componentId));
         }
         if ($dirIs['string']) {
             $this->fireEvent(new $event($this->_class, $directory->componentClass));
         }
     }
 }