* code for task #62742.

This commit is contained in:
wangyidong
2022-08-04 17:30:27 +08:00
parent 38b85c9262
commit aaee558b83
2 changed files with 14 additions and 7 deletions
+6 -5
View File
@@ -253,10 +253,15 @@ class baseModel
{
if(empty($extensionName)) return false;
/* 设置扩展的名字和相应的文件。Set extenson name and extension file. */
$moduleName = $moduleName ? $moduleName : $this->getModuleName();
$moduleName = strtolower($moduleName);
$extensionName = strtolower($extensionName);
/* 设置扩展类的名字。Set the extension class name. */
$extensionClass = $extensionName . ucfirst($moduleName);
if(isset($this->$extensionClass)) return $this->$extensionClass;
/* 设置扩展的名字和相应的文件。Set extenson name and extension file. */
$moduleExtPath = $this->app->getModuleExtPath($this->appName, $moduleName, 'model');
if(!empty($moduleExtPath['site'])) $extensionFile = $moduleExtPath['site'] . 'class/' . $extensionName . '.class.php';
if(!isset($extensionFile) or !file_exists($extensionFile)) $extensionFile = $moduleExtPath['custom'] . 'class/' . $extensionName . '.class.php';
@@ -265,10 +270,6 @@ class baseModel
if(!isset($extensionFile) or !file_exists($extensionFile)) $extensionFile = $moduleExtPath['xuan'] . 'class/' . $extensionName . '.class.php';
if(!isset($extensionFile) or !file_exists($extensionFile)) $extensionFile = $moduleExtPath['common'] . 'class/' . $extensionName . '.class.php';
/* 设置扩展类的名字。Set the extension class name. */
$extensionClass = $extensionName . ucfirst($moduleName);
if(isset($this->$extensionClass)) return $this->$extensionClass;
/* 载入父类。Try to import parent model file auto and then import the extension file. */
if(!class_exists($moduleName . 'Model')) helper::import($this->app->getModulePath($this->appName, $moduleName) . 'model.php');
if(!helper::import($extensionFile)) return false;
+8 -2
View File
@@ -1525,8 +1525,14 @@ class baseRouter
public function checkModuleName($var, $exit = true)
{
global $filter;
$rule = $filter->default->moduleName;
if(validater::checkByRule($var, $rule)) return true;
static $checkedModule = array();
if(!isset($checkedModule[$var]))
{
$rule = $filter->default->moduleName;
$result = validater::checkByRule($var, $rule);
$checkedModule[$var] = $result;
}
if($checkedModule[$var]) return true;
if(!$exit) return false;
$this->triggerError("'$var' illegal. ", __FILE__, __LINE__, $exit = true);
}