From 69db63f26c0e8e0af63a37be23896bb2176d62a6 Mon Sep 17 00:00:00 2001 From: rMalie Date: Thu, 22 Sep 2011 15:19:42 +0000 Subject: [PATCH] [*] Front: move front controllers in controllers/front/ directory // Refactoring of front controllers part 1 git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@8721 b9a71923-0436-4b27-9f14-aed3839534dd --- cache/class_index.php | 164 ++++++++-------- classes/Controller.php | 56 ++++++ classes/Dispatcher.php | 24 ++- classes/FrontController.php | 185 +++++++++--------- controllers/{ => front}/AddressController.php | 15 +- .../{ => front}/AddressesController.php | 29 ++- .../{ => front}/AttachmentController.php | 2 - controllers/{ => front}/AuthController.php | 11 +- .../{ => front}/BestSalesController.php | 14 +- controllers/{ => front}/CartController.php | 75 +++---- .../{ => front}/CategoryController.php | 45 ++--- .../{ => front}/ChangeCurrencyController.php | 10 +- controllers/{ => front}/CmsController.php | 60 ++---- controllers/{ => front}/CompareController.php | 30 ++- controllers/{ => front}/ContactController.php | 34 ++-- .../{ => front}/DiscountController.php | 13 +- controllers/{ => front}/GetFileController.php | 56 +++--- .../{ => front}/GuestTrackingController.php | 43 ++-- controllers/{ => front}/HistoryController.php | 18 +- .../{ => front}/IdentityController.php | 13 +- controllers/{ => front}/IndexController.php | 19 +- .../{ => front}/ManufacturerController.php | 45 ++--- .../{ => front}/MyAccountController.php | 16 +- .../{ => front}/NewProductsController.php | 20 +- .../OrderConfirmationController.php | 29 ++- controllers/{ => front}/OrderController.php | 70 +++---- .../{ => front}/OrderDetailController.php | 18 +- .../{ => front}/OrderFollowController.php | 19 +- .../{ => front}/OrderOpcController.php | 16 +- .../{ => front}/OrderReturnController.php | 22 +-- .../{ => front}/OrderSlipController.php | 14 +- .../{ => front}/PageNotFoundController.php | 8 +- .../{ => front}/ParentOrderController.php | 72 ++++--- .../{ => front}/PasswordController.php | 38 ++-- .../{ => front}/PdfInvoiceController.php | 13 +- .../{ => front}/PdfOrderReturnController.php | 12 +- .../{ => front}/PdfOrderSlipController.php | 14 +- .../{ => front}/PricesDropController.php | 16 +- controllers/{ => front}/ProductController.php | 33 +--- controllers/{ => front}/SearchController.php | 30 ++- controllers/{ => front}/SitemapController.php | 16 +- .../{ => front}/StatisticsController.php | 9 +- controllers/{ => front}/StoresController.php | 68 +++---- .../{ => front}/SupplierController.php | 65 +++--- controllers/front/index.php | 36 ++++ .../blockmanufacturer/blockmanufacturer.php | 2 +- .../blockmanufacturer/blockmanufacturer.tpl | 16 +- modules/blockmyaccount/blockmyaccount.php | 11 +- modules/blockmyaccount/blockmyaccount.tpl | 8 +- modules/blockviewed/blockviewed.php | 6 +- modules/blockviewed/blockviewed.tpl | 6 +- .../{ => front}/AddressController.php | 0 .../{ => front}/AddressesController.php | 0 .../{ => front}/AttachmentController.php | 0 .../{ => front}/AuthController.php | 0 .../{ => front}/BestSalesController.php | 0 .../{ => front}/CartController.php | 0 .../{ => front}/CategoryController.php | 0 .../{ => front}/ChangeCurrencyController.php | 0 .../controllers/{ => front}/CmsController.php | 0 .../{ => front}/CompareController.php | 0 .../{ => front}/ContactController.php | 0 .../{ => front}/DiscountController.php | 0 .../{ => front}/GetFileController.php | 0 .../{ => front}/GuestTrackingController.php | 0 .../{ => front}/HistoryController.php | 0 .../{ => front}/IdentityController.php | 0 .../{ => front}/IndexController.php | 0 .../{ => front}/ManufacturerController.php | 0 .../{ => front}/MyAccountController.php | 0 .../{ => front}/NewProductsController.php | 0 .../OrderConfirmationController.php | 0 .../{ => front}/OrderController.php | 0 .../{ => front}/OrderDetailController.php | 0 .../{ => front}/OrderFollowController.php | 0 .../{ => front}/OrderOpcController.php | 0 .../{ => front}/OrderReturnController.php | 0 .../{ => front}/OrderSlipController.php | 0 .../{ => front}/PageNotFoundController.php | 0 .../{ => front}/ParentOrderController.php | 0 .../{ => front}/PasswordController.php | 0 .../{ => front}/PdfInvoiceController.php | 0 .../{ => front}/PricesDropController.php | 0 .../{ => front}/ProductController.php | 0 .../{ => front}/SearchController.php | 0 .../{ => front}/SitemapController.php | 0 .../{ => front}/StatisticsController.php | 0 .../{ => front}/StoresController.php | 0 .../{ => front}/SupplierController.php | 0 override/controllers/front/index.php | 36 ++++ .../{ => front}/pdfOrderReturnController.php | 0 .../{ => front}/pdfOrderSlipController.php | 0 themes/prestashop/header.tpl | 4 +- themes/prestashop/product-list.tpl | 6 +- 94 files changed, 771 insertions(+), 939 deletions(-) rename controllers/{ => front}/AddressController.php (98%) rename controllers/{ => front}/AddressesController.php (93%) rename controllers/{ => front}/AttachmentController.php (98%) rename controllers/{ => front}/AuthController.php (98%) rename controllers/{ => front}/BestSalesController.php (90%) rename controllers/{ => front}/CartController.php (84%) rename controllers/{ => front}/CategoryController.php (85%) rename controllers/{ => front}/ChangeCurrencyController.php (92%) rename controllers/{ => front}/CmsController.php (68%) rename controllers/{ => front}/CompareController.php (94%) rename controllers/{ => front}/ContactController.php (93%) rename controllers/{ => front}/DiscountController.php (89%) rename controllers/{ => front}/GetFileController.php (98%) rename controllers/{ => front}/GuestTrackingController.php (94%) rename controllers/{ => front}/HistoryController.php (88%) rename controllers/{ => front}/IdentityController.php (95%) rename controllers/{ => front}/IndexController.php (80%) rename controllers/{ => front}/ManufacturerController.php (81%) rename controllers/{ => front}/MyAccountController.php (89%) rename controllers/{ => front}/NewProductsController.php (88%) rename controllers/{ => front}/OrderConfirmationController.php (91%) rename controllers/{ => front}/OrderController.php (92%) rename controllers/{ => front}/OrderDetailController.php (97%) rename controllers/{ => front}/OrderFollowController.php (94%) rename controllers/{ => front}/OrderOpcController.php (99%) rename controllers/{ => front}/OrderReturnController.php (92%) rename controllers/{ => front}/OrderSlipController.php (89%) rename controllers/{ => front}/PageNotFoundController.php (89%) rename controllers/{ => front}/ParentOrderController.php (99%) rename controllers/{ => front}/PasswordController.php (86%) rename controllers/{ => front}/PdfInvoiceController.php (93%) rename controllers/{ => front}/PdfOrderReturnController.php (92%) rename controllers/{ => front}/PdfOrderSlipController.php (93%) rename controllers/{ => front}/PricesDropController.php (89%) rename controllers/{ => front}/ProductController.php (95%) rename controllers/{ => front}/SearchController.php (95%) rename controllers/{ => front}/SitemapController.php (92%) rename controllers/{ => front}/StatisticsController.php (96%) rename controllers/{ => front}/StoresController.php (88%) rename controllers/{ => front}/SupplierController.php (70%) create mode 100644 controllers/front/index.php rename override/controllers/{ => front}/AddressController.php (100%) rename override/controllers/{ => front}/AddressesController.php (100%) rename override/controllers/{ => front}/AttachmentController.php (100%) rename override/controllers/{ => front}/AuthController.php (100%) rename override/controllers/{ => front}/BestSalesController.php (100%) rename override/controllers/{ => front}/CartController.php (100%) rename override/controllers/{ => front}/CategoryController.php (100%) rename override/controllers/{ => front}/ChangeCurrencyController.php (100%) rename override/controllers/{ => front}/CmsController.php (100%) rename override/controllers/{ => front}/CompareController.php (100%) rename override/controllers/{ => front}/ContactController.php (100%) rename override/controllers/{ => front}/DiscountController.php (100%) rename override/controllers/{ => front}/GetFileController.php (100%) rename override/controllers/{ => front}/GuestTrackingController.php (100%) rename override/controllers/{ => front}/HistoryController.php (100%) rename override/controllers/{ => front}/IdentityController.php (100%) rename override/controllers/{ => front}/IndexController.php (100%) rename override/controllers/{ => front}/ManufacturerController.php (100%) rename override/controllers/{ => front}/MyAccountController.php (100%) rename override/controllers/{ => front}/NewProductsController.php (100%) rename override/controllers/{ => front}/OrderConfirmationController.php (100%) rename override/controllers/{ => front}/OrderController.php (100%) rename override/controllers/{ => front}/OrderDetailController.php (100%) rename override/controllers/{ => front}/OrderFollowController.php (100%) rename override/controllers/{ => front}/OrderOpcController.php (100%) rename override/controllers/{ => front}/OrderReturnController.php (100%) rename override/controllers/{ => front}/OrderSlipController.php (100%) rename override/controllers/{ => front}/PageNotFoundController.php (100%) rename override/controllers/{ => front}/ParentOrderController.php (100%) rename override/controllers/{ => front}/PasswordController.php (100%) rename override/controllers/{ => front}/PdfInvoiceController.php (100%) rename override/controllers/{ => front}/PricesDropController.php (100%) rename override/controllers/{ => front}/ProductController.php (100%) rename override/controllers/{ => front}/SearchController.php (100%) rename override/controllers/{ => front}/SitemapController.php (100%) rename override/controllers/{ => front}/StatisticsController.php (100%) rename override/controllers/{ => front}/StoresController.php (100%) rename override/controllers/{ => front}/SupplierController.php (100%) create mode 100644 override/controllers/front/index.php rename override/controllers/{ => front}/pdfOrderReturnController.php (100%) rename override/controllers/{ => front}/pdfOrderSlipController.php (100%) diff --git a/cache/class_index.php b/cache/class_index.php index cc92e3962..0209b0bf1 100644 --- a/cache/class_index.php +++ b/cache/class_index.php @@ -252,9 +252,9 @@ 'DbMySQLiCore' => 'classes/db/DbMySQLi.php', 'DbMySQLi' => 'override/classes/db/DbMySQLi.php', 'DbPDOCore' => 'classes/db/DbPDO.php', - 'DbPDO' => '', + 'DbPDO' => 'override/classes/db/DbPDO.php', 'DbQueryCore' => 'classes/db/DbQuery.php', - 'DbQuery' => '', + 'DbQuery' => 'override/classes/db/DbQuery.php', 'MySQLCore' => 'classes/db/MySQL.php', 'MySQL' => 'override/classes/db/MySQL.php', 'GroupShopCore' => 'classes/shop/GroupShop.php', @@ -279,84 +279,84 @@ 'TaxRulesTaxManagerCore' => 'classes/tax/TaxRulesTaxManager.php', 'TaxRulesTaxManager' => 'override/classes/tax/TaxRulesTaxManager.php', 'FB' => 'override/classes/fb.php', - 'AddressControllerCore' => 'controllers/AddressController.php', - 'AddressController' => 'override/controllers/AddressController.php', - 'AddressesControllerCore' => 'controllers/AddressesController.php', - 'AddressesController' => 'override/controllers/AddressesController.php', - 'AttachmentControllerCore' => 'controllers/AttachmentController.php', - 'AttachmentController' => 'override/controllers/AttachmentController.php', - 'AuthControllerCore' => 'controllers/AuthController.php', - 'AuthController' => 'override/controllers/AuthController.php', - 'BestSalesControllerCore' => 'controllers/BestSalesController.php', - 'BestSalesController' => 'override/controllers/BestSalesController.php', - 'CartControllerCore' => 'controllers/CartController.php', - 'CartController' => 'override/controllers/CartController.php', - 'CategoryControllerCore' => 'controllers/CategoryController.php', - 'CategoryController' => 'override/controllers/CategoryController.php', - 'ChangeCurrencyControllerCore' => 'controllers/ChangeCurrencyController.php', - 'ChangeCurrencyController' => 'override/controllers/ChangeCurrencyController.php', - 'CmsControllerCore' => 'controllers/CmsController.php', - 'CmsController' => 'override/controllers/CmsController.php', - 'CompareControllerCore' => 'controllers/CompareController.php', - 'CompareController' => 'override/controllers/CompareController.php', - 'ContactControllerCore' => 'controllers/ContactController.php', - 'ContactController' => 'override/controllers/ContactController.php', - 'DiscountControllerCore' => 'controllers/DiscountController.php', - 'DiscountController' => 'override/controllers/DiscountController.php', - 'GetFileControllerCore' => 'controllers/GetFileController.php', - 'GetFileController' => 'override/controllers/GetFileController.php', - 'GuestTrackingControllerCore' => 'controllers/GuestTrackingController.php', - 'GuestTrackingController' => 'override/controllers/GuestTrackingController.php', - 'HistoryControllerCore' => 'controllers/HistoryController.php', - 'HistoryController' => 'override/controllers/HistoryController.php', - 'IdentityControllerCore' => 'controllers/IdentityController.php', - 'IdentityController' => 'override/controllers/IdentityController.php', - 'IndexControllerCore' => 'controllers/IndexController.php', - 'IndexController' => 'override/controllers/IndexController.php', - 'ManufacturerControllerCore' => 'controllers/ManufacturerController.php', - 'ManufacturerController' => 'override/controllers/ManufacturerController.php', - 'MyAccountControllerCore' => 'controllers/MyAccountController.php', - 'MyAccountController' => 'override/controllers/MyAccountController.php', - 'NewProductsControllerCore' => 'controllers/NewProductsController.php', - 'NewProductsController' => 'override/controllers/NewProductsController.php', - 'OrderConfirmationControllerCore' => 'controllers/OrderConfirmationController.php', - 'OrderConfirmationController' => 'override/controllers/OrderConfirmationController.php', - 'OrderControllerCore' => 'controllers/OrderController.php', - 'OrderController' => 'override/controllers/OrderController.php', - 'OrderDetailControllerCore' => 'controllers/OrderDetailController.php', - 'OrderDetailController' => 'override/controllers/OrderDetailController.php', - 'OrderFollowControllerCore' => 'controllers/OrderFollowController.php', - 'OrderFollowController' => 'override/controllers/OrderFollowController.php', - 'OrderOpcControllerCore' => 'controllers/OrderOpcController.php', - 'OrderOpcController' => 'override/controllers/OrderOpcController.php', - 'OrderReturnControllerCore' => 'controllers/OrderReturnController.php', - 'OrderReturnController' => 'override/controllers/OrderReturnController.php', - 'OrderSlipControllerCore' => 'controllers/OrderSlipController.php', - 'OrderSlipController' => 'override/controllers/OrderSlipController.php', - 'PageNotFoundControllerCore' => 'controllers/PageNotFoundController.php', - 'PageNotFoundController' => 'override/controllers/PageNotFoundController.php', - 'ParentOrderControllerCore' => 'controllers/ParentOrderController.php', - 'ParentOrderController' => 'override/controllers/ParentOrderController.php', - 'PasswordControllerCore' => 'controllers/PasswordController.php', - 'PasswordController' => 'override/controllers/PasswordController.php', - 'PdfInvoiceControllerCore' => 'controllers/PdfInvoiceController.php', - 'PdfInvoiceController' => 'override/controllers/PdfInvoiceController.php', - 'PdfOrderReturnControllerCore' => 'controllers/PdfOrderReturnController.php', - 'PdfOrderReturnController' => 'override/controllers/pdfOrderReturnController.php', - 'PdfOrderSlipControllerCore' => 'controllers/PdfOrderSlipController.php', - 'PdfOrderSlipController' => 'override/controllers/pdfOrderSlipController.php', - 'PricesDropControllerCore' => 'controllers/PricesDropController.php', - 'PricesDropController' => 'override/controllers/PricesDropController.php', - 'ProductControllerCore' => 'controllers/ProductController.php', - 'ProductController' => 'override/controllers/ProductController.php', - 'SearchControllerCore' => 'controllers/SearchController.php', - 'SearchController' => 'override/controllers/SearchController.php', - 'SitemapControllerCore' => 'controllers/SitemapController.php', - 'SitemapController' => 'override/controllers/SitemapController.php', - 'StatisticsControllerCore' => 'controllers/StatisticsController.php', - 'StatisticsController' => 'override/controllers/StatisticsController.php', - 'StoresControllerCore' => 'controllers/StoresController.php', - 'StoresController' => 'override/controllers/StoresController.php', - 'SupplierControllerCore' => 'controllers/SupplierController.php', - 'SupplierController' => 'override/controllers/SupplierController.php', + 'AddressControllerCore' => 'controllers/front/AddressController.php', + 'AddressController' => 'override/controllers/front/AddressController.php', + 'AddressesControllerCore' => 'controllers/front/AddressesController.php', + 'AddressesController' => 'override/controllers/front/AddressesController.php', + 'AttachmentControllerCore' => 'controllers/front/AttachmentController.php', + 'AttachmentController' => 'override/controllers/front/AttachmentController.php', + 'AuthControllerCore' => 'controllers/front/AuthController.php', + 'AuthController' => 'override/controllers/front/AuthController.php', + 'BestSalesControllerCore' => 'controllers/front/BestSalesController.php', + 'BestSalesController' => 'override/controllers/front/BestSalesController.php', + 'CartControllerCore' => 'controllers/front/CartController.php', + 'CartController' => 'override/controllers/front/CartController.php', + 'CategoryControllerCore' => 'controllers/front/CategoryController.php', + 'CategoryController' => 'override/controllers/front/CategoryController.php', + 'ChangeCurrencyControllerCore' => 'controllers/front/ChangeCurrencyController.php', + 'ChangeCurrencyController' => 'override/controllers/front/ChangeCurrencyController.php', + 'CmsControllerCore' => 'controllers/front/CmsController.php', + 'CmsController' => 'override/controllers/front/CmsController.php', + 'CompareControllerCore' => 'controllers/front/CompareController.php', + 'CompareController' => 'override/controllers/front/CompareController.php', + 'ContactControllerCore' => 'controllers/front/ContactController.php', + 'ContactController' => 'override/controllers/front/ContactController.php', + 'DiscountControllerCore' => 'controllers/front/DiscountController.php', + 'DiscountController' => 'override/controllers/front/DiscountController.php', + 'GetFileControllerCore' => 'controllers/front/GetFileController.php', + 'GetFileController' => 'override/controllers/front/GetFileController.php', + 'GuestTrackingControllerCore' => 'controllers/front/GuestTrackingController.php', + 'GuestTrackingController' => 'override/controllers/front/GuestTrackingController.php', + 'HistoryControllerCore' => 'controllers/front/HistoryController.php', + 'HistoryController' => 'override/controllers/front/HistoryController.php', + 'IdentityControllerCore' => 'controllers/front/IdentityController.php', + 'IdentityController' => 'override/controllers/front/IdentityController.php', + 'IndexControllerCore' => 'controllers/front/IndexController.php', + 'IndexController' => 'override/controllers/front/IndexController.php', + 'ManufacturerControllerCore' => 'controllers/front/ManufacturerController.php', + 'ManufacturerController' => 'override/controllers/front/ManufacturerController.php', + 'MyAccountControllerCore' => 'controllers/front/MyAccountController.php', + 'MyAccountController' => 'override/controllers/front/MyAccountController.php', + 'NewProductsControllerCore' => 'controllers/front/NewProductsController.php', + 'NewProductsController' => 'override/controllers/front/NewProductsController.php', + 'OrderConfirmationControllerCore' => 'controllers/front/OrderConfirmationController.php', + 'OrderConfirmationController' => 'override/controllers/front/OrderConfirmationController.php', + 'OrderControllerCore' => 'controllers/front/OrderController.php', + 'OrderController' => 'override/controllers/front/OrderController.php', + 'OrderDetailControllerCore' => 'controllers/front/OrderDetailController.php', + 'OrderDetailController' => 'override/controllers/front/OrderDetailController.php', + 'OrderFollowControllerCore' => 'controllers/front/OrderFollowController.php', + 'OrderFollowController' => 'override/controllers/front/OrderFollowController.php', + 'OrderOpcControllerCore' => 'controllers/front/OrderOpcController.php', + 'OrderOpcController' => 'override/controllers/front/OrderOpcController.php', + 'OrderReturnControllerCore' => 'controllers/front/OrderReturnController.php', + 'OrderReturnController' => 'override/controllers/front/OrderReturnController.php', + 'OrderSlipControllerCore' => 'controllers/front/OrderSlipController.php', + 'OrderSlipController' => 'override/controllers/front/OrderSlipController.php', + 'PageNotFoundControllerCore' => 'controllers/front/PageNotFoundController.php', + 'PageNotFoundController' => 'override/controllers/front/PageNotFoundController.php', + 'ParentOrderControllerCore' => 'controllers/front/ParentOrderController.php', + 'ParentOrderController' => 'override/controllers/front/ParentOrderController.php', + 'PasswordControllerCore' => 'controllers/front/PasswordController.php', + 'PasswordController' => 'override/controllers/front/PasswordController.php', + 'PdfInvoiceControllerCore' => 'controllers/front/PdfInvoiceController.php', + 'PdfInvoiceController' => 'override/controllers/front/PdfInvoiceController.php', + 'PdfOrderReturnControllerCore' => 'controllers/front/PdfOrderReturnController.php', + 'PdfOrderReturnController' => 'override/controllers/front/pdfOrderReturnController.php', + 'PdfOrderSlipControllerCore' => 'controllers/front/PdfOrderSlipController.php', + 'PdfOrderSlipController' => 'override/controllers/front/pdfOrderSlipController.php', + 'PricesDropControllerCore' => 'controllers/front/PricesDropController.php', + 'PricesDropController' => 'override/controllers/front/PricesDropController.php', + 'ProductControllerCore' => 'controllers/front/ProductController.php', + 'ProductController' => 'override/controllers/front/ProductController.php', + 'SearchControllerCore' => 'controllers/front/SearchController.php', + 'SearchController' => 'override/controllers/front/SearchController.php', + 'SitemapControllerCore' => 'controllers/front/SitemapController.php', + 'SitemapController' => 'override/controllers/front/SitemapController.php', + 'StatisticsControllerCore' => 'controllers/front/StatisticsController.php', + 'StatisticsController' => 'override/controllers/front/StatisticsController.php', + 'StoresControllerCore' => 'controllers/front/StoresController.php', + 'StoresController' => 'override/controllers/front/StoresController.php', + 'SupplierControllerCore' => 'controllers/front/SupplierController.php', + 'SupplierController' => 'override/controllers/front/SupplierController.php', ); \ No newline at end of file diff --git a/classes/Controller.php b/classes/Controller.php index 005ed7b14..e32c63639 100644 --- a/classes/Controller.php +++ b/classes/Controller.php @@ -42,6 +42,37 @@ abstract class ControllerCore */ public $js_files = array(); + /** + * @var bool check if header will be displayed + */ + protected $displayHeader = false; + + /** + * @var string template name for page content + */ + protected $template; + + /** + * @var string check if footer will be displayed + */ + protected $displayFooter = false; + + /** + * Initialize the page + */ + abstract public function init(); + + /** + * Do the page treatment : post process, ajax process, etc. + * Enter description here ... + */ + abstract public function action(); + + /** + * Display page view + */ + abstract public function display(); + /** * Set default media list for controller */ @@ -64,6 +95,31 @@ abstract class ControllerCore $this->context = Context::getContext(); } + /** + * Start controller process + */ + public function run() + { + $this->init(); + $this->action(); + $this->display(); + } + + public function displayHeader($display = true) + { + $this->displayHeader = $display; + } + + public function displayFooter($display = true) + { + $this->displayFooter = $display; + } + + public function setTemplate($template) + { + $this->template = $template; + } + /** * Add a new stylesheet in page header. * diff --git a/classes/Dispatcher.php b/classes/Dispatcher.php index f72b9458a..b7fe97ffc 100644 --- a/classes/Dispatcher.php +++ b/classes/Dispatcher.php @@ -188,7 +188,7 @@ class DispatcherCore } // Get and instantiate controller $this->getController(); - $controllers = Dispatcher::getControllers(); + $controllers = Dispatcher::getControllers(_PS_CONTROLLER_DIR_); if (!$this->controller) $this->controller = 'index'; if (!isset($controllers[$this->controller])) @@ -423,18 +423,28 @@ class DispatcherCore * * @return array */ - public static function getControllers() + public static function getControllers($dir) { - $controller_files = scandir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'controllers'); - $controllers = array(); + static $controllers; + + $controller_files = scandir($dir); foreach ($controller_files as $controller_filename) - if (substr($controller_filename, -14, 14) == 'Controller.php') + { + if (!in_array($controller_filename, array('.','..','.svn')) AND is_dir($dir.$controller_filename)) + $controllers = self::getControllers($dir.$controller_filename.DIRECTORY_SEPARATOR); + else if (substr($controller_filename, -14, 14) == 'Controller.php') + { + $subdir = str_replace(_PS_CONTROLLER_DIR_,'',$dir); $controllers[strtolower(substr($controller_filename, 0, -14))] = basename($controller_filename, '.php'); + } + } // add default controller $controllers['index'] = 'IndexController'; - $controllers['authentication'] = $controllers['auth']; - $controllers['productscomparison'] = $controllers['compare']; + if (isset($controllers['auth'])) + $controllers['authentication'] = $controllers['auth']; + if (isset($controllers['compare'])) + $controllers['productscomparison'] = $controllers['compare']; return $controllers; } diff --git a/classes/FrontController.php b/classes/FrontController.php index 5633022d7..9d74113a9 100755 --- a/classes/FrontController.php +++ b/classes/FrontController.php @@ -29,11 +29,10 @@ class FrontControllerCore extends ControllerCore { public $errors = array(); - /* Deprecated shortcuts as of 1.5 - Use $context->var instead */ - protected static $smarty; - protected static $cookie; - protected static $link; - protected static $cart; + /** + * @deprecated Deprecated shortcuts as of 1.5 - Use $context->var instead + */ + protected static $smarty, $cookie, $link, $cart; public $iso; @@ -49,15 +48,11 @@ class FrontControllerCore extends ControllerCore protected $restrictedCountry = false; protected $maintenance = false; - protected $id_current_shop; - protected $id_current_group_shop; public static $initialized = false; protected static $currentCustomerGroups; - public $css_files; - public $js_files; public $nb_items_per_page; public function __construct() @@ -68,16 +63,6 @@ class FrontControllerCore extends ControllerCore $useSSL = $this->ssl; } - public function run() - { - $this->init(); - $this->preProcess(); - $this->displayHeader(); - $this->process(); - $this->displayContent(); - $this->displayFooter(); - } - public function init() { /* @@ -91,12 +76,6 @@ class FrontControllerCore extends ControllerCore return; self::$initialized = true; - $this->id_current_shop = Context::getContext()->shop->getID(); - $this->id_current_group_shop = Context::getContext()->shop->getGroupID(); - - $this->css_files = array(); - $this->js_files = array(); - // For compatibility with globals, DEPRECATED as of version 1.5 $css_files = $this->css_files; $js_files = $this->js_files; @@ -201,8 +180,8 @@ class FrontControllerCore extends ControllerCore $cart->id_lang = (int)($this->context->cookie->id_lang); $cart->id_currency = (int)($this->context->cookie->id_currency); $cart->id_guest = (int)($this->context->cookie->id_guest); - $cart->id_group_shop = (int)$this->id_current_group_shop; - $cart->id_shop = $this->id_current_shop; + $cart->id_group_shop = (int)$this->context->shop->getGroupID(); + $cart->id_shop = $this->context->shop->getID(true); if ($this->context->cookie->id_customer) { $cart->id_customer = (int)($this->context->cookie->id_customer); @@ -247,7 +226,9 @@ class FrontControllerCore extends ControllerCore if (!defined('_PS_BASE_URL_SSL_')) define('_PS_BASE_URL_SSL_', Tools::getShopDomainSsl(true)); - $this->canonicalRedirection(); + // Automatically redirect to the canonical URL if needed + if (isset($this->php_self) && !empty($this->php_self) && !Tools::getValue('ajax')) + $this->canonicalRedirection($this->context->link->getPageLink($this->php_self, $this->ssl, $this->context->language->id)); Product::initPricesComputation(); @@ -259,6 +240,7 @@ class FrontControllerCore extends ControllerCore if (Validate::isLoadedObject($country)) $display_tax_label = $country->display_tax_label; } + $this->context->smarty->assign(array( 'link' => $link, 'cart' => $cart, @@ -351,6 +333,64 @@ class FrontControllerCore extends ControllerCore $this->context->cart = $cart; $this->context->currency = $currency; $this->context->controller = $this; + + $this->displayHeader(); + $this->displayFooter(); + } + + public function action() + { + // For retrocompatibility + if (method_exists($this, 'preProcess')) + { + Tools::displayAsDeprecated('Method preProcess() is deprecated in controllers, use method postProcess() instead'); + $this->preProcess(); + } + + if (Tools::getValue('ajax') == 'true') + { + $this->displayHeader(false); + $this->displayFooter(false); + $this->ajaxProcess(); + } + else + $this->postProcess(); + + // Prepare generation of page display + $this->processHeader(); + $this->process(); + $this->processFooter(); + } + + public function ajaxProcess() + { + } + + public function postProcess() + { + } + + public function process() + { + } + + public function display() + { + if ($this->displayHeader) + $this->context->smarty->display(_PS_THEME_DIR_.'header.tpl'); + + if ($this->template) + $this->context->smarty->display($this->template); + + if ($this->displayFooter) + $this->context->smarty->display(_PS_THEME_DIR_.'footer.tpl'); + + // live edit + if (Tools::isSubmit('live_edit') AND $ad = Tools::getValue('ad') AND (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))) + { + $this->context->smarty->assign(array('ad' => $ad, 'live_edit' => true)); + $this->context->smarty->display(_PS_ALL_THEMES_DIR_.'live_edit.tpl'); + } } /* Display a maintenance page if shop is closed */ @@ -372,31 +412,28 @@ class FrontControllerCore extends ControllerCore exit; } - protected function canonicalRedirection() + protected function canonicalRedirection($canonicalURL) { - // Automatically redirect to the canonical URL if needed - if (isset($this->php_self) AND !empty($this->php_self)) + if (!Configuration::get('PS_CANONICAL_REDIRECT')) + return; + + $matchUrl = (($this->ssl && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; + if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', $matchUrl)) { - // $_SERVER['HTTP_HOST'] must be replaced by the real canonical domain + $params = array(); + $excludedKey = array('isolang', 'id_lang', 'controller'); + foreach ($_GET as $key => $value) + if (!in_array($key, $excludedKey)) + $params[] = $key.'='.$value; - $canonicalURL = $this->context->link->getPageLink($this->php_self, $this->ssl, $this->context->language->id); - if (!Tools::getValue('ajax') && !preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', (($this->ssl AND Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) - { - header('HTTP/1.0 301 Moved'); - $params = array(); - $excludedKey = array('isolang', 'id_lang', 'controller'); - foreach ($_GET as $key => $value) - if (!in_array($key, $excludedKey)) - $params[] = $key.'='.$value; - if ($params) - $params = ((strpos($canonicalURL, '?') === false) ? '?' : '&').implode('&', $params); - else - $params = ''; + $strParams = ''; + if ($params) + $strParams = ((strpos($canonicalURL, '?') === false) ? '?' : '&').implode('&', $params); - if (defined('_PS_MODE_DEV_') AND _PS_MODE_DEV_ AND $_SERVER['REQUEST_URI'] != __PS_BASE_URI__) - die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.$params.''); - Tools::redirectLink($canonicalURL.$params); - } + header('HTTP/1.0 301 Moved'); + if (defined('_PS_MODE_DEV_') AND _PS_MODE_DEV_ AND $_SERVER['REQUEST_URI'] != __PS_BASE_URI__) + die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.$strParams.''); + Tools::redirectLink($canonicalURL.$strParams); } } @@ -459,10 +496,6 @@ class FrontControllerCore extends ControllerCore return false; } - public function preProcess() - { - } - public function setMedia() { $this->addCSS(_THEME_CSS_DIR_.'global.css', 'all'); @@ -480,27 +513,14 @@ class FrontControllerCore extends ControllerCore $this->addCSS(_THEME_CSS_DIR_.'rtl.css'); } - public function process() + public function processHeader() { - } - - public function displayContent() - { - Tools::safePostVars(); - $this->context->smarty->assign('errors', $this->errors); - } - - public function displayHeader() - { - if (!self::$initialized) - $this->init(); - // if this function is called from a module, do a fast init - else if (!$this->context) - $this->context = Context::getContext(); - // P3P Policies (http://www.w3.org/TR/2002/REC-P3P-20020416/#compact_policies) header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"'); + Tools::safePostVars(); + $this->context->smarty->assign('errors', $this->errors); + /* Hooks are volontary out the initialize array (need those variables already assigned) */ $this->context->smarty->assign(array( 'time' => time(), @@ -531,39 +551,18 @@ class FrontControllerCore extends ControllerCore $this->context->smarty->assign('css_files', $this->css_files); $this->context->smarty->assign('js_files', array_unique($this->js_files)); - $this->context->smarty->display(_PS_THEME_DIR_.'header.tpl'); } - public function displayFooter() + public function processFooter() { - if (!self::$initialized) - $this->init(); - // if this function is called from a module, do a fast init - else if (!$this->context) - $this->context = Context::getContext(); - $this->context->smarty->assign(array( 'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn', array('cart' => $this->context->cart)), 'HOOK_FOOTER' => Module::hookExec('footer'), - 'content_only' => (int)(Tools::getValue('content_only')))); - $this->context->smarty->display(_PS_THEME_DIR_.'footer.tpl'); - //live edit - if (Tools::isSubmit('live_edit') AND $ad = Tools::getValue('ad') AND (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))) - { - $this->context->smarty->assign(array('ad' => $ad, 'live_edit' => true)); - $this->context->smarty->display(_PS_ALL_THEMES_DIR_.'live_edit.tpl'); - } - else - Tools::displayError(); + )); } public function productSort() { - if (!self::$initialized) - $this->init(); - elseif (!$this->context) - $this->context = Context::getContext(); - // $this->orderBy = Tools::getProductsOrder('by', Tools::getValue('orderby')); // $this->orderWay = Tools::getProductsOrder('way', Tools::getValue('orderway')); // 'orderbydefault' => Tools::getProductsOrder('by'), diff --git a/controllers/AddressController.php b/controllers/front/AddressController.php similarity index 98% rename from controllers/AddressController.php rename to controllers/front/AddressController.php index a02aab404..ff384f800 100644 --- a/controllers/AddressController.php +++ b/controllers/front/AddressController.php @@ -38,9 +38,10 @@ class AddressControllerCore extends FrontController protected $_address; - public function preProcess() + public function init() { - parent::preProcess(); + parent::init(); + if ($back = Tools::getValue('back')) $this->context->smarty->assign('back', Tools::safeOutput($back)); if ($mod = Tools::getValue('mod')) @@ -267,6 +268,8 @@ class AddressControllerCore extends FrontController 'token' => Tools::getToken(false), 'select_address' => (int)(Tools::getValue('select_address')) )); + + $this->setTemplate(_PS_THEME_DIR_.'address.tpl'); } protected function _processAddressFormat() @@ -284,14 +287,6 @@ class AddressControllerCore extends FrontController parent::displayHeader(); } - public function displayContent() - { - parent::displayContent(); - - $this->_processAddressFormat(); - $this->context->smarty->display(_PS_THEME_DIR_.'address.tpl'); - } - public function displayFooter() { if (Tools::getValue('ajax') != 'true') diff --git a/controllers/AddressesController.php b/controllers/front/AddressesController.php similarity index 93% rename from controllers/AddressesController.php rename to controllers/front/AddressesController.php index 611d99523..75b6d257c 100644 --- a/controllers/AddressesController.php +++ b/controllers/front/AddressesController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'addresses.css'); $this->addJS(_THEME_JS_DIR_.'tools.js'); } - + public function process() { - parent::process(); $multipleAddressesFormated = array(); $ordered_fields = array(); $customer = $this->context->customer; if (!Validate::isLoadedObject($customer)) die(Tools::displayError('Customer not found')); - + // Retro Compatibility Theme < 1.4.1 $this->context->smarty->assign('addresses', $customer->getAddresses($this->context->language->id)); - + $customerAddressesDetailed = $customer->getAddresses($this->context->language->id); - + $total = 0; foreach($customerAddressesDetailed as $addressDetailed) { $address = new Address($addressDetailed['id_address']); - + $multipleAddressesFormated[$total] = AddressFormat::getFormattedLayoutData($address); unset($address); ++$total; - + // Retro theme < 1.4.2 $ordered_fields = AddressFormat::getOrderedAddressFields($addressDetailed['id_country'], false, true); } - + // Retro theme 1.4.2 if (($key = array_search('Country:name', $ordered_fields))) $ordered_fields[$key] = 'country'; @@ -84,16 +83,12 @@ class AddressesControllerCore extends FrontController ,'phone_mobile' => 'address_phone_mobile' ,'alias' => 'address_title' )); - + $this->context->smarty->assign(array( 'multipleAddresses' => $multipleAddressesFormated, 'ordered_fields' => $ordered_fields)); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'addresses.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'addresses.tpl'); } } diff --git a/controllers/AttachmentController.php b/controllers/front/AttachmentController.php similarity index 98% rename from controllers/AttachmentController.php rename to controllers/front/AttachmentController.php index eec87be28..a4d789065 100644 --- a/controllers/AttachmentController.php +++ b/controllers/front/AttachmentController.php @@ -29,8 +29,6 @@ class AttachmentControllerCore extends FrontController { public function process() { - parent::process(); - $a = new Attachment(Tools::getValue('id_attachment'), $this->context->language->id); if (!$a->id) Tools::redirect('index.php'); diff --git a/controllers/AuthController.php b/controllers/front/AuthController.php similarity index 98% rename from controllers/AuthController.php rename to controllers/front/AuthController.php index 6d7a94684..404df1172 100644 --- a/controllers/AuthController.php +++ b/controllers/front/AuthController.php @@ -30,9 +30,9 @@ class AuthControllerCore extends FrontController public $ssl = true; public $php_self = 'authentication'; - public function preProcess() + public function init() { - parent::preProcess(); + parent::init(); if ($this->context->customer->isLogged() AND !Tools::isSubmit('ajax')) Tools::redirect('index.php?controller=my-account'); @@ -381,14 +381,9 @@ class AuthControllerCore extends FrontController )); } } - } - public function displayContent() - { $this->processAddressFormat(); - - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'authentication.tpl'); + $this->setTemplate(_PS_THEME_DIR_.'authentication.tpl'); } protected function processAddressFormat() diff --git a/controllers/BestSalesController.php b/controllers/front/BestSalesController.php similarity index 90% rename from controllers/BestSalesController.php rename to controllers/front/BestSalesController.php index 11df6f373..33c186a79 100644 --- a/controllers/BestSalesController.php +++ b/controllers/front/BestSalesController.php @@ -1,6 +1,6 @@ productSort(); $nbProducts = (int)ProductSale::getNbSales(); $this->pagination($nbProducts); - + $this->context->smarty->assign(array( 'products' => ProductSale::getBestSales($this->context->language->id, $this->p - 1, $this->n, $this->orderBy, $this->orderWay), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'nbProducts' => $nbProducts, 'homeSize' => Image::getSize('home') )); + + $this->setTemplate(_PS_THEME_DIR_.'best-sales.tpl'); } public function setMedia() @@ -48,11 +50,5 @@ class BestSalesControllerCore extends FrontController parent::setMedia(); $this->addCSS(_THEME_CSS_DIR_.'product_list.css'); } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'best-sales.tpl'); - } } diff --git a/controllers/CartController.php b/controllers/front/CartController.php similarity index 84% rename from controllers/CartController.php rename to controllers/front/CartController.php index b259025fc..90994f718 100644 --- a/controllers/CartController.php +++ b/controllers/front/CartController.php @@ -1,6 +1,6 @@ init(); - $this->preProcess(); - if (Tools::getValue('ajax') == 'true') + public function ajaxProcess() + { + if (Tools::getIsset('summary')) { - if (Tools::getIsset('summary')) + if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1) { - if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1) - { - if (Validate::isLoadedObject($this->context->customer)) - $groups = $this->context->customer->getGroups(); - else - $groups = array(1); - if ($this->context->cart->id_address_delivery) - $deliveryAddress = new Address($this->context->cart->id_address_delivery); - $result = array('carriers' => Carrier::getCarriersForOrder(Country::getIdZone((isset($deliveryAddress) AND (int)$deliveryAddress->id) ? (int)$deliveryAddress->id_country : (int)Configuration::get('PS_COUNTRY_DEFAULT')), $groups)); - } - $result['summary'] = $this->context->cart->getSummaryDetails(); - $result['customizedDatas'] = Product::getAllCustomizedDatas($this->context->cart->id, null, true); - $result['HOOK_SHOPPING_CART'] = Module::hookExec('shoppingCart', $result['summary']); - $result['HOOK_SHOPPING_CART_EXTRA'] = Module::hookExec('shoppingCartExtra', $result['summary']); - // Display reduced price (or not) without quantity discount - if (Tools::getIsset('getproductprice')) - foreach ($result['summary']['products'] as $key => $product) - $result['summary']['products'][$key]['price_without_quantity_discount'] = Product::getPriceStatic($product['id_product'], !Product::getTaxCalculationMethod(), $product['id_product_attribute']); - die(Tools::jsonEncode($result)); + if (Validate::isLoadedObject($this->context->customer)) + $groups = $this->context->customer->getGroups(); + else + $groups = array(1); + if ($this->context->cart->id_address_delivery) + $deliveryAddress = new Address($this->context->cart->id_address_delivery); + $result = array('carriers' => Carrier::getCarriersForOrder(Country::getIdZone((isset($deliveryAddress) AND (int)$deliveryAddress->id) ? (int)$deliveryAddress->id_country : (int)Configuration::get('PS_COUNTRY_DEFAULT')), $groups)); } - else - $this->includeCartModule(); + $result['summary'] = $this->context->cart->getSummaryDetails(); + $result['customizedDatas'] = Product::getAllCustomizedDatas($this->context->cart->id, null, true); + $result['HOOK_SHOPPING_CART'] = Module::hookExec('shoppingCart', $result['summary']); + $result['HOOK_SHOPPING_CART_EXTRA'] = Module::hookExec('shoppingCartExtra', $result['summary']); + // Display reduced price (or not) without quantity discount + if (Tools::getIsset('getproductprice')) + foreach ($result['summary']['products'] as $key => $product) + $result['summary']['products'][$key]['price_without_quantity_discount'] = Product::getPriceStatic($product['id_product'], !Product::getTaxCalculationMethod(), $product['id_product_attribute']); + die(Tools::jsonEncode($result)); } else - { - $this->setMedia(); - $this->displayHeader(); - $this->process(); - $this->displayContent(); - $this->displayFooter(); - } + $this->includeCartModule(); } public function includeCartModule() { - require_once(_PS_MODULE_DIR_.'/blockcart/blockcart-ajax.php'); + require_once(_PS_MODULE_DIR_.'/blockcart/blockcart-ajax.php'); } - public function preProcess() + public function init() { - parent::preProcess(); + parent::init(); + $orderTotal = $this->context->cart->getOrderTotal(true, Cart::ONLY_PRODUCTS); $this->cartDiscounts = $this->context->cart->getDiscounts(); foreach ($this->cartDiscounts AS $k => $this->cartDiscount) @@ -165,7 +152,7 @@ class CartControllerCore extends FrontController die('{"hasError" : true, "errors" : ["'.Tools::displayError('Cannot add this product because current voucher does not allow additional discounts.').'"]}'); else $this->errors[] = Tools::displayError('Cannot add this product because current voucher does not allow additional discounts.'); - + } } if (!sizeof($this->errors)) @@ -254,11 +241,7 @@ class CartControllerCore extends FrontController } } - } - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'errors.tpl'); + $this->setTemplate(_PS_THEME_DIR_.'errors.tpl'); } } diff --git a/controllers/CategoryController.php b/controllers/front/CategoryController.php similarity index 85% rename from controllers/CategoryController.php rename to controllers/front/CategoryController.php index 3b50ff69a..5e835cc74 100644 --- a/controllers/CategoryController.php +++ b/controllers/front/CategoryController.php @@ -48,30 +48,17 @@ class CategoryControllerCore extends FrontController parent::displayHeader(); $this->productSort(); } - + public function canonicalRedirection() { - if (Configuration::get('PS_CANONICAL_REDIRECT') && !Tools::getValue('noredirect')) - { - // Automatically redirect to the canonical URL if the current in is the right one - // $_SERVER['HTTP_HOST'] must be replaced by the real canonical domain - if (Validate::isLoadedObject($this->category)) - { - $currentURL = $this->context->link->getCategoryLink($this->category); - $currentURL = preg_replace('/[?&].*$/', '', $currentURL); - if (!preg_match('/^'.Tools::pRegexp($currentURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) - { - header('HTTP/1.0 301 Moved'); - if (defined('_PS_MODE_DEV_') AND _PS_MODE_DEV_ ) - die('[Debug] This page has moved
Please use the following URL instead: '.$currentURL.''); - Tools::redirectLink($currentURL); - } - } - } + if (!Tools::getValue('noredirect') && Validate::isLoadedObject($this->category)) + parent::canonicalRedirection($this->context->link->getCategoryLink($this->category)); } - public function preProcess() + public function init() { + parent::init(); + if ($id_category = (int)Tools::getValue('id_category')) $this->category = new Category($id_category, $this->context->language->id); if (!Validate::isLoadedObject($this->category)) @@ -81,8 +68,6 @@ class CategoryControllerCore extends FrontController } else $this->canonicalRedirection(); - - parent::preProcess(); } public function process() @@ -105,7 +90,7 @@ class CategoryControllerCore extends FrontController /* Scenes (could be externalised to another controler if you need them */ $scenes = Scene::getScenes($this->category->id, $this->context->language->id, true, false); $this->context->smarty->assign('scenes', $scenes); - + /* Scenes images formats */ if (sizeof($scenes)) { @@ -125,8 +110,8 @@ class CategoryControllerCore extends FrontController $this->category->description = Tools::nl2br($this->category->description); $subCategories = $this->category->getSubCategories($this->context->language->id); - $this->context->smarty->assign('category', $this->category); - + $this->context->smarty->assign('category', $this->category); + if (isset($subCategories) AND !empty($subCategories) AND $subCategories) { $this->context->smarty->assign('subcategories', $subCategories); @@ -150,9 +135,9 @@ class CategoryControllerCore extends FrontController 'thumbSceneSize' => Image::getSize('thumb_scene'), 'homeSize' => Image::getSize('home') )); - + if (isset($this->context->customer->id)) - $this->context->smarty->assign('compareProducts', CompareProduct::getCustomerCompareProducts($this->context->customer->id)); + $this->context->smarty->assign('compareProducts', CompareProduct::getCustomerCompareProducts($this->context->customer->id)); elseif (isset($this->context->customer->id_guest)) $this->context->smarty->assign('compareProducts', CompareProduct::getGuestCompareProducts($this->context->customer->id_guest)); } @@ -163,6 +148,8 @@ class CategoryControllerCore extends FrontController 'comparator_max_item' => (int)(Configuration::get('PS_COMPARATOR_MAX_ITEM')), 'suppliers' => Supplier::getSuppliers() )); + + $this->setTemplate(_PS_THEME_DIR_.'category.tpl'); } public function productListAssign() @@ -180,11 +167,5 @@ class CategoryControllerCore extends FrontController $this->pagination((int)$this->nbProducts); self::$smarty->assign('nb_products', (int)$this->nbProducts); } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'category.tpl'); - } } diff --git a/controllers/ChangeCurrencyController.php b/controllers/front/ChangeCurrencyController.php similarity index 92% rename from controllers/ChangeCurrencyController.php rename to controllers/front/ChangeCurrencyController.php index 0257414fb..1c8c3e776 100644 --- a/controllers/ChangeCurrencyController.php +++ b/controllers/front/ChangeCurrencyController.php @@ -1,6 +1,6 @@ deleted) { @@ -39,10 +37,4 @@ class ChangeCurrencyControllerCore extends FrontController } die('0'); } - - public function run() - { - $this->init(); - $this->process(); - } } \ No newline at end of file diff --git a/controllers/CmsController.php b/controllers/front/CmsController.php similarity index 68% rename from controllers/CmsController.php rename to controllers/front/CmsController.php index d4ccbfcd9..7d73635b7 100644 --- a/controllers/CmsController.php +++ b/controllers/front/CmsController.php @@ -1,6 +1,6 @@ cms) AND $canonicalURL = $this->context->link->getCMSLink($this->cms)) - if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) - { - header('HTTP/1.0 301 Moved'); - if (_PS_MODE_DEV_) - die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.''); - Tools::redirectLink($canonicalURL); - } - if (Validate::isLoadedObject($this->cms_category) AND $canonicalURL = $this->context->link->getCMSCategoryLink($this->cms_category)) - if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) - { - header('HTTP/1.0 301 Moved'); - if (_PS_MODE_DEV_ ) - die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.''); - Tools::redirectLink($canonicalURL); - } - } + if (Validate::isLoadedObject($this->cms) && ($canonicalURL = $this->context->link->getCMSLink($this->cms))) + parent::canonicalRedirection($canonicalURL); + else if (Validate::isLoadedObject($this->cms_category) && ($canonicalURL = $this->context->link->getCMSCategoryLink($this->cms_category))) + parent::canonicalRedirection($canonicalURL); } - - public function preProcess() + + public function init() { + parent::init(); + if ($id_cms = (int)Tools::getValue('id_cms')) - $this->cms = new CMS($id_cms, $this->context->language->id); + $this->cms = new CMS($id_cms, $this->context->language->id); elseif ($id_cms_category = (int)Tools::getValue('id_cms_category')) - $this->cms_category = new CMSCategory($id_cms_category, $this->context->language->id); + $this->cms_category = new CMSCategory($id_cms_category, $this->context->language->id); $this->canonicalRedirection(); - - parent::preProcess(); - + /* assignCase (1 = CMS page, 2 = CMS category) */ if (Validate::isLoadedObject($this->cms) AND ($this->cms->isAssociatedToShop() AND $this->cms->active OR (Tools::getValue('adtoken') == Tools::encrypt('PreviewCMS'.$this->cms->id) AND file_exists(dirname(__FILE__).'/../'.Tools::getValue('ad').'/ajax.php')))) $this->assignCase = 1; @@ -76,17 +58,17 @@ class CmsControllerCore extends FrontController else Tools::redirect('index.php?controller=404'); } - + public function setMedia() { parent::setMedia(); - + if ($this->assignCase == 1) $this->addJS(_THEME_JS_DIR_.'cms.js'); - + $this->addCSS(_THEME_CSS_DIR_.'cms.css'); } - + public function process() { parent::process(); @@ -111,11 +93,7 @@ class CmsControllerCore extends FrontController 'path' => ($this->cms_category->id !== 1) ? Tools::getPath($this->cms_category->id, $this->cms_category->name, false, 'CMS') : '', )); } - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'cms.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'cms.tpl'); } } diff --git a/controllers/CompareController.php b/controllers/front/CompareController.php similarity index 94% rename from controllers/CompareController.php rename to controllers/front/CompareController.php index 2fddb3215..6670e5122 100644 --- a/controllers/CompareController.php +++ b/controllers/front/CompareController.php @@ -28,23 +28,23 @@ class CompareControllerCore extends FrontController { public $php_self = 'products-comparison'; - + public function setMedia() { parent::setMedia(); $this->addCSS(_THEME_CSS_DIR_.'/comparator.css'); - + if (Configuration::get('PS_COMPARATOR_MAX_ITEM') > 0) $this->addJS(_THEME_JS_DIR_.'products-comparison.js'); } - public function preProcess() + public function init() { - parent::preProcess(); - + parent::init(); + //Add or remove product with Ajax if (Tools::getValue('ajax') AND Tools::getValue('id_product') AND Tools::getValue('action')) - { + { if (Tools::getValue('action') == 'add') { if (isset($this->context->customer->id)) @@ -53,7 +53,7 @@ class CompareControllerCore extends FrontController CompareProduct::addCustomerCompareProduct((int)$this->context->customer->id, (int)Tools::getValue('id_product')); else die('0'); - } + } else { if ((isset($this->context->customer->id_guest) AND CompareProduct::getGuestNumberProducts($this->context->customer->id_guest) < Configuration::get('PS_COMPARATOR_MAX_ITEM'))) @@ -65,7 +65,7 @@ class CompareControllerCore extends FrontController elseif (Tools::getValue('action') == 'remove') { if (isset($this->context->customer->id)) - CompareProduct::removeCustomerCompareProduct((int)$this->context->customer->id, (int)Tools::getValue('id_product')); + CompareProduct::removeCustomerCompareProduct((int)$this->context->customer->id, (int)Tools::getValue('id_product')); elseif (isset($this->context->customer->id_guest)) CompareProduct::removeGuestCompareProduct((int)$this->context->customer->id_guest, (int)Tools::getValue('id_product')); else @@ -73,18 +73,16 @@ class CompareControllerCore extends FrontController } else die('0'); - + die('1'); - } + } } public function process() { - parent::process(); - //Clean compare product table CompareProduct::cleanCompareProducts('week'); - + $hasProduct = false; if (!Configuration::get('PS_COMPARATOR_MAX_ITEM')) @@ -161,12 +159,8 @@ class CompareControllerCore extends FrontController } } $this->context->smarty->assign('hasProduct', $hasProduct); - } - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'products-comparison.tpl'); + $this->setTemplate(_PS_THEME_DIR_.'products-comparison.tpl'); } } diff --git a/controllers/ContactController.php b/controllers/front/ContactController.php similarity index 93% rename from controllers/ContactController.php rename to controllers/front/ContactController.php index 95e4ffaa6..f61159c1c 100644 --- a/controllers/ContactController.php +++ b/controllers/front/ContactController.php @@ -27,16 +27,12 @@ class ContactControllerCore extends FrontController { - public function __construct() - { - $this->php_self = 'contact'; - $this->ssl = true; - parent::__construct(); - } + public $php_self = 'contact'; + public $ssl = true; - public function preProcess() + public function init() { - parent::preProcess(); + parent::init(); if ($this->context->customer->isLogged()) { @@ -105,7 +101,7 @@ class ContactControllerCore extends FrontController $id_customer_thread = (int)Tools::getValue('id_customer_thread') AND (int)Db::getInstance()->getValue(' SELECT cm.id_customer_thread FROM '._DB_PREFIX_.'customer_thread cm - WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->id_current_shop.' AND token = \''.pSQL(Tools::getValue('token')).'\'') + WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->getID(true).' AND token = \''.pSQL(Tools::getValue('token')).'\'') ) OR ( $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($from, (int)Tools::getValue('id_order')) ))) @@ -113,7 +109,7 @@ class ContactControllerCore extends FrontController $fields = Db::getInstance()->ExecuteS(' SELECT cm.id_customer_thread, cm.id_contact, cm.id_customer, cm.id_order, cm.id_product, cm.email FROM '._DB_PREFIX_.'customer_thread cm - WHERE email = \''.pSQL($from).'\' AND cm.id_shop = '.(int)$this->id_current_shop.' AND ('. + WHERE email = \''.pSQL($from).'\' AND cm.id_shop = '.(int)$this->context->shop->getID(true).' AND ('. ($customer->id ? 'id_customer = '.(int)($customer->id).' OR ' : '').' id_order = '.(int)(Tools::getValue('id_order')).')'); $score = 0; @@ -140,7 +136,7 @@ class ContactControllerCore extends FrontController $old_message = Db::getInstance()->getValue(' SELECT cm.message FROM '._DB_PREFIX_.'customer_message cm LEFT JOIN '._DB_PREFIX_.'customer_thread cc on (cm.id_customer_thread = cc.id_customer_thread) - WHERE cc.id_customer_thread = '.(int)($id_customer_thread).' AND cc.id_shop = '.(int)$this->id_current_shop.' + WHERE cc.id_customer_thread = '.(int)($id_customer_thread).' AND cc.id_shop = '.(int)$this->context->shop->getID(true).' ORDER BY cm.date_add DESC'); if ($old_message == htmlentities($message, ENT_COMPAT, 'UTF-8')) { @@ -176,7 +172,7 @@ class ContactControllerCore extends FrontController $ct = new CustomerThread(); if (isset($customer->id)) $ct->id_customer = (int)($customer->id); - $ct->id_shop = (int)$this->id_current_shop; + $ct->id_shop = (int)$this->context->shop->getID(true); if ($id_order = (int)Tools::getValue('id_order')) $ct->id_order = $id_order; if ($id_product = (int)Tools::getValue('id_product')) @@ -224,8 +220,6 @@ class ContactControllerCore extends FrontController public function process() { - parent::process(); - $email = Tools::safeOutput(Tools::getValue('from', ((isset($this->context->cookie) AND isset($this->context->cookie->email) AND Validate::isEmail($this->context->cookie->email)) ? $this->context->cookie->email : ''))); $this->context->smarty->assign(array( 'errors' => $this->errors, @@ -238,19 +232,17 @@ class ContactControllerCore extends FrontController { $customerThread = Db::getInstance()->getRow(' SELECT cm.* FROM '._DB_PREFIX_.'customer_thread cm - WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->id_current_shop.' AND token = \''.pSQL($token).'\''); + WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->getID(true).' AND token = \''.pSQL($token).'\''); $this->context->smarty->assign('customerThread', $customerThread); } $this->context->smarty->assign(array('contacts' => Contact::getContacts($this->context->language->id), 'message' => html_entity_decode(Tools::getValue('message')) )); - } - public function displayContent() - { - $_POST = array_merge($_POST, $_GET); - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'contact-form.tpl'); + // @todo I don't know who did this code, but it's not me + + + $this->setTemplate(_PS_THEME_DIR_.'contact-form.tpl'); } } diff --git a/controllers/DiscountController.php b/controllers/front/DiscountController.php similarity index 89% rename from controllers/DiscountController.php rename to controllers/front/DiscountController.php index 9c72879b3..8520d7c33 100644 --- a/controllers/DiscountController.php +++ b/controllers/front/DiscountController.php @@ -1,6 +1,6 @@ context->language->id, $this->context->customer->id, true, false); $nbDiscounts = 0; foreach ($discounts AS $discount) @@ -43,12 +41,7 @@ class DiscountControllerCore extends FrontController $nbDiscounts++; $this->context->smarty->assign(array('nbDiscounts' => (int)($nbDiscounts), 'discount' => $discounts)); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'discount.tpl'); + $this->setTemplate(_PS_THEME_DIR_.'discount.tpl'); } } diff --git a/controllers/GetFileController.php b/controllers/front/GetFileController.php similarity index 98% rename from controllers/GetFileController.php rename to controllers/front/GetFileController.php index ed1df2ca0..cd8a7baa7 100644 --- a/controllers/GetFileController.php +++ b/controllers/front/GetFileController.php @@ -1,6 +1,6 @@ init(); - $this->preProcess(); - $this->process(); - } - public function process() { + $this->displayHeader(false); + $this->displayFooter(false); + if (isset($this->context->employee) && $this->context->employee->isLoggedBack() AND Tools::getValue('file')) { /* Admin can directly access to file */ @@ -52,7 +48,7 @@ class GetFileControllerCore extends FrontController else $filename = 'file'; } - + if (!file_exists($file)) Tools::redirect('index.php'); } @@ -60,7 +56,7 @@ class GetFileControllerCore extends FrontController { if (!($key = Tools::getValue('key'))) $this->displayCustomError('Invalid key.'); - + Tools::setCookieLanguage(); if (!$this->context->customer->isLogged() AND !Tools::getValue('secure_key') AND !Tools::getValue('id_order')) Tools::redirect('index.php?controller=authentication&back=get-file.php&key='.$key); @@ -72,45 +68,45 @@ class GetFileControllerCore extends FrontController if ($order->secure_key != Tools::getValue('secure_key')) $this->displayCustomError('Invalid key.'); } - + /* Key format: - */ $tmp = explode('-', $key); if (sizeof($tmp) != 2) $this->displayCustomError('Invalid key.'); - + $filename = $tmp[0]; $hash = $tmp[1]; - + if (!($info = OrderDetail::getDownloadFromHash($hash))) $this->displayCustomError('This product does not exist in our store.'); - + /* Product no more present in catalog */ if (!isset($info['id_product_download']) OR empty($info['id_product_download'])) $this->displayCustomError('This product has been deleted.'); - + if (!file_exists(_PS_DOWNLOAD_DIR_.$filename)) $this->displayCustomError('This file no longer exists.'); - + $now = time(); - + $product_deadline = strtotime($info['download_deadline']); if ($now > $product_deadline AND $info['download_deadline'] != '0000-00-00 00:00:00') $this->displayCustomError('The product deadline is in the past.'); - + $customer_deadline = strtotime($info['date_expiration']); if ($now > $customer_deadline AND $info['date_expiration'] != '0000-00-00 00:00:00') $this->displayCustomError('Expiration date exceeded'); - + if ($info['download_nb'] >= $info['nb_downloadable'] AND $info['nb_downloadable']) $this->displayCustomError('You have reached the maximum number of allowed downloads.'); - + /* Access is authorized -> increment download value for the customer */ OrderDetail::incrementDownload($info['id_order_detail']); - + $file = _PS_DOWNLOAD_DIR_.$info['physically_filename']; $filename = $info['display_filename']; } - + /* Detect mime content type */ $mimeType = false; if (function_exists('finfo_open')) @@ -122,20 +118,20 @@ class GetFileControllerCore extends FrontController elseif (function_exists('mime_content_type')) $mimeType = @mime_content_type($file); elseif (function_exists('exec')) - { + { $mimeType = trim(@exec('file -b --mime-type '.escapeshellarg($file))); if (!$mimeType) $mimeType = trim(@exec('file --mime '.escapeshellarg($file))); if (!$mimeType) $mimeType = trim(@exec('file -bi '.escapeshellarg($file))); } - + if (empty($mimeType)) { $bName = basename($filename); $bName = explode('.', $bName); $bName = strtolower($bName[count($bName) - 1]); - + $mimeTypes = array( 'ez' => 'application/andrew-inset', 'hqx' => 'application/mac-binhex40', @@ -264,14 +260,14 @@ class GetFileControllerCore extends FrontController 'avi' => 'video/x-msvideo', 'movie' => 'video/x-sgi-movie', 'ice' => 'x-conference-xcooltalk'); - + if (isset($mimeTypes[$bName])) $mimeType = $mimeTypes[$bName]; else $mimeType = 'application/octet-stream'; } - - + + /* Set headers for download */ header('Content-Transfer-Encoding: binary'); header('Content-Type: '.$mimeType); @@ -281,10 +277,10 @@ class GetFileControllerCore extends FrontController $fp = fopen($file, 'rb'); while (!feof($fp)) echo fgets($fp, 16384); - + exit; } - + protected function displayCustomError($msg) { $translations = array( diff --git a/controllers/GuestTrackingController.php b/controllers/front/GuestTrackingController.php similarity index 94% rename from controllers/GuestTrackingController.php rename to controllers/front/GuestTrackingController.php index e4c5a13e5..5834c17da 100644 --- a/controllers/GuestTrackingController.php +++ b/controllers/front/GuestTrackingController.php @@ -1,6 +1,6 @@ context->customer->isLogged()) Tools::redirect('index.php?controller=history'); } - + public function process() { - global $link; - - parent::process(); - if ($id_order = Tools::getValue('id_order') AND $email = Tools::getValue('email')) { $order = new Order((int)$id_order); @@ -59,17 +55,17 @@ class GuestTrackingControllerCore extends FrontController $addressDelivery = new Address((int)($order->id_address_delivery)); $inv_adr_fields = AddressFormat::getOrderedAddressFields($addressInvoice->id_country); $dlv_adr_fields = AddressFormat::getOrderedAddressFields($addressDelivery->id_country); - + $invoiceAddressFormatedValues = AddressFormat::getFormattedAddressFieldsValues($addressInvoice, $inv_adr_fields); $deliveryAddressFormatedValues = AddressFormat::getFormattedAddressFieldsValues($addressDelivery, $dlv_adr_fields); - + if ($order->total_discounts > 0) $this->context->smarty->assign('total_old', (float)($order->total_paid - $order->total_discounts)); $products = $order->getProducts(); $customizedDatas = Product::getAllCustomizedDatas((int)($order->id_cart)); Product::addCustomizationPrice($products, $customizedDatas); - - $this->processAddressFormat($addressDelivery, $addressInvoice); + + $this->processAddressFormat($addressDelivery, $addressInvoice); $this->context->smarty->assign(array( 'shop_name' => Configuration::get('PS_SHOP_NAME'), 'order' => $order, @@ -98,7 +94,7 @@ class GuestTrackingControllerCore extends FrontController $this->context->smarty->assign('followup', str_replace('@', $order->shipping_number, $carrier->url)); $this->context->smarty->assign('HOOK_ORDERDETAILDISPLAYED', Module::hookExec('orderDetailDisplayed', array('order' => $order))); Module::hookExec('OrderDetail', array('carrier' => $carrier, 'order' => $order)); - + if (Tools::isSubmit('submitTransformGuestToCustomer')) { $customer = new Customer((int)$order->id_customer); @@ -116,27 +112,22 @@ class GuestTrackingControllerCore extends FrontController /* Handle brute force attacks */ sleep(1); } - + $this->context->smarty->assign(array( - 'action' => $link->getPageLink('guest-tracking.php'), + 'action' => $this->context->link->getPageLink('guest-tracking.php'), 'errors' => $this->errors )); + + $this->setTemplate(_PS_THEME_DIR_.'guest-tracking.tpl'); } - + public function setMedia() { parent::setMedia(); - + $this->addCSS(_THEME_CSS_DIR_.'history.css'); $this->addCSS(_THEME_CSS_DIR_.'addresses.css'); } - - public function displayContent() - { - parent::displayContent(); - - $this->context->smarty->display(_PS_THEME_DIR_.'guest-tracking.tpl'); - } private function processAddressFormat(Address $delivery, Address $invoice) { diff --git a/controllers/HistoryController.php b/controllers/front/HistoryController.php similarity index 88% rename from controllers/HistoryController.php rename to controllers/front/HistoryController.php index 181ee0b1a..9d536da95 100644 --- a/controllers/HistoryController.php +++ b/controllers/front/HistoryController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'history.css'); $this->addCSS(_THEME_CSS_DIR_.'addresses.css'); $this->addJS(array( - _PS_JS_DIR_.'jquery/jquery.scrollTo-1.4.2-min.js', + _PS_JS_DIR_.'jquery/jquery.scrollTo-1.4.2-min.js', _THEME_JS_DIR_.'history.js', _THEME_JS_DIR_.'tools.js')); } - + public function process() { - parent::process(); - if ($orders = Order::getCustomerOrders($this->context->customer->id)) foreach ($orders AS &$order) { @@ -59,12 +57,8 @@ class HistoryControllerCore extends FrontController 'invoiceAllowed' => (int)(Configuration::get('PS_INVOICE')), 'slowValidation' => Tools::isSubmit('slowvalidation') )); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'history.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'history.tpl'); } } diff --git a/controllers/IdentityController.php b/controllers/front/IdentityController.php similarity index 95% rename from controllers/IdentityController.php rename to controllers/front/IdentityController.php index f864c05e7..6aeee268c 100644 --- a/controllers/IdentityController.php +++ b/controllers/front/IdentityController.php @@ -32,10 +32,8 @@ class IdentityControllerCore extends FrontController public $authRedirection = 'identity'; public $ssl = true; - public function preProcess() + public function process() { - parent::preProcess(); - $customer = $this->context->customer; if (sizeof($_POST)) @@ -107,6 +105,8 @@ class IdentityControllerCore extends FrontController )); $this->context->smarty->assign('newsletter', (int)Module::getInstanceByName('blocknewsletter')->active); + + $this->setTemplate(_PS_THEME_DIR_.'identity.tpl'); } public function setMedia() @@ -115,11 +115,4 @@ class IdentityControllerCore extends FrontController $this->addCSS(_THEME_CSS_DIR_.'identity.css'); } - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'identity.tpl'); - } } - - diff --git a/controllers/IndexController.php b/controllers/front/IndexController.php similarity index 80% rename from controllers/IndexController.php rename to controllers/front/IndexController.php index a4c13f54a..8bb9add64 100644 --- a/controllers/IndexController.php +++ b/controllers/front/IndexController.php @@ -1,6 +1,6 @@ php_self = 'index'; - - parent::__construct(); - } - + public $php_self = 'index'; + public function process() { - parent::process(); $this->context->smarty->assign('HOOK_HOME', Module::hookExec('home')); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'index.tpl'); + $this->setTemplate(_PS_THEME_DIR_.'index.tpl'); } } diff --git a/controllers/ManufacturerController.php b/controllers/front/ManufacturerController.php similarity index 81% rename from controllers/ManufacturerController.php rename to controllers/front/ManufacturerController.php index 5ecc6e8bb..f096932a6 100644 --- a/controllers/ManufacturerController.php +++ b/controllers/front/ManufacturerController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'product_list.css'); } - + public function canonicalRedirection() { if (Validate::isLoadedObject($this->manufacturer)) - { - $canonicalURL = $this->context->link->getManufacturerLink($this->manufacturer); - if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) - { - header('HTTP/1.0 301 Moved'); - if (defined('_PS_MODE_DEV_') AND _PS_MODE_DEV_) - die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.''); - Tools::redirectLink($canonicalURL); - } - } + parent::canonicalRedirection($this->context->link->getManufacturerLink($this->manufacturer)); } - - public function preProcess() + + public function init() { + parent::init(); + if ($id_manufacturer = Tools::getValue('id_manufacturer')) { $this->manufacturer = new Manufacturer((int)$id_manufacturer, $this->context->language->id); @@ -65,10 +58,8 @@ class ManufacturerControllerCore extends FrontController else $this->canonicalRedirection(); } - - parent::preProcess(); } - + public function process() { if (Validate::isLoadedObject($this->manufacturer) AND $this->manufacturer->active AND $this->manufacturer->isAssociatedToGroupShop()) @@ -80,6 +71,8 @@ class ManufacturerControllerCore extends FrontController 'products' => $this->manufacturer->getProducts($this->manufacturer->id, $this->context->language->id, (int)$this->p, (int)$this->n, $this->orderBy, $this->orderWay), 'path' => ($this->manufacturer->active ? Tools::safeOutput($this->manufacturer->name) : ''), 'manufacturer' => $this->manufacturer)); + + $this->setTemplate(_PS_THEME_DIR_.'manufacturer.tpl'); } else { @@ -89,7 +82,7 @@ class ManufacturerControllerCore extends FrontController $data = Manufacturer::getManufacturers(true, $this->context->language->id, true, false, false, false, $id_current_group_shop); $nbProducts = count($data); $this->pagination($nbProducts); - + $manufacturers = Manufacturer::getManufacturers(true, $this->context->language->id, true, $this->p, $this->n, false, $id_current_group_shop); $imgDir = _PS_MANU_IMG_DIR_; foreach ($data AS &$item) @@ -105,22 +98,14 @@ class ManufacturerControllerCore extends FrontController } else $this->context->smarty->assign('nbManufacturers', 0); + + $this->setTemplate(_PS_THEME_DIR_.'manufacturer-list.tpl'); } } - + public function displayHeader() { parent::displayHeader(); $this->productSort(); } - - public function displayContent() - { - parent::displayContent(); - if ($this->manufacturer) - $this->context->smarty->display(_PS_THEME_DIR_.'manufacturer.tpl'); - else - $this->context->smarty->display(_PS_THEME_DIR_.'manufacturer-list.tpl'); - } - } diff --git a/controllers/MyAccountController.php b/controllers/front/MyAccountController.php similarity index 89% rename from controllers/MyAccountController.php rename to controllers/front/MyAccountController.php index dc9dc5800..e10b3264f 100644 --- a/controllers/MyAccountController.php +++ b/controllers/front/MyAccountController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'my-account.css'); } - + public function process() { - parent::process(); - $this->context->smarty->assign(array( 'voucherAllowed' => (int)(Configuration::get('PS_VOUCHERS')), 'returnAllowed' => (int)(Configuration::get('PS_ORDER_RETURN')) )); $this->context->smarty->assign('HOOK_CUSTOMER_ACCOUNT', Module::hookExec('customerAccount')); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'my-account.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'my-account.tpl'); } } diff --git a/controllers/NewProductsController.php b/controllers/front/NewProductsController.php similarity index 88% rename from controllers/NewProductsController.php rename to controllers/front/NewProductsController.php index f65b3c464..0cd337dc9 100644 --- a/controllers/NewProductsController.php +++ b/controllers/front/NewProductsController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'product_list.css'); } - + public function process() { - parent::process(); - $this->productSort(); $nbProducts = (int)Product::getNewProducts($this->context->language->id, (isset($this->p) ? (int)($this->p) - 1 : NULL), (isset($this->n) ? (int)($this->n) : NULL), true); $this->pagination($nbProducts); - + $this->context->smarty->assign(array( 'products' => Product::getNewProducts($this->context->language->id, (int)($this->p) - 1, (int)($this->n), false, $this->orderBy, $this->orderWay), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'nbProducts' => (int)($nbProducts), - 'homeSize' => Image::getSize('home') + 'homeSize' => Image::getSize('home') )); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'new-products.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'new-products.tpl'); } } diff --git a/controllers/OrderConfirmationController.php b/controllers/front/OrderConfirmationController.php similarity index 91% rename from controllers/OrderConfirmationController.php rename to controllers/front/OrderConfirmationController.php index 8d2c20b67..504ab5ef5 100644 --- a/controllers/OrderConfirmationController.php +++ b/controllers/front/OrderConfirmationController.php @@ -1,6 +1,6 @@ id_cart = (int)(Tools::getValue('id_cart', 0)); - + /* check if the cart has been made by a Guest customer, for redirect link */ if (Cart::isGuestCartByCartId($this->id_cart)) $redirectLink = 'index.php?controller=guest-tracking'; else $redirectLink = 'index.php?controller=history'; - + $this->id_module = (int)(Tools::getValue('id_module', 0)); $this->id_order = Order::getOrderByCartId((int)($this->id_cart)); $this->secure_key = Tools::getValue('key', false); @@ -59,16 +59,15 @@ class OrderConfirmationControllerCore extends FrontController if ($order->payment != $module->displayName) Tools::redirect($redirectLink); } - + public function process() { - parent::process(); $this->context->smarty->assign(array( 'is_guest' => $this->context->customer->is_guest, 'HOOK_ORDER_CONFIRMATION' => Hook::orderConfirmation((int)($this->id_order)), 'HOOK_PAYMENT_RETURN' => Hook::paymentReturn((int)($this->id_order), (int)($this->id_module)) )); - + if ($this->context->customer->is_guest) { $this->context->smarty->assign(array( @@ -78,12 +77,8 @@ class OrderConfirmationControllerCore extends FrontController /* If guest we clear the cookie for security reason */ $this->context->customer->mylogout(); } - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'order-confirmation.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'order-confirmation.tpl'); } } diff --git a/controllers/OrderController.php b/controllers/front/OrderController.php similarity index 92% rename from controllers/OrderController.php rename to controllers/front/OrderController.php index 5d4afacb6..53d111399 100644 --- a/controllers/OrderController.php +++ b/controllers/front/OrderController.php @@ -31,18 +31,13 @@ class OrderControllerCore extends ParentOrderController public function init() { + global $isVirtualCart, $orderTotal; + parent::init(); $this->step = (int)(Tools::getValue('step')); if (!$this->nbProducts) $this->step = -1; - } - - public function preProcess() - { - global $isVirtualCart, $orderTotal; - - parent::preProcess(); /* If some products have disappear */ if (!$this->context->cart->checkQuantities()) @@ -78,23 +73,28 @@ class OrderControllerCore extends ParentOrderController public function process() { - parent::process(); - /* 4 steps to the order */ switch ((int)$this->step) { case -1; $this->context->smarty->assign('empty', 1); - break; + $this->setTemplate(_PS_THEME_DIR_.'shopping-cart.tpl'); + break; + case 1: $this->_assignAddress(); - break; + $this->processAddressFormat(); + $this->setTemplate(_PS_THEME_DIR_.'order-address.tpl'); + break; + case 2: if(Tools::isSubmit('processAddress')) $this->processAddress(); $this->autoStep(); $this->_assignCarrier(); - break; + $this->setTemplate(_PS_THEME_DIR_.'order-carrier.tpl'); + break; + case 3: //Test that the conditions (so active) were accepted by the customer $cgv = Tools::getValue('cgv'); @@ -119,11 +119,21 @@ class OrderControllerCore extends ParentOrderController $this->_assignPayment(); // assign some informations to display cart $this->_assignSummaryInformations(); - break; + $this->setTemplate(_PS_THEME_DIR_.'order-payment.tpl'); + break; + default: $this->_assignSummaryInformations(); - break; + $this->setTemplate(_PS_THEME_DIR_.'shopping-cart.tpl'); + break; } + + $this->context->smarty->assign(array( + 'currencySign' => $this->context->currency->sign, + 'currencyRate' => $this->context->currency->conversion_rate, + 'currencyFormat' => $this->context->currency->format, + 'currencyBlank' => $this->context->currency->blank, + )); } private function processAddressFormat() @@ -139,38 +149,6 @@ class OrderControllerCore extends ParentOrderController 'dlv_adr_fields' => $deliveryAddressFields)); } - public function displayContent() - { - parent::displayContent(); - - $this->context->smarty->assign(array( - 'currencySign' => $this->context->currency->sign, - 'currencyRate' => $this->context->currency->conversion_rate, - 'currencyFormat' => $this->context->currency->format, - 'currencyBlank' => $this->context->currency->blank, - )); - - switch ((int)$this->step) - { - case -1: - $this->context->smarty->display(_PS_THEME_DIR_.'shopping-cart.tpl'); - break; - case 1: - $this->processAddressFormat(); - $this->context->smarty->display(_PS_THEME_DIR_.'order-address.tpl'); - break; - case 2: - $this->context->smarty->display(_PS_THEME_DIR_.'order-carrier.tpl'); - break; - case 3: - $this->context->smarty->display(_PS_THEME_DIR_.'order-payment.tpl'); - break; - default: - $this->context->smarty->display(_PS_THEME_DIR_.'shopping-cart.tpl'); - break; - } - } - public function displayFooter() { if (!Tools::getValue('ajax')) diff --git a/controllers/OrderDetailController.php b/controllers/front/OrderDetailController.php similarity index 97% rename from controllers/OrderDetailController.php rename to controllers/front/OrderDetailController.php index 1bbc3e13c..40cbb555b 100644 --- a/controllers/OrderDetailController.php +++ b/controllers/front/OrderDetailController.php @@ -30,7 +30,7 @@ class OrderDetailControllerCore extends FrontController public $auth = true; public $authRedirection = 'history'; public $ssl = true; - + public function __construct() { parent::__construct(); @@ -39,9 +39,9 @@ class OrderDetailControllerCore extends FrontController header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); } - public function preProcess() + public function init() { - parent::preProcess(); + parent::init(); if (Tools::isSubmit('submitMessage')) { @@ -61,7 +61,7 @@ class OrderDetailControllerCore extends FrontController { //check if a thread already exist $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($this->context->customer->email, $order->id); - + $cm = new CustomerMessage(); if (!$id_customer_thread) { @@ -104,7 +104,7 @@ class OrderDetailControllerCore extends FrontController '{id_order}' => (int)($order->id), '{message}' => $msgText), $to, $toName, $customer->email, $customer->firstname.' '.$customer->lastname); - + if (Tools::getValue('ajax') != 'true') Tools::redirect('index.php?controller=order-detail&id_order='.(int)$idOrder); } @@ -180,6 +180,8 @@ class OrderDetailControllerCore extends FrontController $this->errors[] = Tools::displayError('Cannot find this order'); unset($order); } + + $this->setTemplate(_PS_THEME_DIR_.'order-detail.tpl'); } public function setMedia() @@ -198,12 +200,6 @@ class OrderDetailControllerCore extends FrontController parent::displayHeader(); } - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'order-detail.tpl'); - } - public function displayFooter() { if (Tools::getValue('ajax') != 'true') diff --git a/controllers/OrderFollowController.php b/controllers/front/OrderFollowController.php similarity index 94% rename from controllers/OrderFollowController.php rename to controllers/front/OrderFollowController.php index 1f652ee1f..d2c98c1a8 100644 --- a/controllers/OrderFollowController.php +++ b/controllers/front/OrderFollowController.php @@ -1,6 +1,6 @@ context->smarty->assign('errorNotReturnable',true); $this->context->smarty->assign('ordersReturn', $ordersReturn); + + $this->setTemplate(_PS_THEME_DIR_.'order-follow.tpl'); } - + public function setMedia() { parent::setMedia(); @@ -91,11 +91,4 @@ class OrderFollowControllerCore extends FrontController $this->addCSS(_THEME_CSS_DIR_.'addresses.css'); $this->addJS(array(_PS_JS_DIR_.'jquery/jquery.scrollTo-1.4.2-min.js', _THEME_JS_DIR_.'history.js')); } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'order-follow.tpl'); - } } - diff --git a/controllers/OrderOpcController.php b/controllers/front/OrderOpcController.php similarity index 99% rename from controllers/OrderOpcController.php rename to controllers/front/OrderOpcController.php index 5c8692942..b7834d3e8 100644 --- a/controllers/OrderOpcController.php +++ b/controllers/front/OrderOpcController.php @@ -30,9 +30,10 @@ class OrderOpcControllerCore extends ParentOrderController public $php_self = 'order-opc'; public $isLogged; - public function preProcess() + public function init() { - parent::preProcess(); + parent::init(); + if ($this->nbProducts) $this->context->smarty->assign('virtual_cart', false); $this->isLogged = (bool)($this->context->customer->id AND Customer::customerIdExistsStatic((int)($this->context->cookie->id_customer))); @@ -272,6 +273,9 @@ class OrderOpcControllerCore extends ParentOrderController Tools::safePostVars(); $this->context->smarty->assign('newsletter', (int)Module::getInstanceByName('blocknewsletter')->active); + + $this->_processAddressFormat(); + $this->setTemplate(_PS_THEME_DIR_.'order-opc.tpl'); } public function displayHeader() @@ -280,14 +284,6 @@ class OrderOpcControllerCore extends ParentOrderController parent::displayHeader(); } - public function displayContent() - { - parent::displayContent(); - - $this->_processAddressFormat(); - $this->context->smarty->display(_PS_THEME_DIR_.'order-opc.tpl'); - } - public function displayFooter() { if (Tools::getValue('ajax') != 'true') diff --git a/controllers/OrderReturnController.php b/controllers/front/OrderReturnController.php similarity index 92% rename from controllers/OrderReturnController.php rename to controllers/front/OrderReturnController.php index 5df706bd3..5a1da4554 100644 --- a/controllers/OrderReturnController.php +++ b/controllers/front/OrderReturnController.php @@ -1,6 +1,6 @@ errors[] = Tools::displayError('Order ID required'); else @@ -76,20 +74,16 @@ class OrderReturnControllerCore extends FrontController 'errors' => $this->errors, 'nbdaysreturn' => (int)(Configuration::get('PS_ORDER_RETURN_NB_DAYS')) )); + + $this->setTemplate(_PS_THEME_DIR_.'order-return.tpl'); } - + public function displayHeader() { if (Tools::getValue('ajax') != 'true') parent::displayHeader(); } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'order-return.tpl'); - } - + public function displayFooter() { if (Tools::getValue('ajax') != 'true') diff --git a/controllers/OrderSlipController.php b/controllers/front/OrderSlipController.php similarity index 89% rename from controllers/OrderSlipController.php rename to controllers/front/OrderSlipController.php index 0f789ae6d..50e2dbb04 100644 --- a/controllers/OrderSlipController.php +++ b/controllers/front/OrderSlipController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'addresses.css'); $this->addJS(array(_PS_JS_DIR_.'jquery/jquery.scrollTo-1.4.2-min.js',_THEME_JS_DIR_.'history.js')); } - + public function process() { - parent::process(); $this->context->smarty->assign('ordersSlip', OrderSlip::getOrdersSlip((int)($this->context->cookie->id_customer))); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'order-slip.tpl'); + $this->setTemplate(_PS_THEME_DIR_.'order-slip.tpl'); } } diff --git a/controllers/PageNotFoundController.php b/controllers/front/PageNotFoundController.php similarity index 89% rename from controllers/PageNotFoundController.php rename to controllers/front/PageNotFoundController.php index 3e5b34cde..b781ae95c 100644 --- a/controllers/PageNotFoundController.php +++ b/controllers/front/PageNotFoundController.php @@ -1,6 +1,6 @@ context->smarty->display(_PS_THEME_DIR_.'404.tpl'); + $this->setTemplate(_PS_THEME_DIR_.'404.tpl'); } } diff --git a/controllers/ParentOrderController.php b/controllers/front/ParentOrderController.php similarity index 99% rename from controllers/ParentOrderController.php rename to controllers/front/ParentOrderController.php index 1f6a820ed..20b609ace 100644 --- a/controllers/ParentOrderController.php +++ b/controllers/front/ParentOrderController.php @@ -1,6 +1,6 @@ nbProducts = $this->context->cart->nbProducts(); - } - - public function preProcess() - { + global $isVirtualCart; - parent::preProcess(); // Redirect to the good order process if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 0 AND Dispatcher::getInstance()->getController() != 'order') @@ -64,10 +60,10 @@ class ParentOrderControllerCore extends FrontController Tools::redirect('index.php?controller=order-opc&isPaymentStep=true'); Tools::redirect('index.php?controller=order-opc'); } - + if (Configuration::get('PS_CATALOG_MODE')) $this->errors[] = Tools::displayError('This store has not accepted your new order.'); - + if (Tools::isSubmit('submitReorder') AND $id_order = (int)Tools::getValue('id_order')) { $oldCart = new Cart(Order::getCartIdStatic($id_order, $this->context->customer->id)); @@ -124,14 +120,14 @@ class ParentOrderControllerCore extends FrontController if ($isVirtualCart = $this->context->cart->isVirtualCart()) $this->_setNoCarrier(); } - + $this->context->smarty->assign('back', Tools::safeOutput(Tools::getValue('back'))); } - + public function setMedia() { parent::setMedia(); - + // Adding CSS style sheet $this->addCSS(_THEME_CSS_DIR_.'addresses.css'); $this->addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css', 'screen'); @@ -146,9 +142,9 @@ class ParentOrderControllerCore extends FrontController $this->addJS(_THEME_JS_DIR_.'cart-summary.js'); $this->addJS(_PS_JS_DIR_.'jquery/jquery-typewatch.pack.js'); } - + } - + /** * @return boolean */ @@ -163,7 +159,7 @@ class ParentOrderControllerCore extends FrontController } return false; } - + protected function _updateMessage($messageContent) { if ($messageContent) @@ -195,7 +191,7 @@ class ParentOrderControllerCore extends FrontController } return true; } - + protected function _processCarrier() { $this->context->cart->recyclable = (int)(Tools::getValue('recyclable')); @@ -207,7 +203,7 @@ class ParentOrderControllerCore extends FrontController else $this->context->cart->gift_message = strip_tags($_POST['gift_message']); } - + if (isset($this->context->customer->id) AND $this->context->customer->id) { $address = new Address((int)($this->context->cart->id_address_delivery)); @@ -216,17 +212,17 @@ class ParentOrderControllerCore extends FrontController } else $id_zone = Country::getIdZone((int)Configuration::get('PS_COUNTRY_DEFAULT')); - + if (Validate::isInt(Tools::getValue('id_carrier')) AND sizeof(Carrier::checkCarrierZone((int)(Tools::getValue('id_carrier')), (int)($id_zone)))) $this->context->cart->id_carrier = (int)(Tools::getValue('id_carrier')); elseif (!$this->context->cart->isVirtualCart() AND (int)(Tools::getValue('id_carrier')) == 0) $this->errors[] = Tools::displayError('Invalid carrier or no carrier selected'); - + Module::hookExec('processCarrier', array('cart' => $this->context->cart)); - + return $this->context->cart->update(); } - + protected function _assignSummaryInformations() { if (file_exists(_PS_SHIP_IMG_DIR_.$this->context->cart->id_carrier.'.jpg')) @@ -241,14 +237,14 @@ class ParentOrderControllerCore extends FrontController { $productId = (int)(isset($productUpdate['id_product']) ? $productUpdate['id_product'] : $productUpdate['product_id']); $productAttributeId = (int)(isset($productUpdate['id_product_attribute']) ? $productUpdate['id_product_attribute'] : $productUpdate['product_attribute_id']); - + if (isset($customizedDatas[$productId][$productAttributeId])) $productUpdate['tax_rate'] = Tax::getProductTaxRate($productId, $this->context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}); } Product::addCustomizationPrice($summary['products'], $customizedDatas); } - + if ($free_ship = Tools::convertPrice((float)(Configuration::get('PS_SHIPPING_FREE_PRICE')), new Currency($this->context->cart->id_currency))) { $discounts = $this->context->cart->getDiscounts(); @@ -290,7 +286,7 @@ class ParentOrderControllerCore extends FrontController 'HOOK_SHOPPING_CART_EXTRA' => Module::hookExec('shoppingCartExtra', $summary) )); } - + protected function _assignAddress() { //if guest checkout disabled and flag is_guest in cookies is actived @@ -306,18 +302,18 @@ class ParentOrderControllerCore extends FrontController { /* Getting customer addresses */ $customerAddresses = $customer->getAddresses($this->context->language->id); - + // Getting a list of formated address fields with associated values $formatedAddressFieldsValuesList = array(); foreach($customerAddresses as $address) { $tmpAddress = new Address($address['id_address']); - + $formatedAddressFieldsValuesList[$address['id_address']]['ordered_fields'] = AddressFormat::getOrderedAddressFields($address['id_country']); $formatedAddressFieldsValuesList[$address['id_address']]['formated_fields_values'] = AddressFormat::getFormattedAddressFieldsValues( $tmpAddress, $formatedAddressFieldsValuesList[$address['id_address']]['ordered_fields']); - + unset($tmpAddress); } $this->context->smarty->assign(array( @@ -358,7 +354,7 @@ class ParentOrderControllerCore extends FrontController if ($oldMessage = Message::getMessageByCartId((int)($this->context->cart->id))) $this->context->smarty->assign('oldMessage', $oldMessage['message']); } - + protected function _assignCarrier() { $address = new Address($this->context->cart->id_address_delivery); @@ -375,14 +371,14 @@ class ParentOrderControllerCore extends FrontController 'HOOK_BEFORECARRIER' => Module::hookExec('beforeCarrier', array('carriers' => $carriers)) )); } - + protected function _assignWrappingAndTOS() { // Wrapping fees $wrapping_fees = (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE')); $wrapping_fees_tax = new Tax(Configuration::get('PS_GIFT_WRAPPING_TAX')); $wrapping_fees_tax_inc = $wrapping_fees * (1 + (((float)($wrapping_fees_tax->rate) / 100))); - + // TOS $cms = new CMS(Configuration::get('PS_CONDITIONS_CMS_ID'), $this->context->language->id); $this->link_conditions = $this->context->link->getCMSLink($cms, $cms->link_rewrite, true); @@ -390,7 +386,7 @@ class ParentOrderControllerCore extends FrontController $this->link_conditions .= '?content_only=1'; else $this->link_conditions .= '&content_only=1'; - + $this->context->smarty->assign(array( 'checkedTOS' => (int)($this->context->cookie->checkedTOS), 'recyclablePackAllowed' => (int)(Configuration::get('PS_RECYCLABLE_PACK')), @@ -403,7 +399,7 @@ class ParentOrderControllerCore extends FrontController 'total_wrapping_cost' => Tools::convertPrice($wrapping_fees_tax_inc, $this->context->currency), 'total_wrapping_tax_exc_cost' => Tools::convertPrice($wrapping_fees, $this->context->currency))); } - + protected function _assignPayment() { $this->context->smarty->assign(array( @@ -411,7 +407,7 @@ class ParentOrderControllerCore extends FrontController 'HOOK_PAYMENT' => Module::hookExecPayment() )); } - + /** * Set id_carrier to 0 (no shipping price) * @@ -421,7 +417,7 @@ class ParentOrderControllerCore extends FrontController $this->context->cart->id_carrier = 0; $this->context->cart->update(); } - + /** * Decides what the default carrier is and update the cart with it * @@ -453,6 +449,6 @@ class ParentOrderControllerCore extends FrontController return $this->context->cart->id_carrier; return 0; } - + } diff --git a/controllers/PasswordController.php b/controllers/front/PasswordController.php similarity index 86% rename from controllers/PasswordController.php rename to controllers/front/PasswordController.php index fb46f5a3c..812017943 100644 --- a/controllers/PasswordController.php +++ b/controllers/front/PasswordController.php @@ -1,6 +1,6 @@ last_passwd_gen.'+'.(int)($min_time = Configuration::get('PS_PASSWD_TIME_FRONT')).' minutes') - time()) > 0) $this->errors[] = Tools::displayError('You can regenerate your password only every').' '.(int)($min_time).' '.Tools::displayError('minute(s)'); else - { - if (Mail::Send($this->context->language->id, 'password_query', Mail::l('Password query confirmation'), - array('{email}' => $customer->email, - '{lastname}' => $customer->lastname, + { + if (Mail::Send($this->context->language->id, 'password_query', Mail::l('Password query confirmation'), + array('{email}' => $customer->email, + '{lastname}' => $customer->lastname, '{firstname}' => $customer->firstname, '{url}' => $this->context->link->getPageLink('password', true, NULL, 'token='.$customer->secure_key.'&id_customer='.(int)$customer->id)), - $customer->email, + $customer->email, $customer->firstname.' '.$customer->lastname)) $this->context->smarty->assign(array('confirmation' => 2, 'email' => $customer->email)); else @@ -80,13 +78,13 @@ class PasswordControllerCore extends FrontController $customer->last_passwd_gen = date('Y-m-d H:i:s', time()); if ($customer->update()) { - if (Mail::Send($this->context->language->id, 'password', Mail::l('Your password'), - array('{email}' => $customer->email, - '{lastname}' => $customer->lastname, - '{firstname}' => $customer->firstname, - '{passwd}' => $password), - $customer->email, - $customer->firstname.' '.$customer->lastname)) + if (Mail::Send($this->context->language->id, 'password', Mail::l('Your password'), + array('{email}' => $customer->email, + '{lastname}' => $customer->lastname, + '{firstname}' => $customer->firstname, + '{passwd}' => $password), + $customer->email, + $customer->firstname.' '.$customer->lastname)) $this->context->smarty->assign(array('confirmation' => 1, 'email' => $customer->email)); else $this->errors[] = Tools::displayError('Error occurred when sending the e-mail.'); @@ -100,12 +98,8 @@ class PasswordControllerCore extends FrontController } elseif (($token = Tools::getValue('token')) || ($id_customer = Tools::getValue('id_customer'))) $this->errors[] = Tools::displayError('We cannot regenerate your password with the data you submitted'); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'password.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'password.tpl'); } } diff --git a/controllers/PdfInvoiceController.php b/controllers/front/PdfInvoiceController.php similarity index 93% rename from controllers/PdfInvoiceController.php rename to controllers/front/PdfInvoiceController.php index fcb13208e..61b3494b0 100644 --- a/controllers/PdfInvoiceController.php +++ b/controllers/front/PdfInvoiceController.php @@ -1,6 +1,6 @@ init(); - $this->preProcess(); - $this->process(); - } - public function process() { - parent::process(); + $this->displayHeader(false); + $this->displayFooter(false); + if (!$this->context->customer->isLogged() AND !Tools::getValue('secure_key')) Tools::redirect('index.php?controller=authentication&back=pdf-invoice'); if (!(int)(Configuration::get('PS_INVOICE'))) diff --git a/controllers/PdfOrderReturnController.php b/controllers/front/PdfOrderReturnController.php similarity index 92% rename from controllers/PdfOrderReturnController.php rename to controllers/front/PdfOrderReturnController.php index a73d93e30..c59aee774 100644 --- a/controllers/PdfOrderReturnController.php +++ b/controllers/front/PdfOrderReturnController.php @@ -1,6 +1,6 @@ init(); - $this->preProcess(); - $this->process(); - } - public function process() { - parent::process(); + $this->displayHeader(false); + $this->displayFooter(false); if (!$this->context->customer->isLogged()) Tools::redirect('index.php?controller=authentication&back=order-follow'); diff --git a/controllers/PdfOrderSlipController.php b/controllers/front/PdfOrderSlipController.php similarity index 93% rename from controllers/PdfOrderSlipController.php rename to controllers/front/PdfOrderSlipController.php index 2b25458c2..d3d2bb444 100644 --- a/controllers/PdfOrderSlipController.php +++ b/controllers/front/PdfOrderSlipController.php @@ -1,6 +1,6 @@ init(); - $this->preProcess(); - $this->process(); - } - public function process() { - parent::process(); + $this->displayHeader(false); + $this->displayFooter(false); if (!$this->context->customer->isLogged()) Tools::redirect('index.php?controller=authentication&back=order-follow'); - + if (isset($_GET['id_order_slip']) AND Validate::isUnsignedId($_GET['id_order_slip'])) $orderSlip = new OrderSlip((int)($_GET['id_order_slip'])); if (!isset($orderSlip) OR !Validate::isLoadedObject($orderSlip)) diff --git a/controllers/PricesDropController.php b/controllers/front/PricesDropController.php similarity index 89% rename from controllers/PricesDropController.php rename to controllers/front/PricesDropController.php index 78a693e51..0f1131f8d 100644 --- a/controllers/PricesDropController.php +++ b/controllers/front/PricesDropController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'product_list.css'); } - + public function process() { - parent::process(); - $this->productSort(); $nbProducts = Product::getPricesDrop($this->context->language->id, NULL, NULL, true); $this->pagination($nbProducts); @@ -49,12 +47,8 @@ class PricesDropControllerCore extends FrontController 'nbProducts' => $nbProducts, 'homeSize' => Image::getSize('home') )); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'prices-drop.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'prices-drop.tpl'); } } diff --git a/controllers/ProductController.php b/controllers/front/ProductController.php similarity index 95% rename from controllers/ProductController.php rename to controllers/front/ProductController.php index 61cbc8857..01988c024 100644 --- a/controllers/ProductController.php +++ b/controllers/front/ProductController.php @@ -52,23 +52,14 @@ class ProductControllerCore extends FrontController public function canonicalRedirection() { - // Automatically redirect to the canonical URL if the current in is the right one - // $_SERVER['HTTP_HOST'] must be replaced by the real canonical domain if (Validate::isLoadedObject($this->product)) - { - $canonicalURL = $this->context->link->getProductLink($this->product); - if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) - { - header('HTTP/1.0 301 Moved'); - if (defined('_PS_MODE_DEV_') AND _PS_MODE_DEV_) - die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.''); - Tools::redirectLink($canonicalURL); - } - } + parent::canonicalRedirection($this->context->link->getProductLink($this->product)); } - public function preProcess() + public function init() { + parent::init(); + if ($id_product = (int)Tools::getValue('id_product')) $this->product = new Product($id_product, true, $this->context->language->id); @@ -79,8 +70,6 @@ class ProductControllerCore extends FrontController } else $this->canonicalRedirection(); - - parent::preProcess(); } public function process() @@ -203,7 +192,7 @@ class ProductControllerCore extends FrontController $ecotaxTaxAmount = Tools::ps_round($ecotaxTaxAmount * (1 + $ecotax_rate / 100), 2); $this->context->smarty->assign(array( - 'quantity_discounts' => $this->formatQuantityDiscounts(SpecificPrice::getQuantityDiscounts((int)$this->product->id, $this->id_current_shop, (int)$this->context->cookie->id_currency, $id_country, $id_group), $this->product->getPrice(Product::$_taxCalculationMethod == PS_TAX_INC, false), (float)$tax), + 'quantity_discounts' => $this->formatQuantityDiscounts(SpecificPrice::getQuantityDiscounts((int)$this->product->id, $this->context->shop->getID(true), (int)$this->context->cookie->id_currency, $id_country, $id_group), $this->product->getPrice(Product::$_taxCalculationMethod == PS_TAX_INC, false), (float)$tax), 'product' => $this->product, 'ecotax_tax_inc' => $ecotaxTaxAmount, 'ecotax_tax_exc' => Tools::ps_round($this->product->ecotax, 2), @@ -290,7 +279,7 @@ class ProductControllerCore extends FrontController //french date format $availableDate = date('j-m-Y',strtotime($row['available_date'])); - + $combinations[$row['id_product_attribute']]['attributes_values'][$row['id_attribute_group']] = $row['attribute_name']; $combinations[$row['id_product_attribute']]['attributes'][] = (int)($row['id_attribute']); $combinations[$row['id_product_attribute']]['price'] = (float)($row['price']); @@ -340,7 +329,7 @@ class ProductControllerCore extends FrontController // Pack management $this->context->smarty->assign('packItems', $this->product->cache_is_pack ? Pack::getItemTable($this->product->id, $this->context->language->id, true) : array()); $this->context->smarty->assign('packs', Pack::getPacksTable($this->product->id, $this->context->language->id, true, 1)); - + $this->product->description = $this->transformDescriptionWithImg($this->product->description); } } @@ -361,14 +350,10 @@ class ProductControllerCore extends FrontController 'currencyBlank' => $this->context->currency->blank, 'jqZoomEnabled' => Configuration::get('PS_DISPLAY_JQZOOM') )); + + $this->setTemplate(_PS_THEME_DIR_.'product.tpl'); } - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'product.tpl'); - } - public function transformDescriptionWithImg($desc) { $reg = '/{img-([0-9]+)-(left|right)-([a-z]+)}/'; diff --git a/controllers/SearchController.php b/controllers/front/SearchController.php similarity index 95% rename from controllers/SearchController.php rename to controllers/front/SearchController.php index 55d32c387..1b4b4c09c 100644 --- a/controllers/SearchController.php +++ b/controllers/front/SearchController.php @@ -1,6 +1,6 @@ instantSearch = Tools::getValue('instantSearch'); $this->ajaxSearch = Tools::getValue('ajaxSearch'); } - - public function preProcess() - { - parent::preProcess(); + public function process() + { $query = urldecode(Tools::getValue('q')); if ($this->ajaxSearch) { @@ -51,7 +49,7 @@ class SearchControllerCore extends FrontController $product['product_link'] = $this->context->link->getProductLink($product['id_product'], $product['prewrite'], $product['crewrite']); die(Tools::jsonEncode($searchResults)); } - + if ($this->instantSearch && !is_array($query)) { $this->productSort(); @@ -107,8 +105,10 @@ class SearchControllerCore extends FrontController 'nbProducts' => 0)); } $this->context->smarty->assign('add_prod_display', Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY')); + + $this->setTemplate(_PS_THEME_DIR_.'search.tpl'); } - + public function displayHeader() { if (!$this->instantSearch AND !$this->ajaxSearch) @@ -116,23 +116,17 @@ class SearchControllerCore extends FrontController else $this->context->smarty->assign('static_token', Tools::getToken(false)); } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'search.tpl'); - } - + public function displayFooter() { if (!$this->instantSearch AND !$this->ajaxSearch) parent::displayFooter(); } - + public function setMedia() { parent::setMedia(); - + if (!$this->instantSearch AND !$this->ajaxSearch) $this->addCSS(_THEME_CSS_DIR_.'product_list.css'); } diff --git a/controllers/SitemapController.php b/controllers/front/SitemapController.php similarity index 92% rename from controllers/SitemapController.php rename to controllers/front/SitemapController.php index bfca0e815..6684cb550 100644 --- a/controllers/SitemapController.php +++ b/controllers/front/SitemapController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'sitemap.css'); $this->addJS(_THEME_JS_DIR_.'tools/treeManagement.js'); } - + public function process() { - parent::process(); - $this->context->smarty->assign('categoriesTree', Category::getRootCategory()->recurseLiteCategTree(0)); $this->context->smarty->assign('categoriescmsTree', CMSCategory::getRecurseCategory($this->context->language->id, 1, 1, 1)); $this->context->smarty->assign('voucherAllowed', (int)Configuration::get('PS_VOUCHERS')); @@ -50,11 +48,7 @@ class SitemapControllerCore extends FrontController $this->context->smarty->assign('display_supplier_link', (((int)$blocksupplier->id) ? true : false)); $this->context->smarty->assign('PS_DISPLAY_SUPPLIERS', Configuration::get('PS_DISPLAY_SUPPLIERS')); $this->context->smarty->assign('display_store', Configuration::get('PS_STORES_DISPLAY_SITEMAP')); - } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'sitemap.tpl'); + + $this->setTemplate(_PS_THEME_DIR_.'sitemap.tpl'); } } diff --git a/controllers/StatisticsController.php b/controllers/front/StatisticsController.php similarity index 96% rename from controllers/StatisticsController.php rename to controllers/front/StatisticsController.php index d8fcf6cc6..033138ba6 100644 --- a/controllers/StatisticsController.php +++ b/controllers/front/StatisticsController.php @@ -1,6 +1,6 @@ displayHeader(false); + $this->displayFooter(false); if (!isset($_POST['token']) OR !isset($_POST['type'])) - die; + die; if ($_POST['type'] == 'navinfo') { if (sha1($_POST['id_guest']._COOKIE_KEY_) != $_POST['token']) die; - + $guest = new Guest((int)$_POST['id_guest']); $guest->javascript = true; $guest->screen_resolution_x = (int)($_POST['screen_resolution_x']); diff --git a/controllers/StoresController.php b/controllers/front/StoresController.php similarity index 88% rename from controllers/StoresController.php rename to controllers/front/StoresController.php index f58e7575f..32e18513d 100644 --- a/controllers/StoresController.php +++ b/controllers/front/StoresController.php @@ -1,6 +1,6 @@ errors[] = Tools::displayError('Dom extension is not loaded.'); $smarty->assign('errors', $this->errors); } - + $simplifiedStoreLocator = Configuration::get('PS_STORES_SIMPLIFIED'); $distanceUnit = Configuration::get('PS_DISTANCE_UNIT'); if (!in_array($distanceUnit, array('km', 'mi'))) $distanceUnit = 'km'; - + if ($simplifiedStoreLocator) { $stores = Db::getInstance()->ExecuteS(' SELECT s.*, cl.name country, st.iso_code state - FROM '._DB_PREFIX_.'store_shop ss - LEFT JOIN '._DB_PREFIX_.'store s ON (ss.id_store = s.id_store) + FROM '._DB_PREFIX_.'store s + '.$this->context->shop->sqlAsso('shop', 's').' LEFT JOIN '._DB_PREFIX_.'country_lang cl ON (cl.id_country = s.id_country) LEFT JOIN '._DB_PREFIX_.'state st ON (st.id_state = s.id_state) - WHERE s.active = 1 AND cl.id_lang = '.(int)$this->context->language->id.' AND ss.id_shop = '.(int)$this->id_current_shop); - + WHERE s.active = 1 AND cl.id_lang = '.(int)$this->context->language->id); + foreach ($stores AS &$store) $store['has_picture'] = file_exists(_PS_STORE_IMG_DIR_.(int)($store['id_store']).'.jpg'); } else - { + { if (Tools::getValue('all') == 1) - { + { $stores = Db::getInstance()->ExecuteS(' SELECT s.*, cl.name country, st.iso_code state - FROM '._DB_PREFIX_.'store_shop ss - LEFT JOIN '._DB_PREFIX_.'store s ON (ss.id_store = s.id_store) + FROM '._DB_PREFIX_.'store s + '.$this->context->shop->sqlAsso('shop', 's').' LEFT JOIN '._DB_PREFIX_.'country_lang cl ON (cl.id_country = s.id_country) LEFT JOIN '._DB_PREFIX_.'state st ON (st.id_state = s.id_state) - WHERE s.active = 1 AND cl.id_lang = '.(int)$this->context->language->id.' AND ss.id_shop = '.(int)$this->id_current_shop); + WHERE s.active = 1 AND cl.id_lang = '.(int)$this->context->language->id); } else { $distance = (int)(Tools::getValue('radius', 100)); $multiplicator = ($distanceUnit == 'km' ? 6371 : 3959); - + $stores = Db::getInstance()->ExecuteS(' SELECT s.*, cl.name country, st.iso_code state, ('.(int)($multiplicator).' * acos(cos(radians('.(float)(Tools::getValue('latitude')).')) * cos(radians(latitude)) * cos(radians(longitude) - radians('.(float)(Tools::getValue('longitude')).')) + sin(radians('.(float)(Tools::getValue('latitude')).')) * sin(radians(latitude)))) distance, cl.id_country id_country - FROM '._DB_PREFIX_.'store_shop ss - LEFT JOIN '._DB_PREFIX_.'store s ON (ss.id_store = s.id_store) + FROM '._DB_PREFIX_.'store s + '.$this->context->shop->sqlAsso('shop', 's').' LEFT JOIN '._DB_PREFIX_.'country_lang cl ON (cl.id_country = s.id_country) LEFT JOIN '._DB_PREFIX_.'state st ON (st.id_state = s.id_state) - WHERE s.active = 1 AND cl.id_lang = '.(int)$this->context->language->id.' AND ss.id_shop = '.(int)$this->id_current_shop.' + WHERE s.active = 1 AND cl.id_lang = '.(int)$this->context->language->id.' HAVING distance < '.(int)($distance).' ORDER BY distance ASC LIMIT 0,20'); @@ -106,7 +108,7 @@ class StoresControllerCore extends FrontController $newnode = $parnode->appendChild($node); $newnode->setAttribute('name', $store['name']); $address = $this->_processStoreAddress($store); - + $other = ''; if (!empty($store['hours'])) { @@ -121,10 +123,10 @@ class StoresControllerCore extends FrontController } $this->context->smarty->assign('days_datas', $days_datas); $this->context->smarty->assign('id_country', $store['id_country']); - + $other .= $this->context->smarty->fetch(_PS_THEME_DIR_.'store_infos.tpl'); } - + $newnode->setAttribute('addressNoHtml', strip_tags(str_replace('
', ' ', $address))); $newnode->setAttribute('address', $address); $newnode->setAttribute('other', $other); @@ -133,18 +135,18 @@ class StoresControllerCore extends FrontController $newnode->setAttribute('has_store_picture', file_exists(_PS_STORE_IMG_DIR_.(int)($store['id_store']).'.jpg')); $newnode->setAttribute('lat', (float)($store['latitude'])); $newnode->setAttribute('lng', (float)($store['longitude'])); - + if (isset($store['distance'])) $newnode->setAttribute('distance', (int)($store['distance'])); } - + header('Content-type: text/xml'); die($dom->saveXML()); } else $this->context->smarty->assign('hasStoreIcon', file_exists(dirname(__FILE__).'/../img/logo_stores.gif')); } - + $this->context->smarty->assign(array('distance_unit' => $distanceUnit, 'simplifiedStoresDiplay' => $simplifiedStoreLocator, 'stores' => $stores, 'mediumSize' => Image::getSize('medium'))); } @@ -160,19 +162,19 @@ class StoresControllerCore extends FrontController $address_datas = AddressFormat::getOrderedAddressFields($store['id_country'], false, true); $state = (isset($store['id_state'])) ? new State($store['id_state']) : NULL; - + foreach ($address_datas as $data_line) { $data_fields = explode(' ', $data_line); $adr_out = array(); - + $data_fields_mod = false; foreach ($data_fields as $field_item) { $field_item = trim($field_item); if (!isset($ignore_field[$field_item]) && !empty($store[$field_item]) && $store[$field_item] != '') { - $adr_out[] = ($field_item == "city" && $state && isset($state->iso_code) && strlen($state->iso_code)) ? + $adr_out[] = ($field_item == "city" && $state && isset($state->iso_code) && strlen($state->iso_code)) ? $store[$field_item].', '.$state->iso_code : $store[$field_item]; $data_fields_mod = true; } @@ -188,13 +190,13 @@ class StoresControllerCore extends FrontController public function process() { - parent::process(); - $this->context->smarty->assign(array( 'defaultLat' => (float)Configuration::get('PS_STORES_CENTER_LAT'), 'defaultLong' => (float)Configuration::get('PS_STORES_CENTER_LONG'), 'searchUrl' => $this->context->link->getPageLink('stores') )); + + $this->setTemplate(_PS_THEME_DIR_.'stores.tpl'); } public function setMedia() @@ -205,10 +207,4 @@ class StoresControllerCore extends FrontController $this->addJS(_THEME_JS_DIR_.'stores.js'); $this->addJS('http://maps.google.com/maps/api/js?sensor=true'); } - - public function displayContent() - { - parent::displayContent(); - $this->context->smarty->display(_PS_THEME_DIR_.'stores.tpl'); - } } diff --git a/controllers/SupplierController.php b/controllers/front/SupplierController.php similarity index 70% rename from controllers/SupplierController.php rename to controllers/front/SupplierController.php index 01f9a9e53..159b11c83 100644 --- a/controllers/SupplierController.php +++ b/controllers/front/SupplierController.php @@ -1,6 +1,6 @@ addCSS(_THEME_CSS_DIR_.'product_list.css'); } - + public function canonicalRedirection() { - if (Configuration::get('PS_CANONICAL_REDIRECT')) - { if (Validate::isLoadedObject($this->supplier)) - { - $canonicalURL = $this->context->link->getSupplierLink($this->supplier); - if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) - { - header('HTTP/1.0 301 Moved'); - if (defined('_PS_MODE_DEV_') AND _PS_MODE_DEV_) - die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.''); - Tools::redirectLink($canonicalURL); - } - } + parent::canonicalRedirection($this->context->link->getSupplierLink($this->supplier)) } - } - - public function preProcess() + + public function init() { + parent::init(); + if ($id_supplier = (int)Tools::getValue('id_supplier')) { $this->supplier = new Supplier($id_supplier, $this->context->language->id); @@ -70,22 +60,20 @@ class SupplierControllerCore extends FrontController else $this->canonicalRedirection(); } - - parent::preProcess(); } - + public function process() { if (Validate::isLoadedObject($this->supplier) AND $this->supplier->active AND $this->supplier->isAssociatedToGroupShop()) { $nbProducts = $this->supplier->getProducts($this->supplier->id, NULL, NULL, NULL, $this->orderBy, $this->orderWay, true); - $this->pagination((int)$nbProducts); - $this->context->smarty->assign(array( - 'nb_products' => $nbProducts, - 'products' => $this->supplier->getProducts($this->supplier->id, $this->context->cookie->id_lang, (int)$this->p, (int)$this->n, $this->orderBy, $this->orderWay), - 'path' => ($this->supplier->active ? Tools::safeOutput($this->supplier->name) : ''), - 'supplier' => $this->supplier, - )); + $this->pagination((int)$nbProducts); + $this->context->smarty->assign(array( + 'nb_products' => $nbProducts, + 'products' => $this->supplier->getProducts($this->supplier->id, $this->context->cookie->id_lang, (int)$this->p, (int)$this->n, $this->orderBy, $this->orderWay), + 'path' => ($this->supplier->active ? Tools::safeOutput($this->supplier->name) : ''), + 'supplier' => $this->supplier, + )); } elseif (!Tools::getValue('id_supplier')) { @@ -94,7 +82,7 @@ class SupplierControllerCore extends FrontController $result = Supplier::getSuppliers(true, $this->context->language->id, true); $nbProducts = count($result); $this->pagination($nbProducts); - + $suppliers = Supplier::getSuppliers(true, $this->context->language->id, true, $this->p, $this->n); foreach ($suppliers AS &$row) $row['image'] = (!file_exists(_PS_SUPP_IMG_DIR_.'/'.$row['id_supplier'].'-medium.jpg')) ? $this->context->language->iso_code.'-default' : $row['id_supplier'];; @@ -110,21 +98,16 @@ class SupplierControllerCore extends FrontController else $this->context->smarty->assign('nbSuppliers', 0); } + + if ($this->supplier) + $this->setTemplate(_PS_THEME_DIR_.'supplier.tpl'); + else + $this->setTemplate(_PS_THEME_DIR_.'supplier-list.tpl'); } - + public function displayHeader() { parent::displayHeader(); $this->productSort(); } - - public function displayContent() - { - parent::displayContent(); - if ($this->supplier) - $this->context->smarty->display(_PS_THEME_DIR_.'supplier.tpl'); - else - $this->context->smarty->display(_PS_THEME_DIR_.'supplier-list.tpl'); - } - } diff --git a/controllers/front/index.php b/controllers/front/index.php new file mode 100644 index 000000000..4e2611d37 --- /dev/null +++ b/controllers/front/index.php @@ -0,0 +1,36 @@ + +* @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 +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/modules/blockmanufacturer/blockmanufacturer.php b/modules/blockmanufacturer/blockmanufacturer.php index 691c9fe3d..6acf9c2b3 100644 --- a/modules/blockmanufacturer/blockmanufacturer.php +++ b/modules/blockmanufacturer/blockmanufacturer.php @@ -55,7 +55,7 @@ class BlockManufacturer extends Module function hookLeftColumn($params) { - $this->context->smarty->assign(array( + $this->smartyAssign(array( 'manufacturers' => Manufacturer::getManufacturers(), 'text_list' => Configuration::get('MANUFACTURER_DISPLAY_TEXT'), 'text_list_nb' => Configuration::get('MANUFACTURER_DISPLAY_TEXT_NB'), diff --git a/modules/blockmanufacturer/blockmanufacturer.tpl b/modules/blockmanufacturer/blockmanufacturer.tpl index 7e705bb57..40dfda2d9 100644 --- a/modules/blockmanufacturer/blockmanufacturer.tpl +++ b/modules/blockmanufacturer/blockmanufacturer.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -26,24 +26,24 @@
-

{if $display_link_manufacturer}{/if}{l s='Manufacturers' mod='blockmanufacturer'}{if $display_link_manufacturer}{/if}

+

{if $blockmanufacturer_display_link_manufacturer}{/if}{l s='Manufacturers' mod='blockmanufacturer'}{if $blockmanufacturer_display_link_manufacturer}{/if}

-{if $manufacturers} - {if $text_list} +{if $blockmanufacturer_manufacturers} + {if $blockmanufacturer_text_list}
    - {foreach from=$manufacturers item=manufacturer name=manufacturer_list} - {if $smarty.foreach.manufacturer_list.iteration <= $text_list_nb} + {foreach from=$blockmanufacturer_manufacturers item=manufacturer name=manufacturer_list} + {if $smarty.foreach.manufacturer_list.iteration <= $blockmanufacturer_text_list_nb}
  • {$manufacturer.name|escape:'htmlall':'UTF-8'}
  • {/if} {/foreach}
{/if} - {if $form_list} + {if $blockmanufacturer_form_list}

diff --git a/modules/blockmyaccount/blockmyaccount.php b/modules/blockmyaccount/blockmyaccount.php index 56a43a0c8..9e9769055 100644 --- a/modules/blockmyaccount/blockmyaccount.php +++ b/modules/blockmyaccount/blockmyaccount.php @@ -1,6 +1,6 @@ context->customer->isLogged()) return false; - $this->context->smarty->assign(array( - 'voucherAllowed' => (int)(Configuration::get('PS_VOUCHERS')), - 'returnAllowed' => (int)(Configuration::get('PS_ORDER_RETURN')), - 'HOOK_BLOCK_MY_ACCOUNT' => Module::hookExec('myAccountBlock') + + $this->smartyAssign(array( + 'voucherAllowed' => (int)Configuration::get('PS_VOUCHERS'), + 'returnAllowed' => (int)Configuration::get('PS_ORDER_RETURN'), + 'HOOK_BLOCK_MY_ACCOUNT' => Module::hookExec('myAccountBlock'), )); return $this->display(__FILE__, $this->name.'.tpl'); } diff --git a/modules/blockmyaccount/blockmyaccount.tpl b/modules/blockmyaccount/blockmyaccount.tpl index 82db21c5e..133342a4e 100644 --- a/modules/blockmyaccount/blockmyaccount.tpl +++ b/modules/blockmyaccount/blockmyaccount.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -30,12 +30,12 @@

diff --git a/modules/blockviewed/blockviewed.php b/modules/blockviewed/blockviewed.php index 5887b3f93..b77ac0181 100644 --- a/modules/blockviewed/blockviewed.php +++ b/modules/blockviewed/blockviewed.php @@ -1,6 +1,6 @@ context->customer->id ? 'AND cug.`id_customer` = '.(int)$this->context->customer->id : + '.($this->context->customer->id ? 'AND cug.`id_customer` = '.(int)$this->context->customer->id : 'AND cg.`id_group` = 1') ); if ($result['total']) @@ -166,7 +166,7 @@ class BlockViewed extends Module if (!sizeof($productsViewedObj)) return ; - $this->context->smarty->assign(array( + $this->smartyAssign(array( 'productsViewedObj' => $productsViewedObj, 'mediumSize' => Image::getSize('medium'))); diff --git a/modules/blockviewed/blockviewed.tpl b/modules/blockviewed/blockviewed.tpl index f73d2a13e..4e77fe2c9 100644 --- a/modules/blockviewed/blockviewed.tpl +++ b/modules/blockviewed/blockviewed.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -29,9 +29,9 @@

{l s='Viewed products' mod='blockviewed'}

    - {foreach from=$productsViewedObj item=viewedProduct name=myLoop} + {foreach from=$blockviewed_productsViewedObj item=viewedProduct name=myLoop}
  • - {$viewedProduct->legend|escape:html:'UTF-8'} + {$viewedProduct->legend|escape:html:'UTF-8'}
    {$viewedProduct->name|truncate:14:'...'|escape:html:'UTF-8'}

    {$viewedProduct->description_short|strip_tags:'UTF-8'|truncate:44}>>

  • diff --git a/override/controllers/AddressController.php b/override/controllers/front/AddressController.php similarity index 100% rename from override/controllers/AddressController.php rename to override/controllers/front/AddressController.php diff --git a/override/controllers/AddressesController.php b/override/controllers/front/AddressesController.php similarity index 100% rename from override/controllers/AddressesController.php rename to override/controllers/front/AddressesController.php diff --git a/override/controllers/AttachmentController.php b/override/controllers/front/AttachmentController.php similarity index 100% rename from override/controllers/AttachmentController.php rename to override/controllers/front/AttachmentController.php diff --git a/override/controllers/AuthController.php b/override/controllers/front/AuthController.php similarity index 100% rename from override/controllers/AuthController.php rename to override/controllers/front/AuthController.php diff --git a/override/controllers/BestSalesController.php b/override/controllers/front/BestSalesController.php similarity index 100% rename from override/controllers/BestSalesController.php rename to override/controllers/front/BestSalesController.php diff --git a/override/controllers/CartController.php b/override/controllers/front/CartController.php similarity index 100% rename from override/controllers/CartController.php rename to override/controllers/front/CartController.php diff --git a/override/controllers/CategoryController.php b/override/controllers/front/CategoryController.php similarity index 100% rename from override/controllers/CategoryController.php rename to override/controllers/front/CategoryController.php diff --git a/override/controllers/ChangeCurrencyController.php b/override/controllers/front/ChangeCurrencyController.php similarity index 100% rename from override/controllers/ChangeCurrencyController.php rename to override/controllers/front/ChangeCurrencyController.php diff --git a/override/controllers/CmsController.php b/override/controllers/front/CmsController.php similarity index 100% rename from override/controllers/CmsController.php rename to override/controllers/front/CmsController.php diff --git a/override/controllers/CompareController.php b/override/controllers/front/CompareController.php similarity index 100% rename from override/controllers/CompareController.php rename to override/controllers/front/CompareController.php diff --git a/override/controllers/ContactController.php b/override/controllers/front/ContactController.php similarity index 100% rename from override/controllers/ContactController.php rename to override/controllers/front/ContactController.php diff --git a/override/controllers/DiscountController.php b/override/controllers/front/DiscountController.php similarity index 100% rename from override/controllers/DiscountController.php rename to override/controllers/front/DiscountController.php diff --git a/override/controllers/GetFileController.php b/override/controllers/front/GetFileController.php similarity index 100% rename from override/controllers/GetFileController.php rename to override/controllers/front/GetFileController.php diff --git a/override/controllers/GuestTrackingController.php b/override/controllers/front/GuestTrackingController.php similarity index 100% rename from override/controllers/GuestTrackingController.php rename to override/controllers/front/GuestTrackingController.php diff --git a/override/controllers/HistoryController.php b/override/controllers/front/HistoryController.php similarity index 100% rename from override/controllers/HistoryController.php rename to override/controllers/front/HistoryController.php diff --git a/override/controllers/IdentityController.php b/override/controllers/front/IdentityController.php similarity index 100% rename from override/controllers/IdentityController.php rename to override/controllers/front/IdentityController.php diff --git a/override/controllers/IndexController.php b/override/controllers/front/IndexController.php similarity index 100% rename from override/controllers/IndexController.php rename to override/controllers/front/IndexController.php diff --git a/override/controllers/ManufacturerController.php b/override/controllers/front/ManufacturerController.php similarity index 100% rename from override/controllers/ManufacturerController.php rename to override/controllers/front/ManufacturerController.php diff --git a/override/controllers/MyAccountController.php b/override/controllers/front/MyAccountController.php similarity index 100% rename from override/controllers/MyAccountController.php rename to override/controllers/front/MyAccountController.php diff --git a/override/controllers/NewProductsController.php b/override/controllers/front/NewProductsController.php similarity index 100% rename from override/controllers/NewProductsController.php rename to override/controllers/front/NewProductsController.php diff --git a/override/controllers/OrderConfirmationController.php b/override/controllers/front/OrderConfirmationController.php similarity index 100% rename from override/controllers/OrderConfirmationController.php rename to override/controllers/front/OrderConfirmationController.php diff --git a/override/controllers/OrderController.php b/override/controllers/front/OrderController.php similarity index 100% rename from override/controllers/OrderController.php rename to override/controllers/front/OrderController.php diff --git a/override/controllers/OrderDetailController.php b/override/controllers/front/OrderDetailController.php similarity index 100% rename from override/controllers/OrderDetailController.php rename to override/controllers/front/OrderDetailController.php diff --git a/override/controllers/OrderFollowController.php b/override/controllers/front/OrderFollowController.php similarity index 100% rename from override/controllers/OrderFollowController.php rename to override/controllers/front/OrderFollowController.php diff --git a/override/controllers/OrderOpcController.php b/override/controllers/front/OrderOpcController.php similarity index 100% rename from override/controllers/OrderOpcController.php rename to override/controllers/front/OrderOpcController.php diff --git a/override/controllers/OrderReturnController.php b/override/controllers/front/OrderReturnController.php similarity index 100% rename from override/controllers/OrderReturnController.php rename to override/controllers/front/OrderReturnController.php diff --git a/override/controllers/OrderSlipController.php b/override/controllers/front/OrderSlipController.php similarity index 100% rename from override/controllers/OrderSlipController.php rename to override/controllers/front/OrderSlipController.php diff --git a/override/controllers/PageNotFoundController.php b/override/controllers/front/PageNotFoundController.php similarity index 100% rename from override/controllers/PageNotFoundController.php rename to override/controllers/front/PageNotFoundController.php diff --git a/override/controllers/ParentOrderController.php b/override/controllers/front/ParentOrderController.php similarity index 100% rename from override/controllers/ParentOrderController.php rename to override/controllers/front/ParentOrderController.php diff --git a/override/controllers/PasswordController.php b/override/controllers/front/PasswordController.php similarity index 100% rename from override/controllers/PasswordController.php rename to override/controllers/front/PasswordController.php diff --git a/override/controllers/PdfInvoiceController.php b/override/controllers/front/PdfInvoiceController.php similarity index 100% rename from override/controllers/PdfInvoiceController.php rename to override/controllers/front/PdfInvoiceController.php diff --git a/override/controllers/PricesDropController.php b/override/controllers/front/PricesDropController.php similarity index 100% rename from override/controllers/PricesDropController.php rename to override/controllers/front/PricesDropController.php diff --git a/override/controllers/ProductController.php b/override/controllers/front/ProductController.php similarity index 100% rename from override/controllers/ProductController.php rename to override/controllers/front/ProductController.php diff --git a/override/controllers/SearchController.php b/override/controllers/front/SearchController.php similarity index 100% rename from override/controllers/SearchController.php rename to override/controllers/front/SearchController.php diff --git a/override/controllers/SitemapController.php b/override/controllers/front/SitemapController.php similarity index 100% rename from override/controllers/SitemapController.php rename to override/controllers/front/SitemapController.php diff --git a/override/controllers/StatisticsController.php b/override/controllers/front/StatisticsController.php similarity index 100% rename from override/controllers/StatisticsController.php rename to override/controllers/front/StatisticsController.php diff --git a/override/controllers/StoresController.php b/override/controllers/front/StoresController.php similarity index 100% rename from override/controllers/StoresController.php rename to override/controllers/front/StoresController.php diff --git a/override/controllers/SupplierController.php b/override/controllers/front/SupplierController.php similarity index 100% rename from override/controllers/SupplierController.php rename to override/controllers/front/SupplierController.php diff --git a/override/controllers/front/index.php b/override/controllers/front/index.php new file mode 100644 index 000000000..dce6b30f5 --- /dev/null +++ b/override/controllers/front/index.php @@ -0,0 +1,36 @@ + +* @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 +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/override/controllers/pdfOrderReturnController.php b/override/controllers/front/pdfOrderReturnController.php similarity index 100% rename from override/controllers/pdfOrderReturnController.php rename to override/controllers/front/pdfOrderReturnController.php diff --git a/override/controllers/pdfOrderSlipController.php b/override/controllers/front/pdfOrderSlipController.php similarity index 100% rename from override/controllers/pdfOrderSlipController.php rename to override/controllers/front/pdfOrderSlipController.php diff --git a/themes/prestashop/header.tpl b/themes/prestashop/header.tpl index 0137d7d75..53f0882fc 100644 --- a/themes/prestashop/header.tpl +++ b/themes/prestashop/header.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -59,7 +59,7 @@ {/if} {$HOOK_HEADER} - + {if !$content_only} {if isset($restricted_country_mode) && $restricted_country_mode} diff --git a/themes/prestashop/product-list.tpl b/themes/prestashop/product-list.tpl index 51dc57479..5944f7fee 100644 --- a/themes/prestashop/product-list.tpl +++ b/themes/prestashop/product-list.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -33,7 +33,7 @@ {$product.legend|escape:'htmlall':'UTF-8'}

    {if isset($product.new) && $product.new == 1}{l s='New'}{/if}{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}

    {$product.description_short|truncate:360:'...'|strip_tags:'UTF-8'}

    -
+
{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='On sale!'} {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='Reduced price!'}{/if} @@ -58,7 +58,7 @@ {l s='View'} {if isset($comparator_max_item) && $comparator_max_item}

- {/if} + {/if}
{/foreach}