From 2d31bd19e8e0e8527a251a581b6c6069d0e9441a Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 5 Feb 2013 14:18:34 +0100 Subject: [PATCH 01/19] [-] TR : Fix #PSCFI-6818 increase input vars in french --- translations/fr/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/fr/admin.php b/translations/fr/admin.php index 0233fe4b4..60ddf61db 100644 --- a/translations/fr/admin.php +++ b/translations/fr/admin.php @@ -4112,7 +4112,7 @@ $_LANGADM['AdminTranslations1476dfb963d54c697399a79fafa90151'] = 'expressions'; $_LANGADM['AdminTranslations1e6d57e813355689e9c77e947d73ad8f'] = 'Depuis :'; $_LANGADM['AdminTranslations2303c057afcbe798a5d9811d36e88050'] = 'Modifier les traductions'; $_LANGADM['AdminTranslations24f4b4e58327af6b347c2894f3af7b63'] = 'Cette expression utilise ces syntaxes spécifiques :'; -$_LANGADM['AdminTranslations26a8ee44d835a6301f1ffa7686749633'] = 'Demandez à votre hébergeur d\'augmenter les limites POST et REQUEST à'; +$_LANGADM['AdminTranslations26a8ee44d835a6301f1ffa7686749633'] = 'Demandez à votre hébergeur d\'augmenter les limites POST, REQUEST et INPUT à'; $_LANGADM['AdminTranslations282d961c3071465db42647be8f662671'] = 'Traductions des noms des champs'; $_LANGADM['AdminTranslations28cbbb20b2a45b89ba9f8fc27cb4d4ce'] = 'Modifier ce modèle d\'e-mail'; $_LANGADM['AdminTranslations2e8d630dcde90b8b5be0468678f88551'] = 'Import/export de traductions'; From 0052a9a94a4f78e7b1c2eac6e94a602283d23b3b Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Tue, 5 Feb 2013 15:02:29 +0100 Subject: [PATCH 02/19] [*] Core : added automatic conversion of ',' into '.' for floating values --- classes/ObjectModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/ObjectModel.php b/classes/ObjectModel.php index 29e48fe79..d0b70720d 100644 --- a/classes/ObjectModel.php +++ b/classes/ObjectModel.php @@ -389,7 +389,7 @@ abstract class ObjectModelCore return (int)$value; case self::TYPE_FLOAT : - return (float)$value; + return (float)str_replace(',', '.', $value); case self::TYPE_DATE : if (!$value) From d2ba246a087c316464ec384db0007bce55034f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 5 Feb 2013 15:28:09 +0100 Subject: [PATCH 03/19] [-] BO: Don't display delete icon for order carts --- classes/controller/AdminController.php | 5 +++++ controllers/admin/AdminCartsController.php | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index d7cc66f89..d5954f850 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -175,6 +175,9 @@ class AdminControllerCore extends Controller /** @var array required_fields to display in the Required Fields form */ public $required_fields = array(); + + /** @var Helper */ + protected $helper; /** * @var array actions to execute on multiple selections @@ -1635,6 +1638,8 @@ class AdminControllerCore extends Controller // For each action, try to add the corresponding skip elements list $helper->list_skip_actions = $this->list_skip_actions; + + $this->helper = $helper; } public function setMedia() diff --git a/controllers/admin/AdminCartsController.php b/controllers/admin/AdminCartsController.php index 8a99921a5..a0a85295e 100755 --- a/controllers/admin/AdminCartsController.php +++ b/controllers/admin/AdminCartsController.php @@ -746,4 +746,14 @@ class AdminCartsControllerCore extends AdminController { return ($echo == '0' ? Configuration::get('PS_SHOP_NAME') : $echo); } + + public function displayDeleteLink($token = null, $id, $name = null) + { + // don't display ordered carts + foreach ($this->_list as $row) + if ($row['id_cart'] == $id && isset($row['id_order']) && $row['id_order']) + return ; + + return $this->helper->displayDeleteLink($token, $id, $name); + } } From b53b7479aba0fce83b999a883114406d3894f7f6 Mon Sep 17 00:00:00 2001 From: sLorenzini Date: Tue, 5 Feb 2013 15:53:54 +0100 Subject: [PATCH 04/19] [-] FO: fixed bug rendering Problems in IE6 with default theme - #PSCFV-7628 --- modules/blockuserinfo/blockuserinfo.css | 6 +----- themes/default/modules/blockcart/blockcart.tpl | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/modules/blockuserinfo/blockuserinfo.css b/modules/blockuserinfo/blockuserinfo.css index cb3f68e1b..235a1b271 100644 --- a/modules/blockuserinfo/blockuserinfo.css +++ b/modules/blockuserinfo/blockuserinfo.css @@ -13,11 +13,7 @@ } /* cart */ -#shopping_cart { - - - -} +.lt-ie6 #shopping_cart {width: 130px;} #shopping_cart a{ height: 15px; padding:15px 27px 10px 43px; diff --git a/themes/default/modules/blockcart/blockcart.tpl b/themes/default/modules/blockcart/blockcart.tpl index 3430c5e31..34320bd5b 100644 --- a/themes/default/modules/blockcart/blockcart.tpl +++ b/themes/default/modules/blockcart/blockcart.tpl @@ -44,11 +44,11 @@ var delete_txt = '{l s='Delete' mod='blockcart' js=1}';

- {l s='Cart' mod='blockcart'} + {l s='Cart' mod='blockcart'} {if $ajax_allowed}     - {/if} + {/if}

From 61265e587f6267a95b00b6e092f7c4a715c2e60b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 5 Feb 2013 16:33:29 +0100 Subject: [PATCH 05/19] [-] BO: Fix error message for new language creation and iso code not exists --- controllers/admin/AdminLanguagesController.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/controllers/admin/AdminLanguagesController.php b/controllers/admin/AdminLanguagesController.php index f9689f2cf..11ce73750 100644 --- a/controllers/admin/AdminLanguagesController.php +++ b/controllers/admin/AdminLanguagesController.php @@ -488,8 +488,8 @@ class AdminLanguagesControllerCore extends AdminController { // Get all iso code available $lang_packs = Tools::file_get_contents('http://www.prestashop.com/download/lang_packs/get_language_pack.php?version='.(string)$_GET['ps_version'].'&iso_lang='.(string)$_GET['iso_lang']); - - if ($lang_packs !== '' && Tools::jsonDecode($lang_packs) !== null) + $result = Tools::jsonDecode($lang_packs); + if ($lang_packs !== '' && $result && !isset($result->error)) { $this->status = 'ok'; $this->content = $lang_packs; @@ -497,7 +497,10 @@ class AdminLanguagesControllerCore extends AdminController else { $this->status = 'error'; - $this->errors[] = $this->l('Wrong ISO code, or the selectec language pack is unavailable.'); + $msg = $this->l('Wrong ISO code, or the selected language pack is unavailable.'); + if ($result) + $msg = $result->msg; + $this->errors[] = $msg; } } else From 4fe6006e207677526a147bd7499c5b6bc44ce645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 5 Feb 2013 17:04:17 +0100 Subject: [PATCH 06/19] [-] BO: Forbid to delete the defaults return statuses --- controllers/admin/AdminStatusesController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/controllers/admin/AdminStatusesController.php b/controllers/admin/AdminStatusesController.php index 2d75c1818..aa11ebdb4 100644 --- a/controllers/admin/AdminStatusesController.php +++ b/controllers/admin/AdminStatusesController.php @@ -139,6 +139,7 @@ class AdminStatusesControllerCore extends AdminController $this->_orderBy = null; $this->addRowAction('editstatus'); + $this->addRowActionSkipList('delete', array(1, 2, 3, 4, 5)); $this->fields_list = array( 'id_order_return_state' => array( From 2df3e7ee8b46116495621e245395dd2e81cb69cc Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Tue, 5 Feb 2013 17:20:28 +0100 Subject: [PATCH 07/19] // Cannot import in a shop that does not exists --- controllers/admin/AdminImportController.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 6c3581753..b555899b3 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -1023,6 +1023,7 @@ class AdminImportControllerCore extends AdminController $handle = $this->openCsvFile(); $default_language_id = (int)Configuration::get('PS_LANG_DEFAULT'); AdminImportController::setLocale(); + $shop_ids = Shop::getCompleteListOfShopsID(); for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, $this->separator); $current_line++) { if (Tools::getValue('convert')) @@ -1298,8 +1299,12 @@ class AdminImportControllerCore extends AdminController { $shop = trim($shop); if (!is_numeric($shop)) - $shop = ShopGroup::getIdByName($shop); - $shops[] = $shop; + $shop = Shop::getIdByName($shop); + + if (in_array($shop, $shop_ids)) + $shops[] = $shop; + else + $this->addProductWarning(Tools::safeOutput($info['name']), $product->id, $this->l('Shop is not valid')); } if (empty($shops)) $shops = Shop::getContextListShopID(); From 38cc7103fb7eb454b3b424ebfa6e9456ba3168c1 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Tue, 5 Feb 2013 18:09:20 +0100 Subject: [PATCH 08/19] // Fixed conversion commar/dot for floating value in CSV import --- controllers/admin/AdminImportController.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index b555899b3..be5678368 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -1238,7 +1238,7 @@ class AdminImportControllerCore extends AdminController if (!$valid_link) $this->warnings[] = sprintf( Tools::displayError('Rewrite link for %1$s (ID: %2$s) was re-written as %3$s.'), - $link_rewrite, + $product->name[$default_language_id], (isset($info['id']) ? $info['id'] : 'null'), $link_rewrite ); @@ -1251,6 +1251,11 @@ class AdminImportControllerCore extends AdminController if (!empty($meta_keyword)) $meta_keyword = str_replace($this->multiple_value_separator, ',', $meta_keyword); + // Convert comma into dot for all floating values + foreach (Product::$definition['fields'] as $key => $array) + if ($array['type'] == Product::TYPE_FLOAT) + $product->{$key} = str_replace(',', '.', $product->{$key}); + $res = false; $field_error = $product->validateFields(UNFRIENDLY_ERROR, true); $lang_field_error = $product->validateFieldsLang(UNFRIENDLY_ERROR, true); From 063e6597e30b791621047660d51f96ae2ae7ddfa Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Tue, 5 Feb 2013 18:19:22 +0100 Subject: [PATCH 09/19] [-] FO : you need to execute CartRule::autoAddToCart() after CartRule::autoRemoveFromCart(), everytime #PSCFV-7674 --- classes/Cart.php | 1 + controllers/front/CartController.php | 1 + 2 files changed, 2 insertions(+) diff --git a/classes/Cart.php b/classes/Cart.php index 9b0b477e4..90ef11ea3 100644 --- a/classes/Cart.php +++ b/classes/Cart.php @@ -1191,6 +1191,7 @@ class CartCore extends ObjectModel // refresh cache of self::_products $this->_products = $this->getProducts(true); CartRule::autoRemoveFromCart(); + CartRule::autoAddToCart(); return $return; } diff --git a/controllers/front/CartController.php b/controllers/front/CartController.php index 2dddaee6f..af84b5e59 100644 --- a/controllers/front/CartController.php +++ b/controllers/front/CartController.php @@ -257,6 +257,7 @@ class CartControllerCore extends FrontController } $removed = CartRule::autoRemoveFromCart(); + CartRule::autoAddToCart(); if (count($removed) && (int)Tools::getValue('allow_refresh')) $this->ajax_refresh = true; } From 73143db07fec841ec6502f9ef0ec88f1f433be9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 5 Feb 2013 18:25:40 +0100 Subject: [PATCH 10/19] [-] MO: Display real price instead of Free for product which are not gifts on blockcart #PSCFV-6423 --- modules/blockcart/ajax-cart.js | 6 +++--- modules/blockcart/blockcart-json.tpl | 1 + modules/blockcart/blockcart.php | 1 + modules/blockcart/blockcart.tpl | 4 ++-- themes/default/modules/blockcart/blockcart.tpl | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/blockcart/ajax-cart.js b/modules/blockcart/ajax-cart.js index 4bae73e82..40d5f9480 100644 --- a/modules/blockcart/ajax-cart.js +++ b/modules/blockcart/ajax-cart.js @@ -353,7 +353,7 @@ var ajaxCart = { var removeLinks = $('#cart_block_product_' + domIdProduct).find('a.ajax_cart_block_remove_link'); if (!product.hasCustomizedDatas && !removeLinks.length) $('#' + domIdProduct + ' span.remove_link').html(' '); - if (parseFloat(product.price_float) <= 0) + if (product.is_gift) $('#' + domIdProduct + ' span.remove_link').html(''); }, @@ -453,7 +453,7 @@ var ajaxCart = { else content += ''; if (typeof(freeShippingTranslation) != 'undefined') - content += '' + (parseFloat(this.price_float) > 0 ? this.priceByLine : freeProductTranslation) + ''; + content += '' + (parseFloat(this.price_float) > 0 ? this.priceByLine : freeShippingTranslation) + ''; content += ''; if (this.hasAttributes) content += '
diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index a3b1045bf..8284e3da9 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -3379,6 +3379,7 @@ class AdminProductsControllerCore extends AdminController $product->tags = Tag::getProductTags($product->id); $data->assign('product_type', (int)Tools::getValue('type_product', $product->getType())); + $data->assign('is_in_pack', (int)Pack::isPacked($product->id)); $check_product_association_ajax = false; if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL) @@ -4115,10 +4116,6 @@ class AdminProductsControllerCore extends AdminController $this->tpl_form_vars['custom_form'] = Hook::exec('displayAdminProductsExtra', array(), (int)$id_module); } - - - - /** * delete all items in pack, then check if type_product value is 2. * if yes, add the pack items from input "inputPackItems" @@ -4143,7 +4140,9 @@ class AdminProductsControllerCore extends AdminController list($qty, $item_id) = explode('x', $line); if ($qty > 0 && isset($item_id)) { - if (!Pack::addItem((int)$product->id, (int)$item_id, (int)$qty)) + if (Pack::isPack((int)$item_id)) + $this->errors[] = Tools::displayError('You can\'t add product packs into a pack'); + elseif (!Pack::addItem((int)$product->id, (int)$item_id, (int)$qty)) $this->errors[] = Tools::displayError('An error occurred while adding products to the pack.'); } } diff --git a/js/admin-products.js b/js/admin-products.js index 88f36d8eb..1867893ba 100644 --- a/js/admin-products.js +++ b/js/admin-products.js @@ -991,7 +991,8 @@ product_tabs['Pack'] = new function(){ }, extraParams: { excludeIds : getSelectedIds(), - excludeVirtuals : 1 + excludeVirtuals : 1, + exclude_packs: 1 } }).result(function(event, item){ $('#curPackItemId').val(item[1]);