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; + } }