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)