<?PHP//class to load modules for the admin interface class leModules { var $db; var $loadedModules; var $moduleArray; var $adressArray; function leModules($database) { //set the databaseconnection $this->db = leDB::getInstance($database); $this->moduleArray = array(); } function getInstance ($database) // this implements the 'singleton' design pattern. { static $instance; if (!isset($instance)) { $c = __CLASS__; $instance = new $c($database); } // if return $instance; } // getInstance function load($adressArray,$debug = NULL) { //load the modules, if debug is set to 1, print out which modules are loaded. $this->adressArray = $adressArray; $this->loadedModules = $this->db->select("*","modules"); foreach($this->loadedModules as $module) { include("modules/".$module['name'].".php"); $this->moduleArray[$module['name']] = new $module['name']($adressArray); if($debug) echo "loaded module: ".$module['name'].".php<br>"; } } function view($module) { if(method_exists($this->moduleArray[$module],'view')) { if($this->moduleArray[$module]->view() == $this->adressArray[2]) return $this->moduleArray[$this->adressArray[2]]->admin(); else return $this->moduleArray[$module]->view(); } else { return FALSE; } } function admin($module) { if(method_exists($this->moduleArray[$module],'admin')) return $this->moduleArray[$module]->admin(); else return false; } function loadedModules() { return $this->loadedModules; } function menu($module) { if(method_exists($this->moduleArray[$module],'menu')) return $this->moduleArray[$module]->menu(); } }?>