* Adjust checkFile model function to checkFileConflict zen function.
This commit is contained in:
@@ -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");
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user