From bfc717e241527f37bfefa387ce5fdfdd8e69e6c2 Mon Sep 17 00:00:00 2001 From: vAugagneur Date: Thu, 28 Mar 2013 12:06:32 +0100 Subject: [PATCH 1/6] [-] BO : fixed bug #PSCFV-8095 now maximum weigh for carrier is float --- classes/Carrier.php | 2 +- install-dev/data/db_structure.sql | 2 +- install-dev/upgrade/sql/1.5.4.1.sql | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 install-dev/upgrade/sql/1.5.4.1.sql diff --git a/classes/Carrier.php b/classes/Carrier.php index 78ba293ab..f7a49f1b1 100644 --- a/classes/Carrier.php +++ b/classes/Carrier.php @@ -128,7 +128,7 @@ class CarrierCore extends ObjectModel 'max_width' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), 'max_height' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), 'max_depth' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), - 'max_weight' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), + 'max_weight' => array('type' => self::TYPE_FLOAT, 'validate' => 'isFloat'), 'grade' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'size' => 1), 'external_module_name' => array('type' => self::TYPE_STRING, 'size' => 64), 'is_module' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'), diff --git a/install-dev/data/db_structure.sql b/install-dev/data/db_structure.sql index 0166bb0ec..5a06fb9ac 100644 --- a/install-dev/data/db_structure.sql +++ b/install-dev/data/db_structure.sql @@ -144,7 +144,7 @@ CREATE TABLE `PREFIX_carrier` ( `max_width` int(10) DEFAULT 0, `max_height` int(10) DEFAULT 0, `max_depth` int(10) DEFAULT 0, - `max_weight` int(10) DEFAULT 0, + `max_weight` DECIMAL(20,6) DEFAULT 0, `grade` int(10) DEFAULT 0, PRIMARY KEY (`id_carrier`), KEY `deleted` (`deleted`,`active`), diff --git a/install-dev/upgrade/sql/1.5.4.1.sql b/install-dev/upgrade/sql/1.5.4.1.sql new file mode 100644 index 000000000..ea631f817 --- /dev/null +++ b/install-dev/upgrade/sql/1.5.4.1.sql @@ -0,0 +1,3 @@ +SET NAMES 'utf8'; + +ALTER TABLE `PREFIX_carrier` CHANGE `max_weight` `max_weight` DECIMAL( 20, 6 ) NULL DEFAULT '0'; \ No newline at end of file From 93baeff66c444e98d2c518d34562292ce24dabc4 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 28 Mar 2013 19:50:14 +0100 Subject: [PATCH 2/6] [-] FO : Fix bug #PSCFV-8183 lost order message in OPC --- controllers/front/OrderOpcController.php | 5 +++++ themes/default/css/global.css | 5 +++-- themes/default/order-carrier.tpl | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/controllers/front/OrderOpcController.php b/controllers/front/OrderOpcController.php index 9d8b593ad..fe2e5c6a2 100644 --- a/controllers/front/OrderOpcController.php +++ b/controllers/front/OrderOpcController.php @@ -405,9 +405,11 @@ class OrderOpcControllerCore extends ParentOrderController if (!$this->isLogged) { $carriers = $this->context->cart->simulateCarriersOutput(); + $oldMessage = Message::getMessageByCartId((int)($this->context->cart->id)); $this->context->smarty->assign(array( 'HOOK_EXTRACARRIER' => null, 'HOOK_EXTRACARRIER_ADDR' => null, + 'oldMessage' => isset($oldMessage['message'])? $oldMessage['message'] : '', 'HOOK_BEFORECARRIER' => Hook::exec('displayBeforeCarrier', array( 'carriers' => $carriers, 'checked' => $this->context->cart->simulateCarrierSelectedOutput(), @@ -494,6 +496,7 @@ class OrderOpcControllerCore extends ParentOrderController $wrapping_fees = $this->context->cart->getGiftWrappingPrice(false); $wrapping_fees_tax_inc = $wrapping_fees = $this->context->cart->getGiftWrappingPrice(); + $oldMessage = Message::getMessageByCartId((int)($this->context->cart->id)); $vars = array( 'free_shipping' => false, // Deprecated since a cart rule can be applied the specific carriers only @@ -513,6 +516,7 @@ class OrderOpcControllerCore extends ParentOrderController 'delivery_option' => $delivery_option, 'address_collection' => $this->context->cart->getAddressCollection(), 'opc' => true, + 'oldMessage' => isset($oldMessage['message'])? $oldMessage['message'] : '', 'HOOK_BEFORECARRIER' => Hook::exec('displayBeforeCarrier', array( 'carriers' => $carriers, 'delivery_option_list' => $this->context->cart->getDeliveryOptionList(), @@ -538,6 +542,7 @@ class OrderOpcControllerCore extends ParentOrderController )), 'carrier_block' => $this->context->smarty->fetch(_PS_THEME_DIR_.'order-carrier.tpl') ); + Cart::addExtraCarriers($result); return $result; } diff --git a/themes/default/css/global.css b/themes/default/css/global.css index bf02f5f8b..110c7b506 100644 --- a/themes/default/css/global.css +++ b/themes/default/css/global.css @@ -1267,10 +1267,11 @@ a.iframe {font-weight:bold} width:723px; border:1px solid #ccc } - +#order-opc #opc_delivery_methods #message { + width: 757px; +} #order-opc #opc_payment_methods {margin-bottom:20px} #order-opc #opc_payment_methods #opc_payment_methods-content p{margin:0} - .delivery_option_carrier td {width:200px} .delivery_option_carrier td + td {width:280px;} .delivery_option_carrier td + td + td {width:200px} diff --git a/themes/default/order-carrier.tpl b/themes/default/order-carrier.tpl index c2c83f13d..25e164044 100644 --- a/themes/default/order-carrier.tpl +++ b/themes/default/order-carrier.tpl @@ -293,7 +293,7 @@

{l s='Leave a message'}

{l s='If you would like to add a comment about your order, please write it in the field below.'}

-

+

{/if} From 5fbe5b76873168841703030913fde1a89ebfca43 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Fri, 29 Mar 2013 09:34:48 +0100 Subject: [PATCH 3/6] // remove warnings --- controllers/front/AuthController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/front/AuthController.php b/controllers/front/AuthController.php index d9d750c27..727945eb2 100644 --- a/controllers/front/AuthController.php +++ b/controllers/front/AuthController.php @@ -379,8 +379,8 @@ class AuthControllerCore extends FrontController $this->errors[] = Tools::displayError('An account using this email address has already been registered.', false); // Preparing customer $customer = new Customer(); - $lastnameAddress = $_POST['lastname']; - $firstnameAddress = $_POST['firstname']; + $lastnameAddress = Tools::getValue('lastname'); + $firstnameAddress = Tools::getValue('firstname'); $_POST['lastname'] = Tools::getValue('customer_lastname'); $_POST['firstname'] = Tools::getValue('customer_firstname'); From 7b936305954e3b570b66bfdea19abbfdfa2f6e34 Mon Sep 17 00:00:00 2001 From: vAugagneur Date: Fri, 29 Mar 2013 11:27:27 +0100 Subject: [PATCH 4/6] //added new step in installer to install addons module --- install-dev/controllers/http/process.php | 30 ++++++++++++++++++++-- install-dev/models/install.php | 32 ++++++++++++++++++------ 2 files changed, 53 insertions(+), 9 deletions(-) diff --git a/install-dev/controllers/http/process.php b/install-dev/controllers/http/process.php index ff63be1f0..58bbed13c 100644 --- a/install-dev/controllers/http/process.php +++ b/install-dev/controllers/http/process.php @@ -95,7 +95,9 @@ class InstallControllerHttpProcess extends InstallControllerHttp $this->processConfigureShop(); elseif (Tools::getValue('installModules') && !empty($this->session->process_validated['configureShop'])) $this->processInstallModules(); - elseif (Tools::getValue('installFixtures') && !empty($this->session->process_validated['installModules'])) + elseif (Tools::getValue('installModulesAddons') && !empty($this->session->process_validated['installModules'])) + $this->processInstallAddonsModules(); + elseif (Tools::getValue('installFixtures') && !empty($this->session->process_validated['installModulesAddons'])) $this->processInstallFixtures(); elseif (Tools::getValue('installTheme') && !empty($this->session->process_validated['installModules'])) $this->processInstallTheme(); @@ -231,6 +233,23 @@ class InstallControllerHttpProcess extends InstallControllerHttp $this->session->process_validated = array_merge($this->session->process_validated, array('installModules' => true)); $this->ajaxJsonAnswer(true); } + + /** + * PROCESS : installModulesAddons + * Install modules from addons + */ + public function processInstallAddonsModules() + { + $this->initializeContext(); + if ($module = Tools::getValue('module') && $id_module = Tools::getValue('id_module')) + $result = $this->model_install->installModulesAddons(array('name' => $module, 'id_module' => $id_module)); + else + $result = $this->model_install->installModulesAddons(); + if (!$result || $this->model_install->getErrors()) + $this->ajaxJsonAnswer(false, $this->model_install->getErrors()); + $this->session->process_validated = array_merge($this->session->process_validated, array('installModulesAddons' => true)); + $this->ajaxJsonAnswer(true); + } /** * PROCESS : installFixtures @@ -312,6 +331,8 @@ class InstallControllerHttpProcess extends InstallControllerHttp */ public function display() { + $this->initializeContext(); + // The installer SHOULD take less than 32M, but may take up to 35/36M sometimes. So 42M is a good value :) $low_memory = Tools::getMemoryLimit() < Tools::getOctets('42M'); @@ -333,12 +354,17 @@ class InstallControllerHttpProcess extends InstallControllerHttp $this->process_steps[] = $populate_step; $this->process_steps[] = array('key' => 'configureShop', 'lang' => $this->l('Configure shop information')); - $install_modules = array('key' => 'installModules', 'lang' => $this->l('Install modules')); if ($low_memory) foreach ($this->model_install->getModulesList() as $module) $install_modules['subtasks'][] = array('module' => $module); $this->process_steps[] = $install_modules; + + $install_modules = array('key' => 'installModulesAddons', 'lang' => $this->l('Install modules Addons')); + if ($low_memory) + foreach ($this->model_install->getAddonsModulesList() as $module) + $install_modules['subtasks'][] = array('module' => (string)$module['name'], 'id_module' => (string)$module['id_module']); + $this->process_steps[] = $install_modules; // Fixtures are installed only if option is selected if ($this->session->install_type == 'full') diff --git a/install-dev/models/install.php b/install-dev/models/install.php index 2d60d8ad6..4b5ad2211 100644 --- a/install-dev/models/install.php +++ b/install-dev/models/install.php @@ -585,7 +585,6 @@ class InstallModelInstall extends InstallAbstractModel 'statsvisits', ); } - return $modules; } @@ -602,18 +601,16 @@ class InstallModelInstall extends InstallAbstractModel return $addons_modules; } - /** * PROCESS : installModules * Download module from addons and Install all modules in ~/modules/ directory */ - public function installModules($module = null) + public function installModulesAddons($module = null) { - $modules = $module ? array($module) : $this->getModulesList(); + $addons_modules = $module ? array($module) : $this->getAddonsModulesList(); + $modules = array(); if (!InstallSession::getInstance()->safe_mode) { - $addons_modules = $this->getAddonsModulesList(); - foreach($addons_modules as $addons_module) if (file_put_contents(_PS_MODULE_DIR_.$addons_module['name'].'.zip', Tools::addonsRequest('module', array('id_module' => $addons_module['id_module'])))) if (Tools::ZipExtract(_PS_MODULE_DIR_.$addons_module['name'].'.zip', _PS_MODULE_DIR_)) @@ -622,6 +619,27 @@ class InstallModelInstall extends InstallAbstractModel unlink(_PS_MODULE_DIR_.$addons_module['name'].'.zip'); } } + $errors = array(); + foreach ($modules as $module_name) + if (!$this->installModules($module_name)) + $errors[] = $this->language->l('Cannot install module "%s"', $module_name); + + if ($errors) + { + $this->setError($errors); + return false; + } + return true; + } + + /** + * PROCESS : installModules + * Download module from addons and Install all modules in ~/modules/ directory + */ + public function installModules($module = null) + { + $modules = $module ? array($module) : $this->getModulesList(); + $errors = array(); foreach ($modules as $module_name) { @@ -634,7 +652,7 @@ class InstallModelInstall extends InstallAbstractModel } if ($errors) - { + { $this->setError($errors); return false; } From 02e7a8ca0024559b35d21c6d6dc87df52b4899e8 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Fri, 29 Mar 2013 11:37:08 +0100 Subject: [PATCH 5/6] [-] BO : Fix bug #PSCFV-8481 no live edit on index when one language is active only --- classes/controller/FrontController.php | 2 +- controllers/admin/AdminModulesPositionsController.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/controller/FrontController.php b/classes/controller/FrontController.php index 11181cc43..d636b6325 100755 --- a/classes/controller/FrontController.php +++ b/classes/controller/FrontController.php @@ -398,7 +398,7 @@ class FrontControllerCore extends Controller $this->displayRestrictedCountryPage(); if (Tools::isSubmit('live_edit') && !$this->checkLiveEditAccess()) - die(Tools::displayError()); + Tools::redirect('index.php?controller=404'); $this->iso = $iso; diff --git a/controllers/admin/AdminModulesPositionsController.php b/controllers/admin/AdminModulesPositionsController.php index f614e7755..bb01368cd 100644 --- a/controllers/admin/AdminModulesPositionsController.php +++ b/controllers/admin/AdminModulesPositionsController.php @@ -303,7 +303,7 @@ class AdminModulesPositionsControllerCore extends AdminController { $url = $this->context->shop->getBaseURL().Dispatcher::getInstance()->createUrl('index', (int)$this->context->language->id, $live_edit_params); if (Configuration::get('PS_REWRITING_SETTINGS')) - $url = str_replace('index.php', Language::getIsoById($this->context->employee->id_lang).'/', $url); + $url = str_replace('index.php', ((count(Language::getLanguages(true)) > 1)? Language::getIsoById($this->context->employee->id_lang).'/' : ''), $url); return $url; } From 06e30b91b1642387e9a902b0de0f7aa433db2563 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Fri, 29 Mar 2013 14:16:25 +0100 Subject: [PATCH 6/6] [-] BO : fixed field value saving when value is equal to 0 #PSCFV-8530 --- classes/controller/AdminController.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 3be00c67c..93e11818c 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -2298,7 +2298,7 @@ class AdminControllerCore extends Controller else { $fieldValue = $this->getFieldValue($obj, $input['name']); - if (empty($fieldValue) && isset($input['default_value'])) + if ($fieldValue === false && isset($input['default_value'])) $fieldValue = $input['default_value']; $this->fields_value[$input['name']] = $fieldValue; } @@ -2320,9 +2320,9 @@ class AdminControllerCore extends Controller public function getFieldValue($obj, $key, $id_lang = null) { if ($id_lang) - $default_value = ($obj->id && isset($obj->{$key}[$id_lang])) ? $obj->{$key}[$id_lang] : ''; + $default_value = ($obj->id && isset($obj->{$key}[$id_lang])) ? $obj->{$key}[$id_lang] : false; else - $default_value = isset($obj->{$key}) ? $obj->{$key} : ''; + $default_value = isset($obj->{$key}) ? $obj->{$key} : false; return Tools::getValue($key.($id_lang ? '_'.$id_lang : ''), $default_value); }