diff --git a/admin-dev/themes/default/template/controllers/cart_rules/informations.tpl b/admin-dev/themes/default/template/controllers/cart_rules/informations.tpl index 715bb7079..249aa3fbe 100644 --- a/admin-dev/themes/default/template/controllers/cart_rules/informations.tpl +++ b/admin-dev/themes/default/template/controllers/cart_rules/informations.tpl @@ -7,25 +7,29 @@
{foreach from=$languages item=language} + {if $languages|count > 1}
-
+
+ {/if} -
- - -
+ {if $languages|count > 1}
+
+ + +
+ {/if} {/foreach}
diff --git a/admin-dev/themes/default/template/controllers/products/features.tpl b/admin-dev/themes/default/template/controllers/products/features.tpl index fc270497c..b24279195 100644 --- a/admin-dev/themes/default/template/controllers/products/features.tpl +++ b/admin-dev/themes/default/template/controllers/products/features.tpl @@ -68,14 +68,17 @@ {foreach from=$languages key=k item=language} + {if $languages|count > 1}
+ {/if} + {if $languages|count > 1}
+ {/if} {/foreach} @@ -112,4 +116,5 @@ {/if} \ No newline at end of file diff --git a/admin-dev/themes/default/template/helpers/kpi/kpi.tpl b/admin-dev/themes/default/template/helpers/kpi/kpi.tpl index 9499f16a5..32294bc1a 100644 --- a/admin-dev/themes/default/template/helpers/kpi/kpi.tpl +++ b/admin-dev/themes/default/template/helpers/kpi/kpi.tpl @@ -45,9 +45,9 @@ success: function(jsonData){ if (!jsonData.has_errors) { - if (jsonData.value) + if (jsonData.value != undefined) $('#{$id|addslashes} .value').html(jsonData.value); - if (jsonData.data) + if (jsonData.data != undefined) { $("#{$id|addslashes} .boxchart svg").remove(); set_d3_{$id|str_replace:'-':'_'|addslashes}(jsonData.data); diff --git a/admin-dev/themes/default/template/helpers/options/options.tpl b/admin-dev/themes/default/template/helpers/options/options.tpl index be76e0a16..42ede4696 100644 --- a/admin-dev/themes/default/template/helpers/options/options.tpl +++ b/admin-dev/themes/default/template/helpers/options/options.tpl @@ -230,13 +230,18 @@
{foreach $field['languages'] AS $id_lang => $value} + {if $field['languages']|count > 1}
+ {else} +
+ {/if} + {if $field['languages']|count > 1}
+ {else} +
+ {/if} {/foreach}
diff --git a/classes/ProductSale.php b/classes/ProductSale.php index 2f8166a4d..1cb8aed99 100644 --- a/classes/ProductSale.php +++ b/classes/ProductSale.php @@ -142,10 +142,12 @@ class ProductSaleCore $sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); $sql = 'SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, MAX(image_shop.`id_image`) id_image, il.`legend`, - ps.`quantity` AS sales, p.`ean13`, p.`upc`, cl.`link_rewrite` AS category + ps.`quantity` AS sales, p.`ean13`, p.`upc`, cl.`link_rewrite` AS category, p.show_price, p.available_for_order, p.quantity, p.customizable, + IFNULL(pa.minimal_quantity, p.minimal_quantity) as minimal_quantity, p.out_of_stock FROM `'._DB_PREFIX_.'product_sale` ps LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product` '.Shop::addSqlAssociation('product', 'p').' + LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (ps.`id_product` = pa.`id_product` AND pa.default_on = 1) LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').' @@ -166,6 +168,7 @@ class ProductSaleCore GROUP BY product_shop.id_product ORDER BY sales DESC LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products; + if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql)) return false; @@ -173,6 +176,13 @@ class ProductSaleCore { $row['link'] = $context->link->getProductLink($row['id_product'], $row['link_rewrite'], $row['category'], $row['ean13']); $row['id_image'] = Product::defineProductImage($row, $id_lang); + $row['allow_oosp'] = Product::isAvailableWhenOutOfStock($row['out_of_stock']); + $row['price_tax_exc'] = Product::getPriceStatic( + (int)$row['id_product'], + false, + ((isset($row['id_product_attribute']) && !empty($row['id_product_attribute'])) ? (int)$row['id_product_attribute'] : null), + (Product::$_taxCalculationMethod == PS_TAX_EXC ? 2 : 6) + ); } return $result; } diff --git a/controllers/admin/AdminCarrierWizardController.php b/controllers/admin/AdminCarrierWizardController.php index d6c9cbb40..bdf8c9319 100644 --- a/controllers/admin/AdminCarrierWizardController.php +++ b/controllers/admin/AdminCarrierWizardController.php @@ -142,9 +142,9 @@ class AdminCarrierWizardControllerCore extends AdminController $bread_extended = array_unique($this->breadcrumbs); if (Tools::getValue('id_carrier')) - $bread_extended[1] = $this->l('Edit'); + $bread_extended[2] = $this->l('Edit'); else - $bread_extended[1] = $this->l('Add new'); + $bread_extended[2] = $this->l('Add new'); $this->toolbar_title = $bread_extended; } diff --git a/controllers/admin/AdminGroupsController.php b/controllers/admin/AdminGroupsController.php index e1d74893c..d5552cda4 100644 --- a/controllers/admin/AdminGroupsController.php +++ b/controllers/admin/AdminGroupsController.php @@ -208,14 +208,14 @@ class AdminGroupsControllerCore extends AdminController $this->bulk_actions = false; $this->no_link = true; $this->fields_list = (array( - 'id_customer' => array('title' => $this->l('ID'), 'width' => 15, 'align' => 'center', 'filter_key' => 'c!id_customer'), - 'id_gender' => array('title' => $this->l('Titles'), 'align' => 'center', 'width' => 50,'icon' => $genders_icon, 'list' => $genders), - 'firstname' => array('title' => $this->l('First name'), 'align' => 'center'), - 'lastname' => array('title' => $this->l('Last name'), 'align' => 'center'), - 'email' => array('title' => $this->l('Email address'), 'width' => 150, 'align' => 'center', 'filter_key' => 'c!email', 'orderby' => true), - 'birthday' => array('title' => $this->l('Birth date'), 'width' => 150, 'align' => 'right', 'type' => 'date'), - 'date_add' => array('title' => $this->l('Register date'), 'width' => 150, 'align' => 'right', 'type' => 'date'), - 'active' => array('title' => $this->l('Enabled'),'align' => 'center','width' => 20, 'active' => 'status','type' => 'bool') + 'id_customer' => array('title' => $this->l('ID'), 'align' => 'center', 'filter_key' => 'c!id_customer', 'class' => 'fixed-width-xs'), + 'id_gender' => array('title' => $this->l('Titles'), 'icon' => $genders_icon, 'list' => $genders), + 'firstname' => array('title' => $this->l('First name')), + 'lastname' => array('title' => $this->l('Last name')), + 'email' => array('title' => $this->l('Email address'), 'filter_key' => 'c!email', 'orderby' => true), + 'birthday' => array('title' => $this->l('Birth date'), 'type' => 'date', 'class' => 'fixed-width-md', 'align' => 'center'), + 'date_add' => array('title' => $this->l('Register date'), 'type' => 'date', 'class' => 'fixed-width-md', 'align' => 'center'), + 'active' => array('title' => $this->l('Enabled'),'align' => 'center', 'class' => 'fixed-width-sm', 'active' => 'status','type' => 'bool') )); $this->_select = 'c.*'; $this->_join = 'LEFT JOIN `'._DB_PREFIX_.'customer` c ON (a.`id_customer` = c.`id_customer`)'; diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index 6351ce766..4e248c459 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -2212,6 +2212,9 @@ class AdminProductsControllerCore extends AdminController public function initContent($token = null) { + //Required for Features Textarea autosize + $this->addJS(_PS_JS_DIR_.'jquery/plugins/jquery.autosize.min.js'); + if ($this->display == 'edit' || $this->display == 'add') { $this->fields_form = array(); diff --git a/controllers/admin/AdminStockMvtController.php b/controllers/admin/AdminStockMvtController.php index 7ff30e5c6..b5d515288 100644 --- a/controllers/admin/AdminStockMvtController.php +++ b/controllers/admin/AdminStockMvtController.php @@ -159,6 +159,7 @@ class AdminStockMvtControllerCore extends AdminController LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON (pac.id_product_attribute = stock.id_product_attribute) LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON ( al.id_attribute = pac.id_attribute + AND pac.id_product_attribute <> 0 AND al.id_lang = '.(int)$this->context->language->id.' )'; // overrides group diff --git a/controllers/admin/AdminTabsController.php b/controllers/admin/AdminTabsController.php index 3a7eb3f0d..64b95e9a1 100644 --- a/controllers/admin/AdminTabsController.php +++ b/controllers/admin/AdminTabsController.php @@ -34,6 +34,7 @@ class AdminTabsControllerCore extends AdminController $this->context = Context::getContext(); $this->multishop_context = Shop::CONTEXT_ALL; $this->table = 'tab'; + $this->list_id = 'tab'; $this->className = 'Tab'; $this->lang = true; @@ -85,11 +86,19 @@ class AdminTabsControllerCore extends AdminController public function initPageHeaderToolbar() { $this->page_header_toolbar_title = $this->l('Menus'); - $this->page_header_toolbar_btn['new_menu'] = array( - 'href' => self::$currentIndex.'&addtab&token='.$this->token, - 'desc' => $this->l('Add new menu'), - 'icon' => 'process-icon-new' - ); + + if ($this->display == 'details') + $this->page_header_toolbar_btn['back_to_list'] = array( + 'href' => Context::getContext()->link->getAdminLink('AdminTabs'), + 'desc' => $this->l('Back to list'), + 'icon' => 'process-icon-back' + ); + else + $this->page_header_toolbar_btn['new_menu'] = array( + 'href' => self::$currentIndex.'&addtab&token='.$this->token, + 'desc' => $this->l('Add new menu'), + 'icon' => 'process-icon-new' + ); parent::initPageHeaderToolbar(); } @@ -212,53 +221,42 @@ class AdminTabsControllerCore extends AdminController return parent::renderList(); } - /** - * method call when ajax request is made with the details row action - * @see AdminController::postProcess() - */ - public function ajaxProcessDetails() + public function initProcess() { - if (($id = Tools::getValue('id'))) + if (Tools::getIsset('details'.$this->table)) { - // override attributes - $this->display = 'list'; - $this->lang = false; + $this->list_id = 'details'; + if (isset($_POST['submitReset'.$this->list_id])) + $this->processResetFilters(); + } + else + $this->list_id = 'tab'; + + return parent::initProcess(); + } + + public function renderDetails() + { + if (($id = Tools::getValue('id_tab'))) + { + $this->lang = false; + $this->list_id = 'details'; $this->addRowAction('edit'); $this->addRowAction('delete'); + $this->toolbar_btn = array(); + $tab = $this->loadObject($id); + $this->toolbar_title = $tab->name[$this->context->employee->id_lang]; $this->_select = 'b.*'; $this->_join = 'LEFT JOIN `'._DB_PREFIX_.'tab_lang` b ON (b.`id_tab` = a.`id_tab` AND b.`id_lang` = '.$this->context->language->id.')'; $this->_where = 'AND a.`id_parent` = '.(int)$id; $this->_orderBy = 'position'; - - // get list and force no limit clause in the request - $this->getList($this->context->language->id); - - // Render list - $helper = new HelperList(); - $helper->actions = $this->actions; - $helper->list_skip_actions = $this->list_skip_actions; - $helper->no_link = true; - $helper->shopLinkType = ''; - $helper->identifier = $this->identifier; - $helper->imageType = $this->imageType; - $helper->toolbar_scroll = false; - $helper->show_toolbar = false; - $helper->orderBy = 'position'; - $helper->orderWay = 'ASC'; - $helper->currentIndex = self::$currentIndex; - $helper->token = $this->token; - $helper->table = $this->table; - $helper->position_identifier = $this->position_identifier; - // Force render - no filter, form, js, sorting ... - $helper->simple_header = true; - $content = $helper->generateList($this->_list, $this->fields_list); - - echo Tools::jsonEncode(array('use_parent_structure' => false, 'data' => $content)); + + self::$currentIndex = self::$currentIndex.'&details'.$this->table; + $this->processFilter(); + return parent::renderList(); } - - die; } public function postProcess() diff --git a/controllers/front/AddressController.php b/controllers/front/AddressController.php index eb17888ce..f8575864b 100644 --- a/controllers/front/AddressController.php +++ b/controllers/front/AddressController.php @@ -44,6 +44,7 @@ class AddressControllerCore extends FrontController { parent::setMedia(); $this->addJS(_THEME_JS_DIR_.'tools/statesManagement.js'); + $this->addJS(_PS_JS_DIR_.'validate.js'); } /** @@ -268,6 +269,7 @@ class AddressControllerCore extends FrontController // Assign common vars $this->context->smarty->assign(array( + 'address_validation' => Address::$definition['fields'], 'one_phone_at_least' => (int)Configuration::get('PS_ONE_PHONE_AT_LEAST'), 'onr_phone_at_least' => (int)Configuration::get('PS_ONE_PHONE_AT_LEAST'), //retro compat 'ajaxurl' => _MODULE_DIR_, @@ -339,8 +341,8 @@ class AddressControllerCore extends FrontController protected function assignAddressFormat() { $id_country = is_null($this->_address)? 0 : (int)$this->_address->id_country; - $dlv_adr_fields = AddressFormat::getOrderedAddressFields($id_country, true, true); - $this->context->smarty->assign('ordered_adr_fields', $dlv_adr_fields); + $ordered_adr_fields = AddressFormat::getOrderedAddressFields($id_country, true, true); + $this->context->smarty->assign('ordered_adr_fields', $ordered_adr_fields); } /** diff --git a/controllers/front/CompareController.php b/controllers/front/CompareController.php index 410946a84..f98c63e0b 100644 --- a/controllers/front/CompareController.php +++ b/controllers/front/CompareController.php @@ -65,6 +65,7 @@ class CompareControllerCore extends FrontController die('1'); } + die('0'); } /** @@ -73,6 +74,8 @@ class CompareControllerCore extends FrontController */ public function initContent() { + if (Tools::getValue('ajax')) + return; parent::initContent(); //Clean compare product table @@ -86,7 +89,10 @@ class CompareControllerCore extends FrontController if (($product_list = Tools::getValue('compare_product_list')) && ($postProducts = (isset($product_list) ? rtrim($product_list, '|') : ''))) $ids = array_unique(explode('|', $postProducts)); else if (isset($this->context->cookie->id_compare)) + { $ids = CompareProduct::getCompareProducts($this->context->cookie->id_compare); + Tools::redirect($this->context->link->getPageLink('products-comparison', null, $this->context->language->id, array('compare_product_list' => implode('|', $ids)))); + } else $ids = null; diff --git a/install-dev/langs/br/data/tab.xml b/install-dev/langs/br/data/tab.xml index d4ff4a4ae..0fefbe332 100644 --- a/install-dev/langs/br/data/tab.xml +++ b/install-dev/langs/br/data/tab.xml @@ -100,4 +100,5 @@ + diff --git a/install-dev/langs/de/data/tab.xml b/install-dev/langs/de/data/tab.xml index 8189b5de6..f8f5dc007 100644 --- a/install-dev/langs/de/data/tab.xml +++ b/install-dev/langs/de/data/tab.xml @@ -100,4 +100,5 @@ + diff --git a/install-dev/langs/en/data/tab.xml b/install-dev/langs/en/data/tab.xml index c97840cfc..8b01c7a40 100644 --- a/install-dev/langs/en/data/tab.xml +++ b/install-dev/langs/en/data/tab.xml @@ -100,4 +100,5 @@ + diff --git a/install-dev/langs/es/data/tab.xml b/install-dev/langs/es/data/tab.xml index 875021194..2eef1c1f4 100644 --- a/install-dev/langs/es/data/tab.xml +++ b/install-dev/langs/es/data/tab.xml @@ -100,4 +100,5 @@ + diff --git a/install-dev/langs/fr/data/tab.xml b/install-dev/langs/fr/data/tab.xml index 360a56ef9..09ec7e7c6 100644 --- a/install-dev/langs/fr/data/tab.xml +++ b/install-dev/langs/fr/data/tab.xml @@ -100,4 +100,5 @@ + diff --git a/install-dev/langs/it/data/tab.xml b/install-dev/langs/it/data/tab.xml index 26dcddef9..87fa2e54a 100644 --- a/install-dev/langs/it/data/tab.xml +++ b/install-dev/langs/it/data/tab.xml @@ -100,4 +100,5 @@ + diff --git a/install-dev/langs/nl/data/tab.xml b/install-dev/langs/nl/data/tab.xml index a2a8202b0..e428cb507 100644 --- a/install-dev/langs/nl/data/tab.xml +++ b/install-dev/langs/nl/data/tab.xml @@ -102,4 +102,5 @@ + diff --git a/install-dev/langs/pl/data/tab.xml b/install-dev/langs/pl/data/tab.xml index 2b1bf046e..f2d84782d 100644 --- a/install-dev/langs/pl/data/tab.xml +++ b/install-dev/langs/pl/data/tab.xml @@ -100,4 +100,5 @@ + diff --git a/js/jquery/plugins/smartWizard/jquery.smartWizard.js b/js/jquery/plugins/smartWizard/jquery.smartWizard.js index 3d2001ae0..5a78185f4 100644 --- a/js/jquery/plugins/smartWizard/jquery.smartWizard.js +++ b/js/jquery/plugins/smartWizard/jquery.smartWizard.js @@ -21,9 +21,9 @@ function SmartWizard(target, options) { this.elmStepContainer = $('
').addClass("stepContainer"); this.loader = $('
Loading
').addClass("loader"); this.buttons = { - next : $(''+options.labelNext+'').attr("href","#").addClass("buttonNext"), - previous : $(''+options.labelPrevious+'').attr("href","#").addClass("buttonPrevious"), - finish : $(''+options.labelFinish+'').attr("href","#").addClass("buttonFinish") + next : $(''+options.labelNext+'').attr("href","#").addClass("buttonNext").addClass("btn"), + previous : $(''+options.labelPrevious+'').attr("href","#").addClass("buttonPrevious").addClass("btn"), + finish : $(''+options.labelFinish+'').attr("href","#").addClass("buttonFinish").addClass("btn") }; /* diff --git a/js/validate.js b/js/validate.js new file mode 100644 index 000000000..766d319ed --- /dev/null +++ b/js/validate.js @@ -0,0 +1,72 @@ +/* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Open Software License (OSL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/osl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +function validate_isName(s) +{ + var reg = /^[^0-9!<>,;?=+()@#"°{}_$%:]+$/; + return reg.test(s); +} + +function validate_isGenericName(s) +{ + var reg = /^[^<>={}]+$/; + return reg.test(s); +} + +function validate_isAddress(s) +{ + var reg = /^[^!<>?=+@{}_$%]+$/; + return reg.test(s); +} + +function validate_isPostCode(s) +{ + var reg = /^[a-z 0-9-]+$/i; + return reg.test(s); +} + +function validate_isCityName(s) +{ + var reg = /^[^!<>;?=+@#"°{}_$%]+$/; + return reg.test(s); +} + +function validate_isMessage(s) +{ + var reg = /^[^<>{}]+$/; + return reg.test(s); +} + +function validate_isPhoneNumber(s) +{ + var reg = /^[+0-9. ()-]+$/; + return reg.test(s); +} + +function validate_isDniLite(s) +{ + var reg = /^[0-9a-z-.]{1,16}$/i; + return reg.test(s); +} diff --git a/modules/blockbestsellers/blockbestsellers.php b/modules/blockbestsellers/blockbestsellers.php index 2d06046b5..cfe87a90d 100644 --- a/modules/blockbestsellers/blockbestsellers.php +++ b/modules/blockbestsellers/blockbestsellers.php @@ -217,7 +217,7 @@ class BlockBestSellers extends Module if (Configuration::get('PS_CATALOG_MODE')) return false; - if (!($result = ProductSale::getBestSalesLight((int)$params['cookie']->id_lang, 0, 5))) + if (!($result = ProductSale::getBestSalesLight((int)$params['cookie']->id_lang, 0, 8))) return (Configuration::get('PS_BLOCK_BESTSELLERS_DISPLAY') ? array() : false); $bestsellers = array(); diff --git a/modules/homefeatured/homefeatured.php b/modules/homefeatured/homefeatured.php index 5d7ec5b57..5a2b1ca54 100644 --- a/modules/homefeatured/homefeatured.php +++ b/modules/homefeatured/homefeatured.php @@ -112,6 +112,7 @@ class HomeFeatured extends Module public function hookHeader($params) { $this->context->controller->addCSS(($this->_path).'homefeatured.css', 'all'); + $this->context->controller->addJS(($this->_path).'js/homefeatured.js'); } public function hookDisplayHome($params) diff --git a/modules/homefeatured/js/homefeatured.js b/modules/homefeatured/js/homefeatured.js new file mode 100644 index 000000000..62606689b --- /dev/null +++ b/modules/homefeatured/js/homefeatured.js @@ -0,0 +1,36 @@ +/* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +$(document).ready(function() +{ + $('.title_block').click(function(){ + var button = $(this); + $('#index #center_column .products_block').removeClass('active'); + button.parent('.products_block').addClass('active'); + $('#index #center_column .products_block .block_content').hide(0, function(){ + button.next('.block_content').show(0); + }); + }); +}); \ No newline at end of file diff --git a/themes/default/address.tpl b/themes/default/address.tpl index 95159c25b..263d3465e 100644 --- a/themes/default/address.tpl +++ b/themes/default/address.tpl @@ -100,7 +100,7 @@ $(function(){ldelim} {if $field_name eq 'company'}

- +

{/if} {if $field_name eq 'vat_number'} @@ -108,7 +108,7 @@ $(function(){ldelim}

- +

@@ -116,38 +116,43 @@ $(function(){ldelim} {if $field_name eq 'firstname'}

- +

{/if} {if $field_name eq 'lastname'}

- +

{/if} {if $field_name eq 'address1'}

- +

{/if} {if $field_name eq 'address2'}

- +

{/if} {if $field_name eq 'postcode'} {assign var="postCodeExist" value="true"}

- +

{/if} {if $field_name eq 'city'}

- +

{* if customer hasn't update his layout address, country has to be verified @@ -199,7 +204,8 @@ $(function(){ldelim} {if $postCodeExist eq "false"} {/if} {if $stateExist eq "false"} @@ -212,22 +218,25 @@ $(function(){ldelim} {/if}

- +

{if isset($one_phone_at_least) && $one_phone_at_least}

{l s='You must register at least one phone number.'}

{/if}

- +

- +

- +

diff --git a/themes/default/modules/blockbestsellers/blockbestsellers-home.tpl b/themes/default/modules/blockbestsellers/blockbestsellers-home.tpl index 9aa6884da..e52fd8017 100644 --- a/themes/default/modules/blockbestsellers/blockbestsellers-home.tpl +++ b/themes/default/modules/blockbestsellers/blockbestsellers-home.tpl @@ -22,35 +22,5 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} - - -

-

{l s='Top sellers' mod='blockbestsellers'}

- {if isset($best_sellers) AND $best_sellers} -
- {assign var='liHeight' value=320} - {assign var='nbItemsPerLine' value=4} - {assign var='nbLi' value=$best_sellers|@count} - {math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines} - {math equation="nbLines*liHeight" nbLines=$nbLines|ceil liHeight=$liHeight assign=ulHeight} - -

{l s='All best sellers' mod='blockbestsellers'}

-
- {else} -

{l s='No best sellers at this time' mod='blockbestsellers'}

- {/if} -
-
- +{capture name=title}{l s='Best sellers' mod='blockbestsellers'}{/capture} +{include file="$tpl_dir./product-list-home.tpl" id="blockbestsellers_block" title=$smarty.capture.title products=$best_sellers} diff --git a/themes/default/modules/blocknewproducts/blocknewproducts.tpl b/themes/default/modules/blocknewproducts/blocknewproducts.tpl index 208e7f63f..f57e2ffd0 100644 --- a/themes/default/modules/blocknewproducts/blocknewproducts.tpl +++ b/themes/default/modules/blocknewproducts/blocknewproducts.tpl @@ -22,29 +22,5 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} - - -
-

{l s='New products' mod='blocknewproducts'}

-
- {if $new_products !== false} -
    - {foreach from=$new_products item='product' name='newProducts'} - {if $smarty.foreach.newProducts.index < 2} - {$product.legend|escape:html:'UTF-8'} - {/if} - {/foreach} -
-
- {foreach from=$new_products item=newproduct name=myLoop} -
{$newproduct.name|strip_tags|escape:html:'UTF-8'}
- {if $newproduct.description_short}
{$newproduct.description_short|strip_tags:'UTF-8'|truncate:75:'...'}
{l s='Read more' mod='blocknewproducts'}
{/if} - {/foreach} -
-

» {l s='All new products' mod='blocknewproducts'}

- {else} -

» {l s='No new products at this time' mod='blocknewproducts'}

- {/if} -
-
- \ No newline at end of file +{capture name=title}{l s='New arrivals' mod='blocknewproducts'}{/capture} +{include file="$tpl_dir./product-list-home.tpl" id="blocknewproducts_block" title=$smarty.capture.title products=$new_products} \ No newline at end of file diff --git a/themes/default/modules/homefeatured/homefeatured.tpl b/themes/default/modules/homefeatured/homefeatured.tpl index 89b472bf2..4a346ac11 100644 --- a/themes/default/modules/homefeatured/homefeatured.tpl +++ b/themes/default/modules/homefeatured/homefeatured.tpl @@ -22,45 +22,5 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} - - - - +{capture name=title}{l s='Popular' mod='homefeatured'}{/capture} +{include file="$tpl_dir./product-list-home.tpl" id="homefeatured_block" title=$smarty.capture.title} \ No newline at end of file diff --git a/themes/default/product-list-colors.tpl b/themes/default/product-list-colors.tpl new file mode 100644 index 000000000..5bfa034e2 --- /dev/null +++ b/themes/default/product-list-colors.tpl @@ -0,0 +1,31 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + + +
    + {foreach from=$colors_list item='color'} +
  • + {/foreach} +
diff --git a/themes/default/product-list-home.tpl b/themes/default/product-list-home.tpl new file mode 100644 index 000000000..45e19689c --- /dev/null +++ b/themes/default/product-list-home.tpl @@ -0,0 +1,62 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +

{if isset($title)}{$title}{/if}

+ {if isset($products) AND $products} +
+ {assign var='liHeight' value=250} + {assign var='nbItemsPerLine' value=4} + {assign var='nbLi' value=$products|@count} + {math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines} + {math equation="nbLines*liHeight" nbLines=$nbLines|ceil liHeight=$liHeight assign=ulHeight} +
    + {foreach from=$products item=product name=homeProducts} + {math equation="(total%perLine)" total=$smarty.foreach.homeProducts.total perLine=$nbItemsPerLine assign=totModulo} + {if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if} +
  • + {$product.name|escape:html:'UTF-8'}{if isset($product.new) && $product.new == 1}{l s='New'}{/if} +
    {$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}
    + +
    + {l s='View'} + {if isset($product.show_price) && $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}

    {if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}

    {else}
    {/if} + {if ((isset($product.id_product_attribute) && $product.id_product_attribute == 0) OR (isset($add_prod_display) AND ($add_prod_display == 1))) AND (isset($product.available_for_order) && $product.available_for_order) AND !isset($restricted_country_mode) AND $product.minimal_quantity == 1 AND $product.customizable != 2 AND !$PS_CATALOG_MODE} + {if ($product.quantity > 0 OR $product.allow_oosp)} + {l s='Add to cart'} + {else} + {l s='Add to cart'} + {/if} + {else} +
    + {/if} +
    +
  • + {/foreach} +
+
+ {else} +

{l s='No products'}

+ {/if} + \ No newline at end of file