// Blocklayered: BugFix in pagination
// Blocklayered: Add translations // Blocklayered: BugFix with sliders (when cursor min and max are at 0) git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@10805 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#layered_block_left ul {
|
#layered_block_left ul {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
max-height: 100px;
|
max-height: 120px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
padding-left: 1px;
|
padding-left: 1px;
|
||||||
@@ -107,4 +107,8 @@
|
|||||||
}
|
}
|
||||||
#layered_form .color-option.on {
|
#layered_form .color-option.on {
|
||||||
border: 1px solid red;
|
border: 1px solid red;
|
||||||
|
}
|
||||||
|
#layered_form input[type=radio] {
|
||||||
|
margin-left: 2px;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
@@ -160,7 +160,17 @@ function getValueSelected(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function paginationButton() {
|
function paginationButton() {
|
||||||
$('#pagination li').not('.current, .disabled').each( function () {
|
$('#pagination a').not(':hidden').each(function () {
|
||||||
|
if ($(this).attr('href').search('&p=') == -1) {
|
||||||
|
var page = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var page = $(this).attr('href').replace(/^.*&p=(\d+).*$/, '$1');
|
||||||
|
}
|
||||||
|
var location = window.location.href.replace(/#.*$/, '');
|
||||||
|
$(this).attr('href', location+current_friendly_url.replace(/\/page-(\d+)/, '')+'/page-'+page);
|
||||||
|
});
|
||||||
|
$('#pagination li').not('.current, .disabled').each(function () {
|
||||||
var nbPage = 0;
|
var nbPage = 0;
|
||||||
if ($(this).attr('id') == 'pagination_next')
|
if ($(this).attr('id') == 'pagination_next')
|
||||||
nbPage = parseInt($('#pagination li.current').children().html())+ 1;
|
nbPage = parseInt($('#pagination li.current').children().html())+ 1;
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ class BlockLayered extends Module
|
|||||||
Configuration::updateValue('PS_LAYERED_HIDE_0_VALUES', 0);
|
Configuration::updateValue('PS_LAYERED_HIDE_0_VALUES', 0);
|
||||||
Configuration::updateValue('PS_LAYERED_SHOW_QTIES', 1);
|
Configuration::updateValue('PS_LAYERED_SHOW_QTIES', 1);
|
||||||
Configuration::updateValue('PS_LAYERED_FULL_TREE', 1);
|
Configuration::updateValue('PS_LAYERED_FULL_TREE', 1);
|
||||||
|
Configuration::updateValue('PS_LAYERED_FILTER_PRICE_USETAX', 1);
|
||||||
|
|
||||||
$this->rebuildLayeredStructure();
|
$this->rebuildLayeredStructure();
|
||||||
$this->rebuildLayeredCache();
|
$this->rebuildLayeredCache();
|
||||||
@@ -97,6 +98,7 @@ class BlockLayered extends Module
|
|||||||
Configuration::deleteByName('PS_LAYERED_SHOW_QTIES');
|
Configuration::deleteByName('PS_LAYERED_SHOW_QTIES');
|
||||||
Configuration::deleteByName('PS_LAYERED_FULL_TREE');
|
Configuration::deleteByName('PS_LAYERED_FULL_TREE');
|
||||||
Configuration::deleteByName('PS_LAYERED_INDEXED');
|
Configuration::deleteByName('PS_LAYERED_INDEXED');
|
||||||
|
Configuration::deleteByName('PS_LAYERED_FILTER_PRICE_USETAX');
|
||||||
|
|
||||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_price_index');
|
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_price_index');
|
||||||
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_friendly_url');
|
Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_friendly_url');
|
||||||
@@ -116,9 +118,13 @@ class BlockLayered extends Module
|
|||||||
|
|
||||||
Db::getInstance()->Execute('
|
Db::getInstance()->Execute('
|
||||||
CREATE TABLE `'._DB_PREFIX_.'layered_price_index` (
|
CREATE TABLE `'._DB_PREFIX_.'layered_price_index` (
|
||||||
`id_product` INT NOT NULL, `id_currency` INT NOT NULL,
|
`id_product` INT NOT NULL,
|
||||||
`price_min` INT NOT NULL, `price_max` INT NOT NULL,
|
`id_currency` INT NOT NULL,
|
||||||
PRIMARY KEY (`id_product`, `id_currency`), INDEX `id_currency` (`id_currency`),
|
`id_shop` INT NOT NULL,
|
||||||
|
`price_min` INT NOT NULL,
|
||||||
|
`price_max` INT NOT NULL,
|
||||||
|
PRIMARY KEY (`id_product`, `id_currency`, `id_shop`),
|
||||||
|
INDEX `id_currency` (`id_currency`),
|
||||||
INDEX `price_min` (`price_min`), INDEX `price_max` (`price_max`)) ENGINE = '._MYSQL_ENGINE_);
|
INDEX `price_min` (`price_min`), INDEX `price_max` (`price_max`)) ENGINE = '._MYSQL_ENGINE_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -924,58 +930,56 @@ class BlockLayered extends Module
|
|||||||
$groups = array();
|
$groups = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
static $currencyList = null;
|
$shop_list = array();
|
||||||
if (is_null($currencyList))
|
if (version_compare(_PS_VERSION_,'1.5','>'))
|
||||||
$currencyList = Currency::getCurrencies();
|
|
||||||
|
|
||||||
$minPrice = array();
|
|
||||||
$maxPrice = array();
|
|
||||||
|
|
||||||
if ($smart)
|
|
||||||
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'layered_price_index` WHERE `id_product` = '.(int)$idProduct);
|
|
||||||
|
|
||||||
$maxTaxRate = Db::getInstance()->getValue('
|
|
||||||
SELECT max(t.rate) max_rate
|
|
||||||
FROM `'._DB_PREFIX_.'product` p
|
|
||||||
LEFT JOIN `'._DB_PREFIX_.'tax_rules_group` trg ON (trg.id_tax_rules_group = p.id_tax_rules_group)
|
|
||||||
LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (tr.id_tax_rules_group = trg.id_tax_rules_group)
|
|
||||||
LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.id_tax = tr.id_tax AND t.active = 1)
|
|
||||||
WHERE id_product = '.(int)$idProduct.'
|
|
||||||
GROUP BY id_product');
|
|
||||||
|
|
||||||
$productMinPrices = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
|
|
||||||
SELECT id_shop, id_currency, id_country, id_group, from_quantity
|
|
||||||
FROM `'._DB_PREFIX_.'specific_price`
|
|
||||||
WHERE id_product = '.(int)$idProduct);
|
|
||||||
|
|
||||||
// Get min price
|
|
||||||
foreach ($currencyList as $currency)
|
|
||||||
{
|
{
|
||||||
$price = Product::priceCalculation(null, (int)$idProduct, null, null, null, null,
|
$shop_list = Shop::getShops(false, null, $get_as_list_id = true);
|
||||||
$currency['id_currency'], null, null, false, true, false, true, true,
|
}
|
||||||
$specificPriceOutput, true);
|
else {
|
||||||
|
$shop_list[] = 0;
|
||||||
if (!isset($maxPrice[$currency['id_currency']]))
|
|
||||||
$maxPrice[$currency['id_currency']] = 0;
|
|
||||||
if (!isset($minPrice[$currency['id_currency']]))
|
|
||||||
$minPrice[$currency['id_currency']] = null;
|
|
||||||
if ($price > $maxPrice[$currency['id_currency']])
|
|
||||||
$maxPrice[$currency['id_currency']] = $price;
|
|
||||||
if ($price == 0)
|
|
||||||
continue;
|
|
||||||
if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']])
|
|
||||||
$minPrice[$currency['id_currency']] = $price;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($productMinPrices as $specificPrice)
|
foreach ($shop_list as $id_shop)
|
||||||
|
{
|
||||||
|
static $currencyList = null;
|
||||||
|
|
||||||
|
if (is_null($currencyList))
|
||||||
|
{
|
||||||
|
if (version_compare(_PS_VERSION_,'1.5','>'))
|
||||||
|
$currencyList = Currency::getCurrencies(false, 1, new Shop($id_shop));
|
||||||
|
else
|
||||||
|
$currencyList = Currency::getCurrencies(false, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$minPrice = array();
|
||||||
|
$maxPrice = array();
|
||||||
|
|
||||||
|
if ($smart)
|
||||||
|
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'layered_price_index` WHERE `id_product` = '.(int)$idProduct.' AND `id_shop` = '.(int)$id_shop);
|
||||||
|
|
||||||
|
if (Configuration::get('PS_LAYERED_FILTER_PRICE_USETAX'))
|
||||||
|
$maxTaxRate = Db::getInstance()->getValue('
|
||||||
|
SELECT max(t.rate) max_rate
|
||||||
|
FROM `'._DB_PREFIX_.'product` p
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'tax_rules_group` trg ON (trg.id_tax_rules_group = p.id_tax_rules_group)
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (tr.id_tax_rules_group = trg.id_tax_rules_group)
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.id_tax = tr.id_tax AND t.active = 1)
|
||||||
|
WHERE id_product = '.(int)$idProduct.'
|
||||||
|
GROUP BY id_product');
|
||||||
|
else
|
||||||
|
$maxTaxRate = 0;
|
||||||
|
|
||||||
|
$productMinPrices = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
|
||||||
|
SELECT id_shop, id_currency, id_country, id_group, from_quantity
|
||||||
|
FROM `'._DB_PREFIX_.'specific_price`
|
||||||
|
WHERE id_product = '.(int)$idProduct);
|
||||||
|
|
||||||
|
// Get min price
|
||||||
foreach ($currencyList as $currency)
|
foreach ($currencyList as $currency)
|
||||||
{
|
{
|
||||||
if ($specificPrice['id_currency'] && $specificPrice['id_currency'] != $currency['id_currency'])
|
$price = Product::priceCalculation($id_shop, (int)$idProduct, null, null, null, null,
|
||||||
continue;
|
$currency['id_currency'], null, null, false, true, false, true, true,
|
||||||
$price = Product::priceCalculation((($specificPrice['id_shop'] == 0) ? null : (int)$specificPrice['id_shop']), (int)$idProduct,
|
$specificPriceOutput, true);
|
||||||
null, (($specificPrice['id_country'] == 0) ? null : $specificPrice['id_country']), null, null,
|
|
||||||
$currency['id_currency'], (($specificPrice['id_group'] == 0) ? null : $specificPrice['id_group']),
|
|
||||||
$specificPrice['from_quantity'], false, true, false, true, true, $specificPriceOutput, true);
|
|
||||||
|
|
||||||
if (!isset($maxPrice[$currency['id_currency']]))
|
if (!isset($maxPrice[$currency['id_currency']]))
|
||||||
$maxPrice[$currency['id_currency']] = 0;
|
$maxPrice[$currency['id_currency']] = 0;
|
||||||
@@ -988,34 +992,60 @@ class BlockLayered extends Module
|
|||||||
if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']])
|
if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']])
|
||||||
$minPrice[$currency['id_currency']] = $price;
|
$minPrice[$currency['id_currency']] = $price;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($groups as $group)
|
foreach ($productMinPrices as $specificPrice)
|
||||||
|
foreach ($currencyList as $currency)
|
||||||
|
{
|
||||||
|
if ($specificPrice['id_currency'] && $specificPrice['id_currency'] != $currency['id_currency'])
|
||||||
|
continue;
|
||||||
|
$price = Product::priceCalculation((($specificPrice['id_shop'] == 0) ? null : (int)$specificPrice['id_shop']), (int)$idProduct,
|
||||||
|
null, (($specificPrice['id_country'] == 0) ? null : $specificPrice['id_country']), null, null,
|
||||||
|
$currency['id_currency'], (($specificPrice['id_group'] == 0) ? null : $specificPrice['id_group']),
|
||||||
|
$specificPrice['from_quantity'], false, true, false, true, true, $specificPriceOutput, true);
|
||||||
|
|
||||||
|
if (!isset($maxPrice[$currency['id_currency']]))
|
||||||
|
$maxPrice[$currency['id_currency']] = 0;
|
||||||
|
if (!isset($minPrice[$currency['id_currency']]))
|
||||||
|
$minPrice[$currency['id_currency']] = null;
|
||||||
|
if ($price > $maxPrice[$currency['id_currency']])
|
||||||
|
$maxPrice[$currency['id_currency']] = $price;
|
||||||
|
if ($price == 0)
|
||||||
|
continue;
|
||||||
|
if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']])
|
||||||
|
$minPrice[$currency['id_currency']] = $price;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($groups as $group)
|
||||||
|
foreach ($currencyList as $currency)
|
||||||
|
{
|
||||||
|
$price = Product::priceCalculation(null, (int)$idProduct, null, null, null, null, (int)$currency['id_currency'], (int)$group['id_group'],
|
||||||
|
null, false, true, false, true, true, $specificPriceOutput, true);
|
||||||
|
|
||||||
|
if (!isset($maxPrice[$currency['id_currency']]))
|
||||||
|
$maxPrice[$currency['id_currency']] = 0;
|
||||||
|
if (!isset($minPrice[$currency['id_currency']]))
|
||||||
|
$minPrice[$currency['id_currency']] = null;
|
||||||
|
if ($price > $maxPrice[$currency['id_currency']])
|
||||||
|
$maxPrice[$currency['id_currency']] = $price;
|
||||||
|
if ($price == 0)
|
||||||
|
continue;
|
||||||
|
if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']])
|
||||||
|
$minPrice[$currency['id_currency']] = $price;
|
||||||
|
}
|
||||||
|
|
||||||
|
$values = array();
|
||||||
foreach ($currencyList as $currency)
|
foreach ($currencyList as $currency)
|
||||||
{
|
$values[] = '('.(int)$idProduct.',
|
||||||
$price = Product::priceCalculation(null, (int)$idProduct, null, null, null, null, (int)$currency['id_currency'], (int)$group['id_group'],
|
'.(int)$currency['id_currency'].',
|
||||||
null, false, true, false, true, true, $specificPriceOutput, true);
|
'.$id_shop.',
|
||||||
|
'.(int)$minPrice[$currency['id_currency']].',
|
||||||
if (!isset($maxPrice[$currency['id_currency']]))
|
'.(int)($maxPrice[$currency['id_currency']] * (100 + $maxTaxRate) / 100).')';
|
||||||
$maxPrice[$currency['id_currency']] = 0;
|
|
||||||
if (!isset($minPrice[$currency['id_currency']]))
|
Db::getInstance()->Execute('
|
||||||
$minPrice[$currency['id_currency']] = null;
|
INSERT INTO `'._DB_PREFIX_.'layered_price_index` (id_product, id_currency, id_shop, price_min, price_max)
|
||||||
if ($price > $maxPrice[$currency['id_currency']])
|
VALUES '.implode(',', $values).'
|
||||||
$maxPrice[$currency['id_currency']] = $price;
|
ON DUPLICATE KEY UPDATE id_product = id_product # avoid duplicate keys');
|
||||||
if ($price == 0)
|
}
|
||||||
continue;
|
|
||||||
if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']])
|
|
||||||
$minPrice[$currency['id_currency']] = $price;
|
|
||||||
}
|
|
||||||
|
|
||||||
$values = array();
|
|
||||||
foreach ($currencyList as $currency)
|
|
||||||
$values[] = '('.(int)$idProduct.', '.(int)$currency['id_currency'].',
|
|
||||||
'.(int)$minPrice[$currency['id_currency']].', '.(int)($maxPrice[$currency['id_currency']] * (100 + $maxTaxRate) / 100).')';
|
|
||||||
|
|
||||||
Db::getInstance()->Execute('
|
|
||||||
INSERT INTO `'._DB_PREFIX_.'layered_price_index` (id_product, id_currency, price_min, price_max)
|
|
||||||
VALUES '.implode(',', $values).'
|
|
||||||
ON DUPLICATE KEY UPDATE id_product = id_product # avoid duplicate keys');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function hookLeftColumn($params)
|
public function hookLeftColumn($params)
|
||||||
@@ -1222,6 +1252,7 @@ class BlockLayered extends Module
|
|||||||
Configuration::updateValue('PS_LAYERED_HIDE_0_VALUES', Tools::getValue('ps_layered_hide_0_values'));
|
Configuration::updateValue('PS_LAYERED_HIDE_0_VALUES', Tools::getValue('ps_layered_hide_0_values'));
|
||||||
Configuration::updateValue('PS_LAYERED_SHOW_QTIES', Tools::getValue('ps_layered_show_qties'));
|
Configuration::updateValue('PS_LAYERED_SHOW_QTIES', Tools::getValue('ps_layered_show_qties'));
|
||||||
Configuration::updateValue('PS_LAYERED_FULL_TREE', Tools::getValue('ps_layered_full_tree'));
|
Configuration::updateValue('PS_LAYERED_FULL_TREE', Tools::getValue('ps_layered_full_tree'));
|
||||||
|
Configuration::updateValue('PS_LAYERED_FILTER_PRICE_USETAX', Tools::getValue('ps_layered_filter_price_usetax'));
|
||||||
|
|
||||||
$html .= '
|
$html .= '
|
||||||
<div class="conf">'.
|
<div class="conf">'.
|
||||||
@@ -1784,6 +1815,15 @@ class BlockLayered extends Module
|
|||||||
'.$this->l('No').' <input type="radio" name="ps_layered_full_tree" value="0" '.(!Configuration::get('PS_LAYERED_FULL_TREE') ? 'checked="checked"' : '').' />
|
'.$this->l('No').' <input type="radio" name="ps_layered_full_tree" value="0" '.(!Configuration::get('PS_LAYERED_FULL_TREE') ? 'checked="checked"' : '').' />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="text-align: right;">'.$this->l('Use tax to filter price').'</td>
|
||||||
|
<td>
|
||||||
|
<img src="../img/admin/enabled.gif" alt="'.$this->l('Yes').'" title="'.$this->l('Yes').'" />
|
||||||
|
'.$this->l('Yes').' <input type="radio" name="ps_layered_filter_price_usetax" value="1" '.(Configuration::get('PS_LAYERED_FILTER_PRICE_USETAX') ? 'checked="checked"' : '').' />
|
||||||
|
<img src="../img/admin/disabled.gif" alt="'.$this->l('No').'" title="'.$this->l('No').'" style="margin-left: 10px;" />
|
||||||
|
'.$this->l('No').' <input type="radio" name="ps_layered_filter_price_usetax" value="0" '.(!Configuration::get('PS_LAYERED_FILTER_PRICE_USETAX') ? 'checked="checked"' : '').' />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<p style="text-align: center;"><input type="submit" class="button" name="submitLayeredSettings" value="'.$this->l('Save configuration').'" /></p>
|
<p style="text-align: center;"><input type="submit" class="button" name="submitLayeredSettings" value="'.$this->l('Save configuration').'" /></p>
|
||||||
</form>
|
</form>
|
||||||
@@ -1968,7 +2008,14 @@ class BlockLayered extends Module
|
|||||||
case 'quantity':
|
case 'quantity':
|
||||||
if (count($selectedFilters['quantity']) == 2)
|
if (count($selectedFilters['quantity']) == 2)
|
||||||
break;
|
break;
|
||||||
$queryFiltersWhere .= ' AND p.quantity '.(!$selectedFilters['quantity'][0] ? '=' : '>').' 0';
|
if (version_compare(_PS_VERSION_,'1.5','>'))
|
||||||
|
{
|
||||||
|
$queryFiltersWhere .= ' AND sa.quantity '.(!$selectedFilters['quantity'][0] ? '>=' : '>').' 0 ';
|
||||||
|
$queryFiltersFrom .= 'LEFT JOIN stock_available sa ON (sa.id_product = p.id_product AND sa.id_shop = '.(int)Context::getContext()->shop->getID(true).') ';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$queryFiltersWhere .= ' AND p.quantity '.(!$selectedFilters['quantity'][0] ? '>=' : '>').' 0 ';
|
||||||
|
//$queryFiltersWhere .= ' AND p.quantity '.(!$selectedFilters['quantity'][0] ? '>=' : '>').' 0';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'manufacturer':
|
case 'manufacturer':
|
||||||
@@ -2053,7 +2100,7 @@ class BlockLayered extends Module
|
|||||||
while ($product = DB::getInstance()->nextRow($allProductsOut))
|
while ($product = DB::getInstance()->nextRow($allProductsOut))
|
||||||
if (isset($priceFilter) && $priceFilter)
|
if (isset($priceFilter) && $priceFilter)
|
||||||
{
|
{
|
||||||
$price = (int)Product::getPriceStatic($product['id_product']); // Cast to int because we don't care about cents
|
$price = (int)Product::getPriceStatic($product['id_product'], Configuration::get('PS_LAYERED_FILTER_PRICE_USETAX')); // Cast to int because we don't care about cents
|
||||||
if ($price < $priceFilter['min'] || $price > $priceFilter['max'])
|
if ($price < $priceFilter['min'] || $price > $priceFilter['max'])
|
||||||
continue;
|
continue;
|
||||||
$productIdList[] = (int)$product['id_product'];
|
$productIdList[] = (int)$product['id_product'];
|
||||||
@@ -2115,7 +2162,7 @@ class BlockLayered extends Module
|
|||||||
{
|
{
|
||||||
case 'price':
|
case 'price':
|
||||||
case 'weight':
|
case 'weight':
|
||||||
if ($value[0] == '' && $value[1] == '' || $value[0] == 0 && $value[1] == 0)
|
if ($value[0] == '' && $value[1] == '')
|
||||||
unset($selectedFilters[$key]);
|
unset($selectedFilters[$key]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -2135,15 +2182,20 @@ class BlockLayered extends Module
|
|||||||
case 'weight':
|
case 'weight':
|
||||||
case 'condition':
|
case 'condition':
|
||||||
case 'quantity':
|
case 'quantity':
|
||||||
$sqlQuery['select'] = '
|
|
||||||
SELECT p.`id_product`, p.`condition`, p.`id_manufacturer`, p.`quantity`, p.`weight`
|
if (version_compare(_PS_VERSION_,'1.5','>'))
|
||||||
';
|
$sqlQuery['select'] = 'SELECT p.`id_product`, p.`condition`, p.`id_manufacturer`, sa.`quantity`, p.`weight` ';
|
||||||
|
else
|
||||||
|
$sqlQuery['select'] = 'SELECT p.`id_product`, p.`condition`, p.`id_manufacturer`, p.`quantity`, p.`weight` ';
|
||||||
$sqlQuery['from'] = '
|
$sqlQuery['from'] = '
|
||||||
FROM '._DB_PREFIX_.'product p ';
|
FROM '._DB_PREFIX_.'product p ';
|
||||||
$sqlQuery['join'] = '
|
$sqlQuery['join'] = '
|
||||||
INNER JOIN '._DB_PREFIX_.'category_product cp ON (cp.id_product = p.id_product)
|
INNER JOIN '._DB_PREFIX_.'category_product cp ON (cp.id_product = p.id_product)
|
||||||
INNER JOIN '._DB_PREFIX_.'category c ON (c.id_category = cp.id_category AND
|
INNER JOIN '._DB_PREFIX_.'category c ON (c.id_category = cp.id_category AND
|
||||||
'.(Configuration::get('PS_LAYERED_FULL_TREE') ? 'c.nleft >= '.(int)$parent->nleft.' AND c.nright <= '.(int)$parent->nright : 'c.id_category = '.(int)$id_parent).') ';
|
'.(Configuration::get('PS_LAYERED_FULL_TREE') ? 'c.nleft >= '.(int)$parent->nleft.' AND c.nright <= '.(int)$parent->nright : 'c.id_category = '.(int)$id_parent).') ';
|
||||||
|
if (version_compare(_PS_VERSION_,'1.5','>'))
|
||||||
|
$sqlQuery['join'] .= 'LEFT JOIN '._DB_PREFIX_.'stock_available sa
|
||||||
|
ON (sa.id_product = p.id_product AND sa.id_shop = '.(int)$this->context->shop->getID(true).') ';
|
||||||
$sqlQuery['where'] = 'WHERE p.`active` = 1 ';
|
$sqlQuery['where'] = 'WHERE p.`active` = 1 ';
|
||||||
$sqlQuery['group'] = ' GROUP BY p.id_product ';
|
$sqlQuery['group'] = ' GROUP BY p.id_product ';
|
||||||
break;
|
break;
|
||||||
@@ -2258,7 +2310,7 @@ class BlockLayered extends Module
|
|||||||
$products = false;
|
$products = false;
|
||||||
if (!empty($sqlQuery['from']))
|
if (!empty($sqlQuery['from']))
|
||||||
$products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sqlQuery['select']."\n".$sqlQuery['from']."\n".$sqlQuery['join']."\n".$sqlQuery['where']."\n".$sqlQuery['group']);
|
$products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sqlQuery['select']."\n".$sqlQuery['from']."\n".$sqlQuery['join']."\n".$sqlQuery['where']."\n".$sqlQuery['group']);
|
||||||
|
|
||||||
foreach ($filters as $filterTmp)
|
foreach ($filters as $filterTmp)
|
||||||
{
|
{
|
||||||
$methodName = 'filterProductsBy'.ucfirst($filterTmp['type']);
|
$methodName = 'filterProductsBy'.ucfirst($filterTmp['type']);
|
||||||
@@ -2742,7 +2794,7 @@ class BlockLayered extends Module
|
|||||||
if (isset($filterValue) && $filterValue && isset($product['price_min']) && isset($product['id_product'])
|
if (isset($filterValue) && $filterValue && isset($product['price_min']) && isset($product['id_product'])
|
||||||
&& ((int)$filterValue[0] > $product['price_min'] || (int)$filterValue[1] < $product['price_max']))
|
&& ((int)$filterValue[0] > $product['price_min'] || (int)$filterValue[1] < $product['price_max']))
|
||||||
{
|
{
|
||||||
$price = Product::getPriceStatic($product['id_product']);
|
$price = Product::getPriceStatic($product['id_product'], Configuration::get('PS_LAYERED_FILTER_PRICE_USETAX'));
|
||||||
if ($price < $filterValue[0] || $price > $filterValue[1])
|
if ($price < $filterValue[0] || $price > $filterValue[1])
|
||||||
continue;
|
continue;
|
||||||
unset($productCollection[$key]);
|
unset($productCollection[$key]);
|
||||||
@@ -2805,9 +2857,18 @@ class BlockLayered extends Module
|
|||||||
{
|
{
|
||||||
if (count($filterValue) == 2 || empty($filterValue))
|
if (count($filterValue) == 2 || empty($filterValue))
|
||||||
return array();
|
return array();
|
||||||
$queryFilters = ' AND p.quantity '.(!$filterValue[0] ? '=' : '>').' 0 ';
|
|
||||||
|
|
||||||
return array('where' => $queryFilters);
|
$queryFiltersJoin = '';
|
||||||
|
|
||||||
|
if (version_compare(_PS_VERSION_,'1.5','>'))
|
||||||
|
{
|
||||||
|
$queryFilters = ' AND sav.quantity '.(!$filterValue[0] ? '>=' : '>').' 0 ';
|
||||||
|
$queryFiltersJoin = 'LEFT JOIN stock_available sav ON (sav.id_product = p.id_product AND sav.id_shop = '.(int)Context::getContext()->shop->getID(true).') ';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$queryFilters = ' AND p.quantity '.(!$filterValue[0] ? '>=' : '>').' 0 ';
|
||||||
|
|
||||||
|
return array('where' => $queryFilters, 'join' => $queryFiltersJoin);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function getManufacturerFilterSubQuery($filterValue, $ignoreJoin)
|
private static function getManufacturerFilterSubQuery($filterValue, $ignoreJoin)
|
||||||
@@ -2902,9 +2963,9 @@ class BlockLayered extends Module
|
|||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="filter_type" name="layered_selection_subcategories_filter_type">
|
<select class="filter_type" name="layered_selection_subcategories_filter_type">
|
||||||
<option value="0">'.$this->l('Allow multiple filter value').'</option>
|
<option value="0">'.$this->l('Checkbox').'</option>
|
||||||
<option value="1">'.$this->l('One filter value').'</option>
|
<option value="1">'.$this->l('Radio button').'</option>
|
||||||
<option value="2">'.$this->l('Select').'</option>
|
<option value="2">'.$this->l('Drop-down list').'</option>
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -2921,9 +2982,9 @@ class BlockLayered extends Module
|
|||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="filter_type" name="layered_selection_stock_filter_type">
|
<select class="filter_type" name="layered_selection_stock_filter_type">
|
||||||
<option value="0">'.$this->l('Allow multiple filter value').'</option>
|
<option value="0">'.$this->l('Checkbox').'</option>
|
||||||
<option value="1">'.$this->l('One filter value').'</option>
|
<option value="1">'.$this->l('Radio button').'</option>
|
||||||
<option value="2">'.$this->l('Select').'</option>
|
<option value="2">'.$this->l('Drop-down list').'</option>
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -2941,9 +3002,9 @@ class BlockLayered extends Module
|
|||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="filter_type" name="layered_selection_condition_filter_type">
|
<select class="filter_type" name="layered_selection_condition_filter_type">
|
||||||
<option value="0">'.$this->l('Allow multiple filter value').'</option>
|
<option value="0">'.$this->l('Checkbox').'</option>
|
||||||
<option value="1">'.$this->l('One filter value').'</option>
|
<option value="1">'.$this->l('Radio button').'</option>
|
||||||
<option value="2">'.$this->l('Select').'</option>
|
<option value="2">'.$this->l('Drop-down list').'</option>
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -2961,9 +3022,9 @@ class BlockLayered extends Module
|
|||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="filter_type" name="layered_selection_manufacturer_filter_type">
|
<select class="filter_type" name="layered_selection_manufacturer_filter_type">
|
||||||
<option value="0">'.$this->l('Allow multiple filter value').'</option>
|
<option value="0">'.$this->l('Checkbox').'</option>
|
||||||
<option value="1">'.$this->l('One filter value').'</option>
|
<option value="1">'.$this->l('Radio button').'</option>
|
||||||
<option value="2">'.$this->l('Select').'</option>
|
<option value="2">'.$this->l('Drop-down list').'</option>
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -2982,8 +3043,8 @@ class BlockLayered extends Module
|
|||||||
</select>
|
</select>
|
||||||
<select class="filter_type" name="layered_selection_weight_slider_filter_type">
|
<select class="filter_type" name="layered_selection_weight_slider_filter_type">
|
||||||
<option value="0">'.$this->l('Slider').'</option>
|
<option value="0">'.$this->l('Slider').'</option>
|
||||||
<option value="1">'.$this->l('inputs').'</option>
|
<option value="1">'.$this->l('Inputs area').'</option>
|
||||||
<option value="2">'.$this->l('list').'</option>
|
<option value="2">'.$this->l('List of values').'</option>
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -3002,8 +3063,8 @@ class BlockLayered extends Module
|
|||||||
</select>
|
</select>
|
||||||
<select class="filter_type" name="layered_selection_price_slider_filter_type">
|
<select class="filter_type" name="layered_selection_price_slider_filter_type">
|
||||||
<option value="0">'.$this->l('Slider').'</option>
|
<option value="0">'.$this->l('Slider').'</option>
|
||||||
<option value="1">'.$this->l('inputs').'</option>
|
<option value="1">'.$this->l('Inputs area').'</option>
|
||||||
<option value="2">'.$this->l('list').'</option>
|
<option value="2">'.$this->l('List of values').'</option>
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
</ul>';
|
</ul>';
|
||||||
@@ -3028,9 +3089,9 @@ class BlockLayered extends Module
|
|||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="filter_type" name="layered_selection_ag_'.(int)$attributeGroup['id_attribute_group'].'_filter_type">
|
<select class="filter_type" name="layered_selection_ag_'.(int)$attributeGroup['id_attribute_group'].'_filter_type">
|
||||||
<option value="0">'.$this->l('Allow multiple filter value').'</option>
|
<option value="0">'.$this->l('Checkbox').'</option>
|
||||||
<option value="1">'.$this->l('One filter value').'</option>
|
<option value="1">'.$this->l('Radio button').'</option>
|
||||||
<option value="2">'.$this->l('Select').'</option>
|
<option value="2">'.$this->l('Drop-down list').'</option>
|
||||||
</select>
|
</select>
|
||||||
</li>';
|
</li>';
|
||||||
$html .= '</ul>';
|
$html .= '</ul>';
|
||||||
@@ -3055,9 +3116,9 @@ class BlockLayered extends Module
|
|||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
</select>
|
</select>
|
||||||
<select class="filter_type" name="layered_selection_feat_'.(int)$feature['id_feature'].'_filter_type">
|
<select class="filter_type" name="layered_selection_feat_'.(int)$feature['id_feature'].'_filter_type">
|
||||||
<option value="0">'.$this->l('Allow multiple filter value').'</option>
|
<option value="0">'.$this->l('Checkbox').'</option>
|
||||||
<option value="1">'.$this->l('One filter value').'</option>
|
<option value="1">'.$this->l('Radio button').'</option>
|
||||||
<option value="2">'.$this->l('Select').'</option>
|
<option value="2">'.$this->l('Drop-down list').'</option>
|
||||||
</select>
|
</select>
|
||||||
</li>';
|
</li>';
|
||||||
$html .= '</ul>';
|
$html .= '</ul>';
|
||||||
|
|||||||
@@ -47,13 +47,15 @@ param_product_url = '';
|
|||||||
{foreach from=$filter_values key=filter_key item=filter_value name=f_values}
|
{foreach from=$filter_values key=filter_key item=filter_value name=f_values}
|
||||||
{foreach from=$filters item=filter}
|
{foreach from=$filters item=filter}
|
||||||
{if $filter.type == $filter_type && isset($filter.values)}
|
{if $filter.type == $filter_type && isset($filter.values)}
|
||||||
{if isset($filter.slider) && $smarty.foreach.f_values.first}
|
{if isset($filter.slider)}
|
||||||
<li>
|
{if $smarty.foreach.f_values.first}
|
||||||
<a href="#" rel="layered_{$filter.type}_slider" title="{l s='Cancel' mod='blocklayered'}">x</a>
|
<li>
|
||||||
{$filter.name|escape:html:'UTF-8'}{l s=':'}
|
<a href="#" rel="layered_{$filter.type}_slider" title="{l s='Cancel' mod='blocklayered'}">x</a>
|
||||||
{$filter.values[0]|escape:html:'UTF-8'}{$filter.unit|escape:html:'UTF-8'} -
|
{$filter.name|escape:html:'UTF-8'}{l s=':'}
|
||||||
{$filter.values[1]|escape:html:'UTF-8'}{$filter.unit|escape:html:'UTF-8'}
|
{$filter.values[0]|escape:html:'UTF-8'}{$filter.unit|escape:html:'UTF-8'} -
|
||||||
</li>
|
{$filter.values[1]|escape:html:'UTF-8'}{$filter.unit|escape:html:'UTF-8'}
|
||||||
|
</li>
|
||||||
|
{/if}
|
||||||
{else}
|
{else}
|
||||||
{foreach from=$filter.values key=id_value item=value}
|
{foreach from=$filter.values key=id_value item=value}
|
||||||
{if $id_value == $filter_key && !is_numeric($filter_value) && ($filter.type eq 'id_attribute_group' || $filter.type eq 'id_feature') || $id_value == $filter_value && $filter.type neq 'id_attribute_group' && $filter.type neq 'id_feature'}
|
{if $id_value == $filter_key && !is_numeric($filter_value) && ($filter.type eq 'id_attribute_group' || $filter.type eq 'id_feature') || $id_value == $filter_value && $filter.type neq 'id_attribute_group' && $filter.type neq 'id_feature'}
|
||||||
@@ -85,7 +87,7 @@ param_product_url = '';
|
|||||||
{if !isset($filter.slider)}
|
{if !isset($filter.slider)}
|
||||||
{if $filter.filter_type == 0}
|
{if $filter.filter_type == 0}
|
||||||
{foreach from=$filter.values key=id_value item=value}
|
{foreach from=$filter.values key=id_value item=value}
|
||||||
<li class="nomargin {if $value@index > $filter.filter_show_limit}hiddable{/if}">
|
<li class="nomargin {if $value@index >= $filter.filter_show_limit}hiddable{/if}">
|
||||||
{if isset($filter.is_color_group) && $filter.is_color_group}
|
{if isset($filter.is_color_group) && $filter.is_color_group}
|
||||||
<input class="color-option {if isset($value.checked) && $value.checked}on{/if}" type="button" name="layered_{$filter.type_lite}_{$id_value}" rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr} value="X" disabled="disabled"{/if} style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};" />
|
<input class="color-option {if isset($value.checked) && $value.checked}on{/if}" type="button" name="layered_{$filter.type_lite}_{$id_value}" rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr} value="X" disabled="disabled"{/if} style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};" />
|
||||||
{if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
|
{if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
|
||||||
@@ -103,7 +105,7 @@ param_product_url = '';
|
|||||||
{/foreach}
|
{/foreach}
|
||||||
{else if $filter.filter_type == 1}
|
{else if $filter.filter_type == 1}
|
||||||
{foreach from=$filter.values key=id_value item=value}
|
{foreach from=$filter.values key=id_value item=value}
|
||||||
<li class="nomargin">
|
<li class="nomargin {if $value@index >= $filter.filter_show_limit}hiddable{/if}">
|
||||||
{if isset($filter.is_color_group) && $filter.is_color_group}
|
{if isset($filter.is_color_group) && $filter.is_color_group}
|
||||||
<input class="radio color-option {if isset($value.checked) && $value.checked}on{/if}" type="button" name="layered_{$filter.type_lite}_{$id_value}" rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr} value="X" disabled="disabled"{/if} style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};"/>
|
<input class="radio color-option {if isset($value.checked) && $value.checked}on{/if}" type="button" name="layered_{$filter.type_lite}_{$id_value}" rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr} value="X" disabled="disabled"{/if} style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};"/>
|
||||||
{if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
|
{if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
|
||||||
|
|||||||
@@ -60,6 +60,12 @@ $_MODULE['<{blocklayered}prestashop>blocklayered_f72c75bdf80dc88b2529162f4947edc
|
|||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_64646db703ca003a37bd1e73977a3a4d'] = 'Catégories utilisant ce modèle';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_64646db703ca003a37bd1e73977a3a4d'] = 'Catégories utilisant ce modèle';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_d758a9754eb9f36db05c22ad0c77e38e'] = 'Sélectionnez une ou plusieurs catégories utilisant ce modèle';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_d758a9754eb9f36db05c22ad0c77e38e'] = 'Sélectionnez une ou plusieurs catégories utilisant ce modèle';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_5965d2ce192837f00d743d8a674382c1'] = 'Cliquez sur \"Sauvegarder cette sélection\" ou fermez la fenêtre pour sauvegarder';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_5965d2ce192837f00d743d8a674382c1'] = 'Cliquez sur \"Sauvegarder cette sélection\" ou fermez la fenêtre pour sauvegarder';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_8cf04a9734132302f96da8e113e80ce5'] = 'Accueil';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_b56c3bda503a8dc4be356edb0cc31793'] = 'Tout replier';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_5ffd7a335dd836b3373f5ec570a58bdc'] = 'Tout étendre';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_5e9df908eafa83cb51c0a3720e8348c7'] = 'Tout cocher';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_9747d23c8cc358c5ef78c51e59cd6817'] = 'Tout décocher';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_d0f06038b6b3aa5edc07c7a6fd3ca3f9'] = 'Chercher une catégorie';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_72dd03f11489ff6f604a4eb57c957202'] = 'Sauvegarder cette sélection';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_72dd03f11489ff6f604a4eb57c957202'] = 'Sauvegarder cette sélection';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_2e527847e8c785f3fd99651f64006798'] = 'Etape 2/3 - Sélectionnez vos filtres';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_2e527847e8c785f3fd99651f64006798'] = 'Etape 2/3 - Sélectionnez vos filtres';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_3488a51eb7f723d65daeff912e69b177'] = 'Filres sélectionnés';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_3488a51eb7f723d65daeff912e69b177'] = 'Filres sélectionnés';
|
||||||
@@ -80,6 +86,7 @@ $_MODULE['<{blocklayered}prestashop>blocklayered_93cba07454f06a4a960172bbd6e2a43
|
|||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_8531c73de81b9ed94322dda7cf947daa'] = 'Afficher le nombre de produits qui correspondent';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_8531c73de81b9ed94322dda7cf947daa'] = 'Afficher le nombre de produits qui correspondent';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_ee61c015043c79c1370fc14980dd27b9'] = 'Montrez les produits des sous-catégories';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_ee61c015043c79c1370fc14980dd27b9'] = 'Montrez les produits des sous-catégories';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_3e652bd299bb3ee3d458c0dcc7fd706e'] = 'Utiliser les taxes dans le filtre prix';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_cf565402d32b79d33f626252949a6941'] = 'Configuration enregistré';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_cf565402d32b79d33f626252949a6941'] = 'Configuration enregistré';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_3601146c4e948c32b6424d2c0a7f0118'] = 'Prix';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_3601146c4e948c32b6424d2c0a7f0118'] = 'Prix';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_8c489d0946f66d17d73f26366a4bf620'] = 'Poids';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_8c489d0946f66d17d73f26366a4bf620'] = 'Poids';
|
||||||
@@ -94,12 +101,16 @@ $_MODULE['<{blocklayered}prestashop>blocklayered_c0bd7654d5b278e65f21cf4e9153fdb
|
|||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_308edffd52afae39cc6277e246ec5df8'] = 'Filtres disponibles';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_308edffd52afae39cc6277e246ec5df8'] = 'Filtres disponibles';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_cfbc982f8fb7a0cc3abb3c85c795ab41'] = 'Filtre sous-catégories';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_cfbc982f8fb7a0cc3abb3c85c795ab41'] = 'Filtre sous-catégories';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_af605ea55ee39e54c444f217e346048f'] = 'Pas de limite';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_af605ea55ee39e54c444f217e346048f'] = 'Pas de limite';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_f7e8e9adfb9fbb546ae8b9b6ec2849b4'] = 'Autoriser la selection de plusieur valeur de filtre';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_4f8222964f9a317cef99dddc23a121bd'] = 'Case à cocher';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_3c151970b422e3e3cbf927166e4eade4'] = 'Une seul value par filtre';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_07a9ca8c8228dd3399141e228034fedf'] = 'Bouton radio';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_5204077231fc7164e2269e96b584dd95'] = 'Liste déroulante';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_cd50ff1c5332f9920acf8173c4aab425'] = 'Filtre stock du produit';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_cd50ff1c5332f9920acf8173c4aab425'] = 'Filtre stock du produit';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_048c1728a0a6cf36f56c9dcdd23d8a14'] = 'Filtre état du produit';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_048c1728a0a6cf36f56c9dcdd23d8a14'] = 'Filtre état du produit';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_02ecc2cbb645a2b859deba6907334cc8'] = 'Filtre fabriquant du produit';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_02ecc2cbb645a2b859deba6907334cc8'] = 'Filtre fabriquant du produit';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_cc72ed9534a489b5d2e5882735bf1364'] = 'Filtre poids du produit (slider)';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_cc72ed9534a489b5d2e5882735bf1364'] = 'Filtre poids du produit (slider)';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_2d9b9a764fb0be4be10e1b2fce63f561'] = 'Slider';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_7e650380ef2b9cec2f2a96e6266ca93d'] = 'Zones de saisies';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_010359888c6e811caee8e540221f0a21'] = 'Listes de valeurs';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_0649bb392812f99ff6b0e2ba160675fa'] = 'Filtre prix du produit (slider)';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_0649bb392812f99ff6b0e2ba160675fa'] = 'Filtre prix du produit (slider)';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_d73c57be7aad115d20508215e8ea9951'] = 'Groupe d\'attributs :';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_d73c57be7aad115d20508215e8ea9951'] = 'Groupe d\'attributs :';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_736b91750e516139acc13c5eb6564f92'] = 'attributs';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_736b91750e516139acc13c5eb6564f92'] = 'attributs';
|
||||||
@@ -112,6 +123,6 @@ $_MODULE['<{blocklayered}prestashop>blocklayered_c32516babc5b6c47eb8ce1bfc223253
|
|||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_1262d1b9fbffb3a8e85ac9e4b449e989'] = 'Filtres actifs :';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_1262d1b9fbffb3a8e85ac9e4b449e989'] = 'Filtres actifs :';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_ea4788705e6873b424c65e91c2846b19'] = 'Annuler';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_ea4788705e6873b424c65e91c2846b19'] = 'Annuler';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_853ae90f0351324bd73ea615e6487517'] = ' :';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_853ae90f0351324bd73ea615e6487517'] = ' :';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_75954a3c6f2ea54cb9dff249b6b5e8e6'] = 'Tranche';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_146ffe2fd9fa5bec3b63b52543793ec7'] = 'Voir plus';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_146ffe2fd9fa5bec3b63b52543793ec7'] = 'Voir plus';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_c74ea6dbff701bfa23819583c52ebd97'] = 'Voir moins';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_c74ea6dbff701bfa23819583c52ebd97'] = 'Voir moins';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_75954a3c6f2ea54cb9dff249b6b5e8e6'] = 'Tranche';
|
|
||||||
|
|||||||
Reference in New Issue
Block a user