From 492f0ab972b8a24d206428b767b20522f592aed8 Mon Sep 17 00:00:00 2001 From: vSchoener Date: Wed, 16 May 2012 14:06:51 +0000 Subject: [PATCH] [+] BO : Request when a module is installed is sent to the webservice. --- controllers/admin/AdminModulesController.php | 63 ++++++++++++++++++-- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/controllers/admin/AdminModulesController.php b/controllers/admin/AdminModulesController.php index 45a7d93a1..26be2da1d 100644 --- a/controllers/admin/AdminModulesController.php +++ b/controllers/admin/AdminModulesController.php @@ -341,6 +341,45 @@ class AdminModulesControllerCore extends AdminController } + /** + * Ajax call for statistic + * + * @result : die the request + */ + public function ajaxProcessWsModuleCall() + { + if (($list = Tools::getValue('modules_list')) && is_array($list)) + { + foreach ($list as $id) + if ($obj = Module::getInstanceById($id)) + { + if (isset($obj->module_key) && isset($obj->version)) + { + $post_data = http_build_query(array( + 'key' => urlencode($obj->module_key), + 'url' => urlencode(Tools::getShopDomain()), + 'mail' => urlencode(Configuration::get('PS_SHOP_EMAIL')), + 'version' => urlencode(_PS_VERSION_), + 'method' => 'product_key' + )); + + $opts = array( + 'http' => array( + 'method' => 'POST', + 'header' => 'Content-type: application/x-www-form-urlencoded', + 'content' => $post_data + ) + ); + + $context = stream_context_create($opts); + file_get_contents('http://api.addons.prestashop.com/', false, $context); + } + } + } + die(); + } + + /* ** Get current URL @@ -569,6 +608,8 @@ class AdminModulesControllerCore extends AdminController public function postProcessCallback() { $return = false; + $installed_modules = array(); + foreach ($this->map as $key => $method) { $modules = Tools::getValue($key); @@ -695,7 +736,14 @@ class AdminModulesControllerCore extends AdminController $this->context->smarty->assign('module_content', $toolbar.'
 
'.$echo.'
 
'.$toolbar); } elseif ($echo === true) - $return = ($method == 'install' ? 12 : 13); + { + $return = 13; + if ($method == 'install') + { + $return = 12; + $installed_modules[] = $module->id; + } + } elseif ($echo === false) $module_errors[] = array('name' => $name, 'message' => $module->getErrors()); if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL && isset(Context::getContext()->tmpOldShop)) @@ -716,10 +764,12 @@ class AdminModulesControllerCore extends AdminController } if ($return) { + $params = (count($installed_modules)) ? '&installed_modules='.implode('|', $installed_modules) : ''; + // If redirect parameter is present and module installed with success, we redirect on configuration module page if (Tools::getValue('redirect') == 'config' && Tools::getValue('module_name') != '' && $return == '12' && Module::isInstalled(pSQL(Tools::getValue('module_name')))) - Tools::redirectAdmin('index.php?controller=adminmodules&configure='.Tools::getValue('module_name').'&token='.Tools::getValue('token').'&module_name='.Tools::getValue('module_name')); - Tools::redirectAdmin(self::$currentIndex.'&conf='.$return.'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(isset($modules_list_save) ? '&modules_list='.$modules_list_save : '')); + Tools::redirectAdmin('index.php?controller=adminmodules&configure='.Tools::getValue('module_name').'&token='.Tools::getValue('token').'&module_name='.Tools::getValue('module_name').$params); + Tools::redirectAdmin(self::$currentIndex.'&conf='.$return.'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(isset($modules_list_save) ? '&modules_list='.$modules_list_save : '').$params); } } @@ -728,6 +778,11 @@ class AdminModulesControllerCore extends AdminController // Parent Post Process parent::postProcess(); + + // Get the list of installed module ans prepare it for ajax call. + if (($list = Tools::getValue('installed_modules'))) + Context::getContext()->smarty->assign('installed_modules', Tools::jsonEncode(explode('|', $list))); + // If redirect parameter is present and module already installed, we redirect on configuration module page if (Tools::getValue('redirect') == 'config' && Tools::getValue('module_name') != '' && Module::isInstalled(pSQL(Tools::getValue('module_name')))) Tools::redirectAdmin('index.php?controller=adminmodules&configure='.Tools::getValue('module_name').'&token='.Tools::getValue('token').'&module_name='.Tools::getValue('module_name')); @@ -843,7 +898,7 @@ class AdminModulesControllerCore extends AdminController public function isModuleFiltered($module) { - // Beware $module could be an instance of Module or stdClass, that explain the static call + // Beware $module could be an instance of Module or stdClass, that expflain the static call if ($module->id && !Module::getPermissionStatic($module->id, 'view') && !Module::getPermissionStatic($module->id, 'configure')) return true;