From fdc283afd74c3cf379fd24153ece79fe519c0b20 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Wed, 4 Mar 2015 14:42:27 +0800 Subject: [PATCH] * adjust for upload extension file. --- module/extension/control.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/module/extension/control.php b/module/extension/control.php index 17905290d9..64ae887790 100644 --- a/module/extension/control.php +++ b/module/extension/control.php @@ -424,8 +424,19 @@ class extension extends control { $tmpName = $_FILES['file']['tmp_name']; $fileName = $_FILES['file']['name']; - $extension = basename($fileName, '.zip'); move_uploaded_file($tmpName, $this->app->getTmpRoot() . "/extension/$fileName"); + $extension = basename($fileName, '.zip'); + $return = $this->extension->extractPackage($extension); + if($return->result != 'ok') die(js::alert(sprintf($this->lang->extension->errorExtracted, $packageFile, $return->error))); + + $info = $this->extension->parseExtensionCFG($extension); + if(isset($info->code) and $info->code != $extension) + { + $classFile = $this->app->loadClass('zfile'); + $classFile->removeDir("ext/$extension"); + $extension = $info->code; + } + $info = $this->extension->getInfoFromDB($extension); $type = $info->status == 'installed' ? 'upgrade' : 'install'; $link = $type == 'install' ? inlink('install', "extension=$extension") : inlink('upgrade', "extension=$extension");