rename $extMgr to $extmgr, all global vars can be passed to factory

This commit is contained in:
Uwe Steinmann 2025-10-28 15:44:51 +01:00
parent d15c65f137
commit b6bdae551c
3 changed files with 23 additions and 24 deletions

View File

@ -30,14 +30,19 @@ class Controller {
* @return object an object of a class implementing the view
*/
static function factory($class, $params=array()) { /* {{{ */
global $settings, $session, $extMgr, $request, $logger, $notifier;
foreach(['settings', 'session', 'extmgr', 'request', 'logger', 'notifier', 'fulltextservice'] as $vn) {
if(isset($params[$vn]))
${$vn} = $params[$vn];
else
${$vn} = $GLOBALS[$vn] ?? null;
}
if(!$class) {
return null;
}
$classname = "SeedDMS_Controller_".$class;
$filename = '';
foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) {
foreach($extmgr->getExtensionConfiguration() as $extname=>$extconf) {
$filename = $settings->_rootDir.'ext/'.$extname.'/controllers/class.'.$class.".php";
if(file_exists($filename)) {
break;
@ -60,6 +65,7 @@ class Controller {
$controller->setParam('settings', $settings);
$controller->setParam('logger', $logger);
$controller->setParam('notifier', $notifier);
$controller->setParam('fulltextservice', $fulltextservice);
return $controller;
}
return null;

View File

@ -45,7 +45,12 @@ class UI extends UI_Default {
* @return object an object of a class implementing the view
*/
static public function factory($theme, $class='', $params=array()) { /* {{{ */
global $settings, $session, $extMgr, $request, $logger, $notifier, $fulltextservice;
foreach(['settings', 'session', 'extmgr', 'request', 'logger', 'notifier', 'fulltextservice'] as $vn) {
if(isset($params[$vn]))
${$vn} = $params[$vn];
else
${$vn} = $GLOBALS[$vn] ?? null;
}
if(!$class) {
$class = 'Bootstrap';
$class = 'Style';
@ -55,9 +60,9 @@ class UI extends UI_Default {
}
/* Collect all decorators */
$decorators = array();
foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) {
foreach($extmgr->getExtensionConfiguration() as $extname=>$extconf) {
if(!$settings->extensionIsDisabled($extname)) {
if($extMgr->checkExtensionByName($extname, $extconf)) {
if($extmgr->checkExtensionByName($extname, $extconf)) {
if(isset($extconf['decorators'][$class])) {
$filename = $settings->_rootDir.'ext/'.$extname.'/decorators/'.$theme."/".$extconf['decorators'][$class]['file'];
if(file_exists($filename)) {
@ -72,9 +77,9 @@ class UI extends UI_Default {
*/
$filename = '';
$httpbasedir = '';
foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) {
foreach($extmgr->getExtensionConfiguration() as $extname=>$extconf) {
if(!$settings->extensionIsDisabled($extname)) {
if($extMgr->checkExtensionByName($extname, $extconf)) {
if($extmgr->checkExtensionByName($extname, $extconf)) {
/* Setting the 'views' element in the configuration can be used to
* replace an existing view in views/bootstrap/, e.g. class.ViewFolder.php
* without providing an out/out.ViewFolder.php. In that case $httpbasedir

View File

@ -16,35 +16,23 @@ global $logger;
require "inc.ClassExtensionMgr.php";
require_once "inc.ClassExtBase.php";
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir, $settings->_repositoryUrl, $settings->_proxyUrl, $settings->_proxyUser, $settings->_proxyPassword);
$extmgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir, $settings->_repositoryUrl, $settings->_proxyUrl, $settings->_proxyUser, $settings->_proxyPassword);
$version = new SeedDMS_Version;
foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) {
foreach($extmgr->getExtensionConfiguration() as $extname=>$extconf) {
if($extconf['disable']) {
$settings->disableExtension($extname);
continue;
}
if(!$settings->extensionIsDisabled($extname)) {
$disabled = false;
if($extMgr->checkExtensionByName($extname, $extconf)) {
if($extmgr->checkExtensionByName($extname, $extconf)) {
$disabled = false;
$settings->enableExtension($extname);
} else {
$disabled = true;
$settings->disableExtension($extname);
// echo $extMgr->getErrorMsg();
// echo $extmgr->getErrorMsg();
}
/* check for requirements */
/*
if(!empty($extconf['constraints']['depends']['seeddms'])) {
$t = explode('-', $extconf['constraints']['depends']['seeddms'], 2);
if(SeedDMS_Extension_Mgr::cmpVersion($t[0], $version->version()) > 0 || ($t[1] && SeedDMS_Extension_Mgr::cmpVersion($t[1], $version->version()) < 0))
$disabled = true;
else
$disabled = false;
}
*/
if(!$disabled) {
if(isset($extconf['class']) && isset($extconf['class']['file']) && isset($extconf['class']['name'])) {
$classfile = $settings->_rootDir."/ext/".$extname."/".$extconf['class']['file'];
@ -52,7 +40,7 @@ foreach($extMgr->getExtensionConfiguration() as $extname=>$extconf) {
include($classfile);
$obj = new $extconf['class']['name']($settings, null, $logger);
if(method_exists($obj, 'init'))
$obj->init($extMgr);
$obj->init($extmgr);
}
}
if(isset($extconf['language']['file'])) {