Esempio n. 1
0
 public function testGetComponentClassesByParentClass()
 {
     $c = 'Kwc_Chained_Trl_Component.Kwc_Basic_None_Component';
     $cls = Kwc_Abstract::getComponentClassesByParentClass($c);
     $this->assertEquals(array($c), $cls);
     $c = 'Kwc_Chained_Trl_Component.Kwc_Basic_None_Component';
     $cls = Kwc_Abstract::getComponentClassesByParentClass('Kwc_Chained_Trl_Component');
     $this->assertEquals(array($c), $cls);
 }
Esempio n. 2
0
 public function getListeners()
 {
     $ret = array();
     $ret[] = array('class' => null, 'event' => 'Kwf_Component_Event_Page_Added', 'callback' => 'onPageAddedRemoved');
     $ret[] = array('class' => null, 'event' => 'Kwf_Component_Event_Page_Removed', 'callback' => 'onPageAddedRemoved');
     foreach (Kwc_Abstract::getComponentClassesByParentClass('Kwc_Chained_Start_Component') as $c) {
         $ret[] = array('class' => $c, 'event' => 'Kwf_Component_Event_Component_Removed', 'callback' => 'onChainedStartAddedRemoved');
         $ret[] = array('class' => $c, 'event' => 'Kwf_Component_Event_Component_Added', 'callback' => 'onChainedStartAddedRemoved');
     }
     return $ret;
 }
Esempio n. 3
0
 /**
  * Returns all components matching a component class (including classes inheriting that class)
  *
  * Use with care, this is only efficient if a few components exist.
  *
  * @see getComponentsBySameClass
  * @param string|array component class
  * @param array|Kwf_Component_Select
  * @return Kwf_Component_Data[]
  */
 public function getComponentsByClass($class, $select = array())
 {
     if (is_array($select)) {
         $select = new Kwf_Component_Select($select);
     }
     $cacheId = (is_array($class) ? implode(',', $class) : $class) . $select->getHash();
     if (!isset($this->_componentsByClassCache[$cacheId])) {
         $lookingForChildClasses = Kwc_Abstract::getComponentClassesByParentClass($class);
         $ret = $this->getComponentsBySameClass($lookingForChildClasses, $select);
         $this->_componentsByClassCache[$cacheId] = $ret;
     }
     return $this->_componentsByClassCache[$cacheId];
 }