diff --git a/cache/class_index.php b/cache/class_index.php index 25c386e9a..9116b0300 100644 --- a/cache/class_index.php +++ b/cache/class_index.php @@ -5,7 +5,8 @@ 'Address' => 'override/classes/Address.php', 'AddressFormatCore' => 'classes/AddressFormat.php', 'AddressFormat' => 'override/classes/AddressFormat.php', - 'AdminController' => 'classes/AdminController.php', + 'AdminControllerCore' => 'classes/AdminController.php', + 'AdminController' => '', 'AdminTabCore' => 'classes/AdminTab.php', 'AdminTab' => 'override/classes/AdminTab.php', 'AliasCore' => 'classes/Alias.php', @@ -279,6 +280,10 @@ 'TaxRulesTaxManagerCore' => 'classes/tax/TaxRulesTaxManager.php', 'TaxRulesTaxManager' => 'override/classes/tax/TaxRulesTaxManager.php', 'FB' => 'override/classes/fb.php', + 'AdminHomeControllerCore' => 'controllers/admin/AdminHomeController.php', + 'AdminHomeController' => '', + 'AdminToolsControllerCore' => 'controllers/admin/AdminToolsController.php', + 'AdminToolsController' => '', 'AddressControllerCore' => 'controllers/front/AddressController.php', 'AddressController' => 'override/controllers/front/AddressController.php', 'AddressesControllerCore' => 'controllers/front/AddressesController.php', diff --git a/classes/AdminController.php b/classes/AdminController.php index a3c561f61..6a513045f 100644 --- a/classes/AdminController.php +++ b/classes/AdminController.php @@ -61,13 +61,13 @@ class AdminControllerCore extends Controller if ($className == 'AdminCategories' OR $className == 'AdminProducts') $className = 'AdminCatalog'; - // temporary fix for Token retrocompatibility + // temporary fix for Token retrocompatibility // This has to be done when url is built instead of here) if(strpos($className,'Controller')) $className = substr($className,0,-10); $this->token = Tools::getAdminToken($className.(int)$this->id.(int)$this->context->employee->id); - + if (!Shop::isMultiShopActivated()) $this->shopLinkType = ''; } @@ -127,7 +127,7 @@ class AdminControllerCore extends Controller die; } } - + public function displayNoSmarty() { @@ -155,17 +155,17 @@ class AdminControllerCore extends Controller { $this->context->smarty->assign('warnings',$this->warnings); $this->content = $this->context->smarty->fetch($this->template); - + } $this->context->smarty->assign('content',$this->content); $this->context->smarty->display($this->layout); } - + /** * add a warning message to display at the top of the page - * - * @param string $msg + * + * @param string $msg */ protected function displayWarning($msg) { @@ -269,7 +269,7 @@ class AdminControllerCore extends Controller foreach ($tabs_breadcrumb AS $key => $item) for ($i = 0; $i < (count($tabs_breadcrumb) - 1); $i++) $tabs_breadcrumb[$key]['token'] = Tools::getAdminToken($item['class_name'].intval($item['id_tab']).(int)$this->context->employee->id); - + /* Hooks are volontary out the initialize array (need those variables already assigned) */ $this->context->smarty->assign(array( diff --git a/controllers/front/ModuleController.php b/controllers/front/ModuleController.php new file mode 100644 index 000000000..65e5bf845 --- /dev/null +++ b/controllers/front/ModuleController.php @@ -0,0 +1,56 @@ + +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision$ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +/** + * The module controller call a module action. Module action method need to have the name : + * public function actionMyAction(FrontController $controller) + * + * @since 1.5.0 + */ +class ModuleControllerCore extends FrontController +{ + public function process() + { + // Check module existence + $name = Tools::getValue('module'); + if (!Validate::isModuleName($name) || !file_exists(_PS_MODULE_DIR_.$name)) + Tools::redirect('index'); + + $module = Module::getInstanceByName($name); + if (!$module->active) + Tools::redirect('index'); + + // Trigger module action + $action = Tools::getValue('action'); + $method = 'action'.$action; + + if ($action && method_exists($module, $method)) + $this->setTemplate($module->$method()); + else + die('Module action not found'); + } +}