Merge branch 'sprint/gh-104' into 'master'

* Fix GH-104, Get extension removePath error.

See merge request easycorp/zentaopms!6236
This commit is contained in:
朱金勇
2022-11-18 01:40:11 +00:00
3 changed files with 10 additions and 9 deletions
+1 -1
View File
@@ -223,7 +223,7 @@ class zfile
*
* @param string $patern
* @access public
* @return avoid
* @return void
*/
public function batchRemoveFile($patern)
{
+3 -4
View File
@@ -145,7 +145,6 @@ class extension extends control
$this->view->upgrade = $upgrade;
$this->view->title = $installTitle . $extension;
$statusFile = $this->loadModel('common')->checkSafeFile();
if($statusFile)
{
@@ -186,7 +185,7 @@ class extension extends control
$incompatible = $condition->zentao['incompatible'];
if($this->extension->checkVersion($incompatible))
{
$this->view->error = sprintf($this->lang->extension->errorIncompatible);
$this->view->error = $this->lang->extension->errorIncompatible;
return $this->display();
}
@@ -220,7 +219,7 @@ class extension extends control
$noDepends = false;
if(isset($installedExts[$code]))
{
if($this->extension->compare4Limit($installedExts[$code]->version, $limit, 'noBetween'))$noDepends = true;
if($this->extension->compare4Limit($installedExts[$code]->version, $limit, 'noBetween')) $noDepends = true;
}
else
{
@@ -235,7 +234,7 @@ class extension extends control
if(!empty($limit['max'])) $extVersion .= ' <=v' . $limit['max'];
$extVersion .=')';
}
if($noDepends)$dependsExt .= $code . $extVersion . ' ' . html::a(inlink('obtain', 'type=bycode&param=' . helper::safe64Encode($code)), $this->lang->extension->installExt, '_blank') . '<br />';
if($noDepends) $dependsExt .= $code . $extVersion . ' ' . html::a(inlink('obtain', 'type=bycode&param=' . helper::safe64Encode($code)), $this->lang->extension->installExt, '_blank') . '<br />';
}
if($noDepends)
+6 -4
View File
@@ -525,9 +525,11 @@ class extensionModel extends model
/* Extract files. */
$packageFile = $this->getPackageFile($extension);
$this->app->loadClass('pclzip', true);
$zip = new pclzip($packageFile);
$files = $zip->listContent();
$removePath = $files[0]['filename'];
$zip = new pclzip($packageFile);
$files = $zip->listContent();
$pathinfo = pathinfo($files[0]['filename']);
$removePath = isset($pathinfo['dirname']) && $pathinfo['dirname'] != '.' ? $pathinfo['dirname'] : $pathinfo['basename'];
if($zip->extract(PCLZIP_OPT_PATH, $extensionPath, PCLZIP_OPT_REMOVE_PATH, $removePath) == 0)
{
$return->result = 'fail';
@@ -548,7 +550,7 @@ class extensionModel extends model
{
$appRoot = $this->app->getAppRoot();
$extensionDir = "ext/$extension/";
$paths = scandir($extensionDir);
$paths = scandir($extensionDir);
$copiedFiles = array();
foreach($paths as $path)