diff --git a/lib/zfile/zfile.class.php b/lib/zfile/zfile.class.php index 8e24357a7a..4903d50df4 100644 --- a/lib/zfile/zfile.class.php +++ b/lib/zfile/zfile.class.php @@ -223,7 +223,7 @@ class zfile * * @param string $patern * @access public - * @return avoid + * @return void */ public function batchRemoveFile($patern) { diff --git a/module/extension/control.php b/module/extension/control.php index 1ff63ffd9e..fb760bed0e 100644 --- a/module/extension/control.php +++ b/module/extension/control.php @@ -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¶m=' . helper::safe64Encode($code)), $this->lang->extension->installExt, '_blank') . '
'; + if($noDepends) $dependsExt .= $code . $extVersion . ' ' . html::a(inlink('obtain', 'type=bycode¶m=' . helper::safe64Encode($code)), $this->lang->extension->installExt, '_blank') . '
'; } if($noDepends) diff --git a/module/extension/model.php b/module/extension/model.php index e1d16fd42d..9094b74003 100644 --- a/module/extension/model.php +++ b/module/extension/model.php @@ -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)