. * * You can contact The Jam Warehouse Software (Pty) Limited, Unit 1, Tramber Place, * Blake Street, Observatory, 7925 South Africa. or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * Contributor( s): ______________________________________ * */ require_once(KT_LIB_DIR . "/plugins/pluginregistry.inc.php"); class KTDashletRegistry { var $nsnames = array(); static function &getSingleton () { if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTDashboardRegistry')) { $GLOBALS['_KT_PLUGIN']['oKTDashboardRegistry'] = new KTDashletRegistry; } return $GLOBALS['_KT_PLUGIN']['oKTDashboardRegistry']; } function registerDashlet($name, $nsname, $filename = "", $sPlugin = "") { $this->nsnames[$nsname] = array($name, $filename, $nsname, $sPlugin); } // FIXME we might want to do the pruning now, but I'm unsure how to handle the preconditions. function getDashlets($oUser) { $aDashlets = array(); $oRegistry =& KTPluginRegistry::getSingleton(); // probably not the _best_ way to do things. foreach ($this->nsnames as $aPortlet) { $name = $aPortlet[0]; $filename = $aPortlet[1]; $sPluginName = $aPortlet[3]; require_once($aPortlet[1]); $oPlugin =& $oRegistry->getPlugin($sPluginName); $oDashlet = new $name; $oDashlet->setPlugin($oPlugin); if ($oDashlet->is_active($oUser)) { $aDashlets[] = $oDashlet; } } return $aDashlets; } } ?>