// Blocklayered: Slider could be change with two inputs or a list of values
This commit is contained in:
@@ -111,4 +111,10 @@
|
|||||||
#layered_form input[type=radio] {
|
#layered_form input[type=radio] {
|
||||||
margin-left: 2px;
|
margin-left: 2px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.layered_price_range {
|
||||||
|
margin-left: 7px;
|
||||||
|
}
|
||||||
|
.layered_price_range_unit {
|
||||||
|
margin-right: 7px;
|
||||||
}
|
}
|
||||||
@@ -45,9 +45,30 @@ $(document).ready(function()
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Click on checkbox
|
// Click on checkbox
|
||||||
$('#layered_form input, #layered_form select').live('change', function()
|
$('#layered_form input, #layered_form select').live('keyup', function()
|
||||||
{
|
{
|
||||||
reloadContent();
|
if ($(this).attr('timeout_id'))
|
||||||
|
window.clearTimeout($(this).attr('timeout_id'));
|
||||||
|
|
||||||
|
$(this).attr('timeout_id', window.setTimeout(function(it) {
|
||||||
|
var filter = $(it).attr('id').replace(/^layered_(.+)_range_.*$/, '$1');
|
||||||
|
|
||||||
|
var value_min = parseInt($('#layered_'+filter+'_range_min').val());
|
||||||
|
if (isNaN(value_min))
|
||||||
|
value_min = 0;
|
||||||
|
$('#layered_'+filter+'_range_min').val(value_min);
|
||||||
|
|
||||||
|
var value_max = parseInt($('#layered_'+filter+'_range_max').val());
|
||||||
|
if (isNaN(value_max))
|
||||||
|
value_max = 0;
|
||||||
|
$('#layered_'+filter+'_range_max').val(value_max);
|
||||||
|
|
||||||
|
if (value_max < value_min) {
|
||||||
|
$('#layered_'+filter+'_range_max').val($(it).val());
|
||||||
|
$('#layered_'+filter+'_range_min').val($(it).val());
|
||||||
|
}
|
||||||
|
reloadContent();
|
||||||
|
}, 500, this));
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.radio').live('click', function() {
|
$('.radio').live('click', function() {
|
||||||
@@ -138,27 +159,6 @@ function initLayered()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getValueSelected(){
|
|
||||||
|
|
||||||
var checkboxChecked = '';
|
|
||||||
$('#layered_form input:checkbox:checked').each(function(){
|
|
||||||
checkboxChecked += '#' + $(this).attr('id')+'='+$(this).val();
|
|
||||||
});
|
|
||||||
$('#layered_form input:hidden').each(function(){
|
|
||||||
checkboxChecked += '#' + $(this).attr('name')+'='+$(this).val();
|
|
||||||
});
|
|
||||||
$(['price','weight']).each(function(i, filter) {
|
|
||||||
if ($('#layered_'+filter+'_slider').length)
|
|
||||||
{
|
|
||||||
if (typeof($('#layered_'+filter+'_slider').slider('values', 0)) != 'object')
|
|
||||||
{
|
|
||||||
checkboxChecked += '#'+filter+'='+$('#layered_'+filter+'_slider').slider('values', 0)+'_'+$('#layered_'+filter+'_slider').slider('values', 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return checkboxChecked;
|
|
||||||
}
|
|
||||||
|
|
||||||
function paginationButton() {
|
function paginationButton() {
|
||||||
$('#pagination a').not(':hidden').each(function () {
|
$('#pagination a').not(':hidden').each(function () {
|
||||||
if ($(this).attr('href').search('&p=') == -1) {
|
if ($(this).attr('href').search('&p=') == -1) {
|
||||||
@@ -196,9 +196,17 @@ function cancelFilter()
|
|||||||
{
|
{
|
||||||
if ($(this).attr('rel').search(/_slider$/) > 0)
|
if ($(this).attr('rel').search(/_slider$/) > 0)
|
||||||
{
|
{
|
||||||
$('#'+$(this).attr('rel')).slider('values' , 0, $('#'+$(this).attr('rel')).slider('option' , 'min' ));
|
if ($('#'+$(this).attr('rel')).lenght)
|
||||||
$('#'+$(this).attr('rel')).slider('values' , 1, $('#'+$(this).attr('rel')).slider('option' , 'max' ));
|
{
|
||||||
$('#'+$(this).attr('rel')).slider('option', 'slide')(0,{values:[$('#'+$(this).attr('rel')).slider( 'option' , 'min' ), $('#'+$(this).attr('rel')).slider( 'option' , 'max' )]});
|
$('#'+$(this).attr('rel')).slider('values' , 0, $('#'+$(this).attr('rel')).slider('option' , 'min' ));
|
||||||
|
$('#'+$(this).attr('rel')).slider('values' , 1, $('#'+$(this).attr('rel')).slider('option' , 'max' ));
|
||||||
|
$('#'+$(this).attr('rel')).slider('option', 'slide')(0,{values:[$('#'+$(this).attr('rel')).slider( 'option' , 'min' ), $('#'+$(this).attr('rel')).slider( 'option' , 'max' )]});
|
||||||
|
}
|
||||||
|
else if($('#'+$(this).attr('rel').replace(/_slider$/, '_range_min')).length)
|
||||||
|
{
|
||||||
|
$('#'+$(this).attr('rel').replace(/_slider$/, '_range_min')).val($('#'+$(this).attr('rel').replace(/_slider$/, '_range_min')).attr('limitValue'));
|
||||||
|
$('#'+$(this).attr('rel').replace(/_slider$/, '_range_max')).val($('#'+$(this).attr('rel').replace(/_slider$/, '_range_max')).attr('limitValue'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -249,6 +257,14 @@ function reloadContent(params_plus)
|
|||||||
if (typeof(sliderStart) == 'number' && typeof(sliderStop) == 'number')
|
if (typeof(sliderStart) == 'number' && typeof(sliderStop) == 'number')
|
||||||
data += '&'+$(this).attr('id')+'='+sliderStart+'_'+sliderStop;
|
data += '&'+$(this).attr('id')+'='+sliderStart+'_'+sliderStop;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(['price', 'weight']).each(function(it, sliderType)
|
||||||
|
{
|
||||||
|
if ($('#layered_'+sliderType+'_range_min').length)
|
||||||
|
{
|
||||||
|
data += '&layered_'+sliderType+'_slider='+$('#layered_'+sliderType+'_range_min').val()+'_'+$('#layered_'+sliderType+'_range_max').val();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$('#layered_form .select option:checked').each( function () {
|
$('#layered_form .select option:checked').each( function () {
|
||||||
data += '&'+$(this).attr('id') + '=' + $(this).val();
|
data += '&'+$(this).attr('id') + '=' + $(this).val();
|
||||||
@@ -283,7 +299,8 @@ function reloadContent(params_plus)
|
|||||||
success: function(result)
|
success: function(result)
|
||||||
{
|
{
|
||||||
$('#layered_block_left').after('<div id="tmp_layered_block_left"></div>').remove();
|
$('#layered_block_left').after('<div id="tmp_layered_block_left"></div>').remove();
|
||||||
$('#tmp_layered_block_left').html(result.filtersBlock).attr('id', 'layered_block_left');
|
if (result.filtersBlock)
|
||||||
|
$('#tmp_layered_block_left').html(result.filtersBlock).attr('id', 'layered_block_left');
|
||||||
|
|
||||||
$('.category-product-count').html(result.categoryCount);
|
$('.category-product-count').html(result.categoryCount);
|
||||||
|
|
||||||
@@ -320,13 +337,19 @@ function reloadContent(params_plus)
|
|||||||
// Get all sliders value
|
// Get all sliders value
|
||||||
$(['price', 'weight']).each(function(it, sliderType)
|
$(['price', 'weight']).each(function(it, sliderType)
|
||||||
{
|
{
|
||||||
if ($('#layered_'+sliderType+'_slider'))
|
if ($('#layered_'+sliderType+'_slider').length)
|
||||||
{
|
{
|
||||||
// Check if slider is enable & if slider is used
|
// Check if slider is enable & if slider is used
|
||||||
if(typeof($('#layered_'+sliderType+'_slider').slider('values', 0)) != 'object')
|
if(typeof($('#layered_'+sliderType+'_slider').slider('values', 0)) != 'object')
|
||||||
|
{
|
||||||
if ($('#layered_'+sliderType+'_slider').slider('values', 0) != $('#layered_'+sliderType+'_slider').slider('option' , 'min')
|
if ($('#layered_'+sliderType+'_slider').slider('values', 0) != $('#layered_'+sliderType+'_slider').slider('option' , 'min')
|
||||||
|| $('#layered_'+sliderType+'_slider').slider('values', 1) != $('#layered_'+sliderType+'_slider').slider('option' , 'max'))
|
|| $('#layered_'+sliderType+'_slider').slider('values', 1) != $('#layered_'+sliderType+'_slider').slider('option' , 'max'))
|
||||||
current_friendly_url += '/'+sliderType+'-'+$('#layered_'+sliderType+'_slider').slider('values', 0)+'-'+$('#layered_'+sliderType+'_slider').slider('values', 1)
|
current_friendly_url += '/'+sliderType+'-'+$('#layered_'+sliderType+'_slider').slider('values', 0)+'-'+$('#layered_'+sliderType+'_slider').slider('values', 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ($('#layered_'+sliderType+'_range_min').length)
|
||||||
|
{
|
||||||
|
current_friendly_url += '/'+sliderType+'-'+$('#layered_'+sliderType+'_range_min').val()+'-'+$('#layered_'+sliderType+'_range_max').val();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (current_friendly_url == '#')
|
if (current_friendly_url == '#')
|
||||||
|
|||||||
@@ -2361,6 +2361,20 @@ class BlockLayered extends Module
|
|||||||
|
|
||||||
if ($priceArray['max'] != $priceArray['min'] && $priceArray['min'] != null)
|
if ($priceArray['max'] != $priceArray['min'] && $priceArray['min'] != null)
|
||||||
{
|
{
|
||||||
|
if ($filter['filter_type'] == 2)
|
||||||
|
{
|
||||||
|
$priceArray['list_of_values'] = array();
|
||||||
|
$nbr_of_value = $filter['filter_show_limit'];
|
||||||
|
if ($nbr_of_value < 2)
|
||||||
|
$nbr_of_value = 4;
|
||||||
|
$delta = ($priceArray['max'] - $priceArray['min']) / $nbr_of_value;
|
||||||
|
$current_step = $priceArray['min'];
|
||||||
|
for ($i = 0; $i < $nbr_of_value; $i++)
|
||||||
|
$priceArray['list_of_values'][] = array(
|
||||||
|
(int)($priceArray['min'] + $i * $delta),
|
||||||
|
(int)($priceArray['min'] + ($i + 1) * $delta)
|
||||||
|
);
|
||||||
|
}
|
||||||
if (isset($selectedFilters['price']) && isset($selectedFilters['price'][0])
|
if (isset($selectedFilters['price']) && isset($selectedFilters['price'][0])
|
||||||
&& isset($selectedFilters['price'][1]))
|
&& isset($selectedFilters['price'][1]))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -131,35 +131,64 @@ param_product_url = '';
|
|||||||
</select>
|
</select>
|
||||||
{/if}
|
{/if}
|
||||||
{else}
|
{else}
|
||||||
<label for="{$filter.type}">{l s='Range:' mod='blocklayered'}</label> <span id="layered_{$filter.type}_range"></span>
|
{if $filter.filter_type == 0}
|
||||||
<div style="margin: 6px 0 6px 6px; width: 93%;">
|
<label for="{$filter.type}">{l s='Range:' mod='blocklayered'}</label> <span id="layered_{$filter.type}_range"></span>
|
||||||
<div style="margin-top:5px;" class="layered_slider" id="layered_{$filter.type}_slider"></div>
|
<div style="margin: 6px 0 6px 6px; width: 93%;">
|
||||||
</div>
|
<div style="margin-top:5px;" class="layered_slider" id="layered_{$filter.type}_slider"></div>
|
||||||
<script type="text/javascript">
|
</div>
|
||||||
{literal}
|
<script type="text/javascript">
|
||||||
var filterRange = {/literal}{$filter.max}-{$filter.min}{literal};
|
{literal}
|
||||||
var step = filterRange / 100;
|
var filterRange = {/literal}{$filter.max}-{$filter.min}{literal};
|
||||||
if (step > 1)
|
var step = filterRange / 100;
|
||||||
step = parseInt(step);
|
if (step > 1)
|
||||||
addSlider('{/literal}{$filter.type}{literal}',{
|
step = parseInt(step);
|
||||||
range: true,
|
addSlider('{/literal}{$filter.type}{literal}',{
|
||||||
step: step,
|
range: true,
|
||||||
min: {/literal}{$filter.min}{literal},
|
step: step,
|
||||||
max: {/literal}{$filter.max}{literal},
|
min: {/literal}{$filter.min}{literal},
|
||||||
values: [ {/literal}{$filter.values[0]}{literal}, {/literal}{$filter.values[1]}{literal}],
|
max: {/literal}{$filter.max}{literal},
|
||||||
slide: function( event, ui ) {
|
values: [ {/literal}{$filter.values[0]}{literal}, {/literal}{$filter.values[1]}{literal}],
|
||||||
$('#layered_{/literal}{$filter.type}{literal}_range').html(ui.values[ 0 ] + '{/literal}{$filter.unit}{literal}' + ' - ' + ui.values[ 1 ] + '{/literal}{$filter.unit}{literal}');
|
slide: function( event, ui ) {
|
||||||
},
|
$('#layered_{/literal}{$filter.type}{literal}_range').html(ui.values[ 0 ] + '{/literal}{$filter.unit}{literal}' + ' - ' + ui.values[ 1 ] + '{/literal}{$filter.unit}{literal}');
|
||||||
stop: function () {
|
},
|
||||||
reloadContent();
|
stop: function () {
|
||||||
}
|
reloadContent();
|
||||||
}, '{/literal}{$filter.unit}{literal}');
|
}
|
||||||
$(document).ready(function()
|
}, '{/literal}{$filter.unit}{literal}');
|
||||||
{
|
{/literal}
|
||||||
$('.layered_{/literal}{$filter.type}{literal}').show();
|
</script>
|
||||||
});
|
{else if $filter.filter_type == 1}
|
||||||
{/literal}
|
<li>
|
||||||
</script>
|
{l s='From' mod='blocklayered'} <input class="layered_{$filter.type}_range" id="layered_{$filter.type}_range_min" type="text" value="{$filter.values[0]}" style="width:30px;"/>
|
||||||
|
<span class="layered_price_range_unit">{$filter.unit}</span>
|
||||||
|
{l s='to' mod='blocklayered'} <input class="layered_{$filter.type}_range" id="layered_{$filter.type}_range_max" type="text" value="{$filter.values[1]}" style="width:40px;"/>
|
||||||
|
<span class="layered_price_range_unit">{$filter.unit}</span>
|
||||||
|
<script type="text/javascript">
|
||||||
|
{literal}
|
||||||
|
$('#layered_{/literal}{$filter.type}{literal}_range_min').attr('limitValue', {/literal}{$filter.min}{literal});
|
||||||
|
$('#layered_{/literal}{$filter.type}{literal}_range_max').attr('limitValue', {/literal}{$filter.max}{literal});
|
||||||
|
{/literal}
|
||||||
|
</script>
|
||||||
|
</li>
|
||||||
|
{else}
|
||||||
|
{foreach $filter.list_of_values as $values}
|
||||||
|
<li onclick="$('#layered_{$filter.type}_range_min').val({$values[0]});$('#layered_{$filter.type}_range_max').val({$values[1]});reloadContent();" style="{if $filter.values[1] == $values[1] && $filter.values[0] == $values[0]}font-weight: bold;{/if}">
|
||||||
|
- {l s='From' mod='blocklayered'} {$values[0]} {$filter.unit} {l s='to' mod='blocklayered'} {$values[1]} {$filter.unit}
|
||||||
|
</li>
|
||||||
|
{/foreach}
|
||||||
|
<li style="display: none;">
|
||||||
|
<input class="layered_{$filter.type}_range" id="layered_{$filter.type}_range_min" type="hidden" value="{$filter.values[0]}" style="width:30px;"/>
|
||||||
|
<input class="layered_{$filter.type}_range" id="layered_{$filter.type}_range_max" type="hidden" value="{$filter.values[1]}" style="width:40px;"/>
|
||||||
|
</li>
|
||||||
|
{/if}
|
||||||
|
<script type="text/javascript">
|
||||||
|
{literal}
|
||||||
|
$(document).ready(function()
|
||||||
|
{
|
||||||
|
$('.layered_{/literal}{$filter.type}{literal}').show();
|
||||||
|
});
|
||||||
|
{/literal}
|
||||||
|
</script>
|
||||||
{/if}
|
{/if}
|
||||||
</ul>
|
</ul>
|
||||||
{if count($filter.values) > $filter.filter_show_limit && $filter.filter_show_limit > 0 && $filter.filter_type != 2}
|
{if count($filter.values) > $filter.filter_show_limit && $filter.filter_show_limit > 0 && $filter.filter_type != 2}
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ $_MODULE['<{blocklayered}prestashop>blocklayered_02ecc2cbb645a2b859deba6907334cc
|
|||||||
$_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_2d9b9a764fb0be4be10e1b2fce63f561'] = 'Slider';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_7e650380ef2b9cec2f2a96e6266ca93d'] = 'Zones de saisies';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_7e650380ef2b9cec2f2a96e6266ca93d'] = 'Zones de saisies';
|
||||||
$_MODULE['<{blocklayered}prestashop>blocklayered_010359888c6e811caee8e540221f0a21'] = 'Listes de valeurs';
|
$_MODULE['<{blocklayered}prestashop>blocklayered_010359888c6e811caee8e540221f0a21'] = 'Liste 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';
|
||||||
@@ -124,5 +124,7 @@ $_MODULE['<{blocklayered}prestashop>blocklayered_1262d1b9fbffb3a8e85ac9e4b449e98
|
|||||||
$_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_75954a3c6f2ea54cb9dff249b6b5e8e6'] = 'Tranche';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_5da618e8e4b89c66fe86e32cdafde142'] = 'De';
|
||||||
|
$_MODULE['<{blocklayered}prestashop>blocklayered_01b6e20344b68835c5ed1ddedf20d531'] = 'à';
|
||||||
$_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';
|
||||||
|
|||||||
Reference in New Issue
Block a user