check extension dirs for controller class

This commit is contained in:
Uwe Steinmann 2014-12-08 14:35:51 +01:00
parent 8ace74ef85
commit c560d21425

View File

@ -30,14 +30,25 @@ class Controller {
* @return object an object of a class implementing the view * @return object an object of a class implementing the view
*/ */
static function factory($class, $params=array()) { /* {{{ */ static function factory($class, $params=array()) { /* {{{ */
global $settings, $session, $dms, $user; global $settings, $session, $dms, $user, $EXT_CONF;
if(!$class) { if(!$class) {
return null; return null;
} }
$classname = "SeedDMS_Controller_".$class; $classname = "SeedDMS_Controller_".$class;
$filename = "../controllers/class.".$class.".php"; $filename = '';
if(file_exists($filename)) { foreach($EXT_CONF as $extname=>$extconf) {
$filename = '../ext/'.$extname.'/controllers/class.'.$class.".php";
if(file_exists($filename)) {
break;
}
$filename = '';
}
if(!$filename)
$filename = $settings->_rootDir."controllers/class.".$class.".php";
if(!file_exists($filename))
$filename = '';
if($filename) {
require($filename); require($filename);
$controller = new $classname($params); $controller = new $classname($params);
/* Set some configuration parameters */ /* Set some configuration parameters */