* Adjust checkFile model function to checkFileConflict zen function.

This commit is contained in:
wangyuting
2023-12-07 16:51:15 +08:00
parent 490de95841
commit 5ecb97151b
3 changed files with 31 additions and 31 deletions
+1 -1
View File
@@ -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");
+1 -29
View File
@@ -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 . '<br />';
}
if($return->error != '') $return->result = 'fail';
return $return;
}
/**
* Extract an extension.
*
+29 -1
View File
@@ -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 . '<br />';
}
if($return->error != '') $return->result = 'fail';
return $return;
}
}