public function testAddDirectory() { $index = new Extension_Index; $this->assertEquals(array(), $index->getDirs()); $this->assertEquals($index, $index->addDirectory(dirname(__FILE__))); $this->assertEquals($index, $index->addDirectory(dirname(__FILE__))); $this->assertEquals(array(dirname(__FILE__)), $index->getDirs()); return $index; }
/** * Get available widgets for user * @param int|NULL $uid * @return array of IWidget */ public static function GetAvailable($uid = NULL) { global $g_user; if ($uid === NULL) { $uid = $g_user->getId(); } // get all widget extensions $index = new Extension_Index(); $extensions = $index->addDirectory(WWW_DIR . self::ExtPath())->find('IWidget'); // filter not-available (used) $widgets = array(); foreach ($extensions as $extension) { $widget = WidgetManagerDecorator::GetByExtension($extension); if ($widget->isAvailable($uid)) { $widgets[] = $widget; } } return $widgets; }