aboutsummaryrefslogtreecommitdiffstats
path: root/admin/include
diff options
context:
space:
mode:
Diffstat (limited to 'admin/include')
-rw-r--r--admin/include/plugins.class.php9
1 files changed, 5 insertions, 4 deletions
diff --git a/admin/include/plugins.class.php b/admin/include/plugins.class.php
index 0ddc85b50..b410ff647 100644
--- a/admin/include/plugins.class.php
+++ b/admin/include/plugins.class.php
@@ -509,7 +509,7 @@ DELETE FROM '. PLUGINS_TABLE .'
* @param string - archive URL
* @param string - plugin id or extension id
*/
- function extract_plugin_files($action, $revision, $dest)
+ function extract_plugin_files($action, $revision, $dest, &$plugin_id=null)
{
if ($archive = tempnam( PHPWG_PLUGINS_PATH, 'zip'))
{
@@ -541,13 +541,14 @@ DELETE FROM '. PLUGINS_TABLE .'
$root = dirname($main_filepath); // main.inc.php path in archive
if ($action == 'upgrade')
{
- $extract_path = PHPWG_PLUGINS_PATH . $dest;
+ $plugin_id = $dest;
}
else
{
- $extract_path = PHPWG_PLUGINS_PATH
- . ($root == '.' ? 'extension_' . $dest : basename($root));
+ $plugin_id = ($root == '.' ? 'extension_' . $dest : basename($root));
}
+ $extract_path = PHPWG_PLUGINS_PATH . $plugin_id;
+
if($result = $zip->extract(PCLZIP_OPT_PATH, $extract_path,
PCLZIP_OPT_REMOVE_PATH, $root,
PCLZIP_OPT_REPLACE_NEWER))