diff --git a/module/extension/control.php b/module/extension/control.php
index e6c4dc9b71..8284166a40 100644
--- a/module/extension/control.php
+++ b/module/extension/control.php
@@ -224,7 +224,7 @@ class extension extends control
if($ignore == 'no')
{
- $return = $this->extension->checkFile($extension);
+ $return = $this->extensionZen->checkFileConflict($extension);
if($return->result != 'ok')
{
$ignoreLink = inlink('activate', "extension=$extension&ignore=yes");
diff --git a/module/extension/model.php b/module/extension/model.php
index bdbb919722..cf58874e95 100644
--- a/module/extension/model.php
+++ b/module/extension/model.php
@@ -307,7 +307,7 @@ class extensionModel extends model
}
/**
- * 根据插件代号获取插件包里db和doc目录下的文件列表。
+ * 根据插件代号获取插件包里除db和doc目录外的文件列表。
* Get all files from a package.
*
* @param string $extension
@@ -397,34 +397,6 @@ class extensionModel extends model
return false;
}
- /**
- * Check files in the package conflicts with exists files or not.
- *
- * @param string $extension
- * @param string $type
- * @param bool $isCheck
- * @access public
- * @return object
- */
- public function checkFile($extension)
- {
- $return = new stdclass();
- $return->result = 'ok';
- $return->error = '';
-
- $extensionFiles = $this->getFilesFromPackage($extension);
- $appRoot = $this->app->getAppRoot();
- foreach($extensionFiles as $extensionFile)
- {
- $compareFile = $appRoot . str_replace($this->pkgRoot . $extension . DS, '', $extensionFile);
- if(!file_exists($compareFile)) continue;
- if(md5_file($extensionFile) != md5_file($compareFile)) $return->error .= $compareFile . '
';
- }
-
- if($return->error != '') $return->result = 'fail';
- return $return;
- }
-
/**
* Extract an extension.
*
diff --git a/module/extension/zen.php b/module/extension/zen.php
index 6f372689d8..cfb9cdb89c 100644
--- a/module/extension/zen.php
+++ b/module/extension/zen.php
@@ -213,7 +213,7 @@ class extensionZen extends extension
{
if($overrideFile == 'no')
{
- $return = $this->extension->checkFile($extension);
+ $return = $this->checkFileConflict($extension);
if($return->result != 'ok')
{
$this->view->error = sprintf($this->lang->extension->errorFileConflicted, $return->error, $overrideLink, inlink('obtain'));
@@ -386,4 +386,32 @@ class extensionZen extends extension
return $checkResult;
}
+
+ /**
+ * 检查插件包的目录结构是否禅道目录结构冲突。
+ * Check files in the package conflicts with exists files or not.
+ *
+ * @param string $extension
+ * @access public
+ * @return object
+ */
+ public function checkFileConflict(string $extension): object
+ {
+ $return = new stdclass();
+ $return->result = 'ok';
+ $return->error = '';
+
+ $appRoot = $this->app->getAppRoot();
+ $extensionFiles = $this->extension->getFilesFromPackage($extension);
+ foreach($extensionFiles as $extensionFile)
+ {
+ $compareFile = $appRoot . str_replace($this->extension->pkgRoot . $extension . DS, '', $extensionFile);
+ if(!file_exists($compareFile)) continue;
+
+ if(md5_file($extensionFile) != md5_file($compareFile)) $return->error .= $compareFile . '
';
+ }
+
+ if($return->error != '') $return->result = 'fail';
+ return $return;
+ }
}