Jump to content

Navigation a facette : les couleurs s'additionnent


Recommended Posts

Bonjour

 

Lorsque j'affiche la navigation a facette et que je sélectionne un tri par couleurs, celle ci s'additionnent.

Hors je voudrais que seul la sélection verte s'affiche (quand sélectionné couleur verte)

Puis que le rose quand on sélectionne la couleur rose par exemple...

 

J'ai modifié le code du blocklayered.php ligne1846 mais il doit y avoir un soucis dans celui ci...

 

avant

 

Shop::addSqlAssociation('product_attribute', 'pa').'

WHERE '.implode(' OR ', $sub_query).') ';
}

 

Apres

Shop::addSqlAssociation('product_attribute', 'pa').'

WHERE '.implode(' OR ', $sub_query).') GROUP BY id_product_attribute HAVING COUNT(*) = '.count($sub_query).') ';
}

 

Si qq voit ou ça cloche...

Merci

Share this post


Link to post
Share on other sites

Bonjour,

Je sais que ce n'est pas une chose forcément bien vue, mais faire un echo de la requête complète permettrait de voir pourquoi ça ne marche pas.

Après la boucle du foreach :

foreach ($selected_filters as $key => $filter_values), après le },

faire un echo "<!-- $query_filters_where -->"; (ligne 1898).

 

Après tu regardes dans le code source de la page appelée avec le filtrage que tu souhaites, et tu la ramènes ici.

 

Ce n'est pas LA solution, mais une recherche...

Share this post


Link to post
Share on other sites

Bonjour  Arnaud_69

et merci de ton aide (encore !!)

 

J'ai inséré l'écho pour la requête.

 

Quand je regarde le code source voici ce que j'ai :

 

(function (callback ) {

    "use strict";
    if (this === null)
        throw new @TypeError("Array.prototype.forEach requires that |this| not be null");
    
    if (this === undefined)
        throw new @TypeError("Array.prototype.forEach requires that |this| not be undefined");
    
    var array = @Object(this);
    var length = @toLength(array.length);
 
    if (typeof callback !== "function")
        throw new @TypeError("Array.prototype.forEach callback must be a function");
    
    var thisArg = arguments.length > 1 ? arguments[1] : undefined;
    
    for (var i = 0; i < length; i++) {
        if (i in array)
            [email protected](thisArg, array, i, array);
    }
})
 
 
(après est ce lien ça dont tu parles ?)
 
Merci

Share this post


Link to post
Share on other sites

OK.

Une autre question, qu'est ce que tu entends par s'additionner ?  :blink:

Quand je choisis une couleur quelconque, je n'ai aucun résultat, pourtant le json est bien généré, mais dans 

/modules/blocklayered/blocklayered-ajax.php

Share this post


Link to post
Share on other sites

Et bien avant que je modifie le code, quand tu cliquais sur la couleur verte (par exemple) tous les produits verts s'affichaient.

Puis quand tu cliquais sur rouge : il y avait le rouge + le vert (de la précédente recherche)

 

là je suis d'accord avec toi il n' y a plus aucun produit lié aux couleurs qui s'affichent....

Share this post


Link to post
Share on other sites

Bonjour,

Je sais que ce n'est pas une chose forcément bien vue, mais faire un echo de la requête complète permettrait de voir pourquoi ça ne marche pas.

Après la boucle du foreach :

foreach ($selected_filters as $key => $filter_values), après le },

faire un echo "<!-- $query_filters_where -->"; (ligne 1898).

 

Après tu regardes dans le code source de la page appelée avec le filtrage que tu souhaites, et tu la ramènes ici.

 

Ce n'est pas LA solution, mais une recherche...

D'où ce post.

Essaie de mettre ce que je te dis, tu verras la requête et tu pourras me la laisser comme ça on pourra l'étudier et voir si ça correspond à la demande.

Share this post


Link to post
Share on other sites

Juste pour information.

L'url normalement appelée en ajax est : 

www.faire-party.com/modules/blocklayered/blocklayered-ajax.php?id_category_layered=6&layered_price_slider=0_50&orderby=position&orderway=asc&n=12&_=1476447051090

Mais plus tu cliques sur les couleurs plus elle s'allonge par ajout de paramètres et ainsi elle se perd d'où le fait que tu n'aies plus rien à l'affichage !

Exemple après 5 ou 6 clics :

http://www.faire-party.com/modules/blocklayered/blocklayered-ajax.php?layered_id_attribute_group_26=26&layered_id_attribute_group_5=5&layered_id_attribute_group_6=6&layered_id_attribute_group_7=7&layered_id_attribute_group_21=21&id_category_layered=6&layered_id_attribute_group_26=26_2&layered_id_attribute_group_5=5_2&layered_id_attribute_group_6=6_2&layered_id_attribute_group_7=7_2&layered_id_attribute_group_21=21_2&layered_id_attribute_group_4=4_2&layered_price_slider=0_50&orderby=position&orderway=asc&n=12&_=1476447051094

Donc à mon avis, c'est le javascript qui patine...

Share this post


Link to post
Share on other sites

Bonjour Arnaud

 

J'ai trouvé le fichier javascript blocklayered.js... voici le code j'espère que ça te parle :)

/*
* 2007-2016 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 [email protected] 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 <[email protected]>
*  @copyright  2007-2016 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registred Trademark & Property of PrestaShop SA
*/

var ajaxQueries = new Array();
var ajaxLoaderOn = 0;
var sliderList = new Array();
var slidersInit = false;

$(document).ready(function()
{
	cancelFilter();
	openCloseFilter();
	
	// Click on color
	$('#layered_form input[type=button], #layered_form label.layered_color').live('click', function()
	{
		if (!$('input[name='+$(this).attr('name')+'][type=hidden]').length)
			$('<input />').attr('type', 'hidden').attr('name', $(this).attr('name')).val($(this).data('rel')).appendTo('#layered_form');
		else
			$('input[name='+$(this).attr('name')+'][type=hidden]').remove();
		reloadContent();
	});
	
	// Click on checkbox
	$('#layered_form input[type=checkbox], #layered_form input[type=radio]').live('click', function()
	{
		reloadContent();
	});

	$(document).on('change', '#layered_form .select', function(e)
	{
		reloadContent();
	});
	
	// Changing content of an input text
	$('#layered_form input.layered_input_range').live('keyup', function()
	{
		if ($(this).attr('timeout_id'))
			window.clearTimeout($(this).attr('timeout_id'));

		// IE Hack, setTimeout do not acept the third parameter
		var reference = this;
		
		$(this).attr('timeout_id', window.setTimeout(function(it) {
			if (!$(it).attr('id'))
				it = reference;
			
			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));
	});

	$('#layered_block_left .radio').live('click', function() {
		var name = $(this).attr('name');
		$.each($(this).parent().parent().find('input[type=button]'), function (it, item) {
			if ($(item).hasClass('on') && $(item).attr('name') != name) {
				$(item).click();
			}
		});
		return true;
	});
	
	// Click on label
	$('#layered_block_left label a').live({
		click: function() {
			var disable = $(this).parent().parent().find('input').attr('disabled');
			if (disable == ''
			|| typeof(disable) == 'undefined'
			|| disable == false)
			{
				$(this).parent().parent().find('input').click();
				reloadContent();
			}
			return false;
		}
	});
	
	layered_hidden_list = {};
	$('.hide-action').live('click', function() {
		if (typeof(layered_hidden_list[$(this).parent().find('ul').attr('id')]) == 'undefined' || layered_hidden_list[$(this).parent().find('ul').attr('id')] == false)
		{
			layered_hidden_list[$(this).parent().find('ul').attr('id')] = true;
		}
		else
		{
			layered_hidden_list[$(this).parent().find('ul').attr('id')] = false;
		}
		hideFilterValueAction(this);
	});
	$('.hide-action').each(function() {
		hideFilterValueAction(this);
	});

	// To be sure there is no other events attached to the selectProductSort, change the ID
	var id = 1;
	while ($('#selectPrductSort').length) { // Because ids are duplicated
		// Unbind event change on #selectPrductSort
		$('#selectPrductSort').unbind('change');
		$('#selectPrductSort').attr('onchange', '');
		$('#selectPrductSort').addClass('selectProductSort');
		$('#selectPrductSort').attr('id', 'selectPrductSort'+id);
		$('label[for=selectPrductSort]').attr('for', 'selectPrductSort'+id);
		id++;
	}

	while ($('#selectProductSort').length) { // Because ids are duplicated
		// Unbind event change on #selectProductSort
		$('#selectProductSort').unbind('change');
		$('#selectProductSort').attr('onchange', '');
		$('#selectProductSort').addClass('selectProductSort');
		$('#selectProductSort').attr('id', 'selectProductSort'+id);
		$('label[for=selectProductSort]').attr('for', 'selectProductSort'+id);
		id++;
	}
	
	// Since 1.5, event is add to .selectProductSort and not to #selectProductSort
	setTimeout(function() {
		$('.selectProductSort').unbind('change');
	}, 100);
	
	$('.selectProductSort').live('change', function(event) {
		$('.selectProductSort').val($(this).val());
		reloadContent();
	});
	
	// To be sure there is no other events attached to the nb_item, change the ID
	var id = 1;
	while ($('#nb_item').length) { // Because ids are duplicated
		// Unbind event change on #nb_item
		$('#nb_item').unbind('change');
		$('#nb_item').attr('onchange', '');
		$('#nb_item').addClass('nb_item');
		$('#nb_item').attr('id', 'nb_item'+id);
		$('label[for=nb_item]').attr('for', 'nb_item'+id);
		id++;
	}
	$('.nb_item').live('change', function(event) {
		$('.nb_item').val($(this).val());
		reloadContent();
	});
	
	paginationButton();
	initLayered();
});
	
function hideFilterValueAction(it)
{
	if (typeof(layered_hidden_list[$(it).parent().find('ul').attr('id')]) == 'undefined' || layered_hidden_list[$(it).parent().find('ul').attr('id')] == false)
	{
		$(it).parent().find('.hiddable').hide();
		$(it).parent().find('.hide-action.less').hide();
		$(it).parent().find('.hide-action.more').show();
	}
	else
	{
		$(it).parent().find('.hiddable').show();
		$(it).parent().find('.hide-action.less').show();
		$(it).parent().find('.hide-action.more').hide();
	}
}

function addSlider(type, data, unit, format)
{
	sliderList.push({
		type: type,
		data: data,
		unit: unit,
		format: format
	});
}

function initSliders()
{
	$(sliderList).each(function(i, slider){
		$('#layered_'+slider['type']+'_slider').slider(slider['data']);
		
		var from = '';
		var to = '';
		switch (slider['format'])
		{
			case 1:
			case 2:
			case 3:
			case 4:
				from = blocklayeredFormatCurrency($('#layered_'+slider['type']+'_slider').slider('values', 0), slider['format'], slider['unit']);
				to = blocklayeredFormatCurrency($('#layered_'+slider['type']+'_slider').slider('values', 1), slider['format'], slider['unit']);
				break;
			case 5:
				from =  $('#layered_'+slider['type']+'_slider').slider('values', 0)+slider['unit']
				to = $('#layered_'+slider['type']+'_slider').slider('values', 1)+slider['unit'];
				break;
		}
		$('#layered_'+slider['type']+'_range').html(from+' - '+to);
	});
}

function initLayered()
{
	initSliders();
	initLocationChange();
	updateProductUrl();
	if (window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '')
	{
		var params = window.location.href.split('#')[1];
		reloadContent('&selected_filters='+params);
	}
}

function paginationButton() {
	$('#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;
		if ($(this).attr('id') == 'pagination_next')
			nbPage = parseInt($('#pagination li.current').children().html())+ 1;
		else if ($(this).attr('id') == 'pagination_previous')
			nbPage = parseInt($('#pagination li.current').children().html())- 1;
	
		$(this).children().click(function () {
			if (nbPage == 0)
				p = parseInt($(this).html()) + parseInt(nbPage);
			else
				p = nbPage;
			p = '&p='+ p;
			reloadContent(p);
			nbPage = 0;
			return false;
		});
	});
}

function cancelFilter()
{
	$('#enabled_filters a').live('click', function(e)
	{
		if ($(this).data('rel').search(/_slider$/) > 0)
		{
			if ($('#'+$(this).data('rel')).length)
			{
				$('#'+$(this).data('rel')).slider('values' , 0, $('#'+$(this).data('rel')).slider('option' , 'min' ));
				$('#'+$(this).data('rel')).slider('values' , 1, $('#'+$(this).data('rel')).slider('option' , 'max' ));
				$('#'+$(this).data('rel')).slider('option', 'slide')(0,{values:[$('#'+$(this).data('rel')).slider( 'option' , 'min' ), $('#'+$(this).data('rel')).slider( 'option' , 'max' )]});
			}
			else if($('#'+$(this).data('rel').replace(/_slider$/, '_range_min')).length)
			{
				$('#'+$(this).data('rel').replace(/_slider$/, '_range_min')).val($('#'+$(this).data('rel').replace(/_slider$/, '_range_min')).attr('limitValue'));
				$('#'+$(this).data('rel').replace(/_slider$/, '_range_max')).val($('#'+$(this).data('rel').replace(/_slider$/, '_range_max')).attr('limitValue'));
			}
		}
		else
		{
			if ($('option#'+$(this).data('rel')).length)
			{
				$('#'+$(this).data('rel')).parent().val('');
			}
			else
			{
				$('#'+$(this).data('rel')).attr('checked', false);
				$('.'+$(this).data('rel')).attr('checked', false);
				$('#layered_form input[type=hidden][name='+$(this).data('rel')+']').remove();
			}
		}
		reloadContent();
		e.preventDefault();
	});
}

function openCloseFilter()
{
	$('#layered_form span.layered_close a').live('click', function(e)
	{
		if ($(this).html() == '<')
		{
			$('#'+$(this).data('rel')).show();
			$(this).html('v');
			$(this).parent().removeClass('closed');
		}
		else
		{
			$('#'+$(this).data('rel')).hide();
			$(this).html('<');
			$(this).parent().addClass('closed');
		}
		
		e.preventDefault();
	});
}

function stopAjaxQuery() {
	if (typeof(ajaxQueries) == 'undefined')
		ajaxQueries = new Array();
	for(i = 0; i < ajaxQueries.length; i++) {
		if (typeof ajaxQueries[i] != 'undefined')
			ajaxQueries[i].abort();
	}		
	ajaxQueries = new Array();
}

function reloadContent(params_plus)
{
	stopAjaxQuery();
	
	if (!ajaxLoaderOn)
	{
		$('#product_list').prepend($('#layered_ajax_loader').html());
		$('#product_list').css('opacity', '0.7');
		ajaxLoaderOn = 1;
	}
	
	data = $('#layered_form').serialize();
	$('.layered_slider').each( function () {
		var sliderStart = $(this).slider('values', 0);
		var sliderStop = $(this).slider('values', 1);
		if (typeof(sliderStart) == 'number' && typeof(sliderStop) == 'number')
			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').each( function () {
		if($(this).attr('id') && $(this).parent().val() == $(this).val())
		{
			data += '&'+$(this).attr('id') + '=' + $(this).val();
		}
	});
	
	if ($('.selectProductSort').length && $('.selectProductSort').val())
	{
		if ($('.selectProductSort').val().search(/orderby=/) > 0)
		{
			// Old ordering working
			var splitData = [
				$('.selectProductSort').val().match(/orderby=(\w*)/)[1],
				$('.selectProductSort').val().match(/orderway=(\w*)/)[1]
			];
		}
		else
		{
			// New working for default theme 1.4 and theme 1.5
			var splitData = $('.selectProductSort').val().split(':');
		}
		data += '&orderby='+splitData[0]+'&orderway='+splitData[1];
	}
	if ($('.nb_item').length)
	{
		data += '&n='+$('.nb_item').val();
	}
	
	var slideUp = true;
	if (params_plus == undefined || !(typeof params_plus == 'string'))
	{
		params_plus = '';
		slideUp = false;
	}
	
	// Get nb items per page
	var n = '';
	$('#pagination #nb_item').children().each(function(it, option) {
		if (option.selected)
			n = '&n='+option.value;
	});
	
	ajaxQuery = $.ajax(
	{
		type: 'GET',
		url: baseDir + 'modules/blocklayered/blocklayered-ajax.php',
		data: data+params_plus+n,
		dataType: 'json',
		cache: false, // @todo see a way to use cache and to add a timestamps parameter to refresh cache each 10 minutes for example
		success: function(result)
		{
			$('#layered_block_left').replaceWith(utf8_decode(result.filtersBlock));
			
			$('.category-product-count').html(result.categoryCount);
			
			if (result.productList)
				$('#product_list').replaceWith(utf8_decode(result.productList));
			else
				$('#product_list').html('');

			$('#product_list').css('opacity', '1');
			if ($.browser.msie) // Fix bug with IE8 and aliasing
				$('#product_list').css('filter', '');

			if (result.pagination.search(/[^\s]/) >= 0) {
				if ($(result.pagination).find('ul.pagination').length)
				{
					$('div#pagination').show();
					$('ul.pagination').each(function () {
						$(this).replaceWith($(result.pagination).find('ul.pagination'));
					});
				}
				else if (!$('ul.pagination').length)
				{
					$('div#pagination').show();
					$('div#pagination').each(function () {
						$(this).html($(result.pagination));
					});
				}
				else
				{
					$('ul.pagination').html('');
					$('div#pagination').hide();
				}
			}
			else
			{
				$('ul.pagination').html('');
				$('div#pagination').hide();
			}
			
			paginationButton();
			ajaxLoaderOn = 0;
			
			// On submiting nb items form, relaod with the good nb of items
			$('#pagination form').submit(function() {
				val = $('#pagination #nb_item').val();
				$('#pagination #nb_item').children().each(function(it, option) {
					if (option.value == val)
						$(option).attr('selected', true);
					else
						$(option).removeAttr('selected');
				});
				// Reload products and pagination
				reloadContent();
				return false;
			});
			if (typeof(ajaxCart) != "undefined")
				ajaxCart.overrideButtonsInThePage();
			
			if (typeof(reloadProductComparison) == 'function')
				reloadProductComparison();
			initSliders();
			
			// Currente page url
			if (typeof(current_friendly_url) == 'undefined')
				current_friendly_url = '#';
				
			// Get all sliders value
			$(['price', 'weight']).each(function(it, sliderType)
			{
				if ($('#layered_'+sliderType+'_slider').length)
				{
					// Check if slider is enable & if slider is used
					if(typeof($('#layered_'+sliderType+'_slider').slider('values', 0)) != 'object')
					{
						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'))
							current_friendly_url += '/'+sliderType+'-'+$('#layered_'+sliderType+'_slider').slider('values', 0)+'-'+$('#layered_'+sliderType+'_slider').slider('values', 1)
					}
				}
				else if ($('#layered_'+sliderType+'_range_min').length)
				{
					if ($('#layered_' + sliderType + '_range_min').attr('limitValue') != $('#layered_'+sliderType+'_range_min').val()
                                        || $('#layered_' + sliderType + '_range_max').attr('limitValue') != $('#layered_'+sliderType+'_range_max').val())
						current_friendly_url += '/'+sliderType+'-'+$('#layered_'+sliderType+'_range_min').val()+'-'+$('#layered_'+sliderType+'_range_max').val();
				}
			});
			window.location = current_friendly_url;
			lockLocationChecking = true;
			
			if(slideUp)
				$.scrollTo('#product_list', 400);
			updateProductUrl();
			
			$('.hide-action').each(function() {
				hideFilterValueAction(this);
			});
		}
	});
	ajaxQueries.push(ajaxQuery);
}

function initLocationChange(func, time)
{
	if(!time) time = 500;
	var current_friendly_url = getUrlParams();
	setInterval(function()
	{
		if(getUrlParams() != current_friendly_url && !lockLocationChecking)
		{
			// Don't reload page if current_friendly_url and real url match
			if (current_friendly_url.replace(/^#(\/)?/, '') == getUrlParams().replace(/^#(\/)?/, ''))
				return;
			
			lockLocationChecking = true;
			reloadContent('&selected_filters='+getUrlParams().replace(/^#/, ''));
		}
		else {
			lockLocationChecking = false;
			current_friendly_url = getUrlParams();
		}
	}, time);
}

function getUrlParams()
{
	var params = current_friendly_url;
	if(window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '')
		params = '#'+window.location.href.split('#')[1];
	return params;
}

function updateProductUrl()
{
	// Adding the filters to URL product
	if (typeof(param_product_url) != 'undefined' && param_product_url != '' && param_product_url !='#') {
		$.each($('ul#product_list li.ajax_block_product .product_img_link,'+
				'ul#product_list li.ajax_block_product h3 a,'+
				'ul#product_list li.ajax_block_product .product_desc a,'+
				'ul#product_list li.ajax_block_product .lnk_view'), function() {
			$(this).attr('href', $(this).attr('href') + param_product_url);
		});
	}
}


/**
 * Copy of the php function utf8_decode()
 */
function utf8_decode (utfstr) {
	var res = '';
	for (var i = 0; i < utfstr.length;) {
		var c = utfstr.charCodeAt(i);

		if (c < 128)
		{
			res += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224))
		{
			var c1 = utfstr.charCodeAt(i+1);
			res += String.fromCharCode(((c & 31) << 6) | (c1 & 63));
			i += 2;
		}
		else
		{
			var c1 = utfstr.charCodeAt(i+1);
			var c2 = utfstr.charCodeAt(i+2);
			res += String.fromCharCode(((c & 15) << 12) | ((c1 & 63) << 6) | (c2 & 63));
			i += 3;
		}
	}
	return res;
}


/**
 * Return a formatted price
 * Copy from tools.js
 */
function blocklayeredFormatCurrency(price, currencyFormat, currencySign, currencyBlank)
{
	// if you modified this function, don't forget to modify the PHP function displayPrice (in the Tools.php class)
	blank = '';
	price = parseFloat(price.toFixed(6));
	price = ps_round(price, priceDisplayPrecision);
	if (currencyBlank > 0)
		blank = ' ';
	if (currencyFormat == 1)
		return currencySign + blank + blocklayeredFormatNumber(price, priceDisplayPrecision, ',', '.');
	if (currencyFormat == 2)
		return (blocklayeredFormatNumber(price, priceDisplayPrecision, ' ', ',') + blank + currencySign);
	if (currencyFormat == 3)
		return (currencySign + blank + blocklayeredFormatNumber(price, priceDisplayPrecision, '.', ','));
	if (currencyFormat == 4)
		return (blocklayeredFormatNumber(price, priceDisplayPrecision, ',', '.') + blank + currencySign);
	return price;
}


/**
 * Return a formatted number
 * Copy from tools.js
 */
function blocklayeredFormatNumber(value, numberOfDecimal, thousenSeparator, virgule)
{
	value = value.toFixed(numberOfDecimal);
	var val_string = value+'';
	var tmp = val_string.split('.');
	var abs_val_string = (tmp.length == 2) ? tmp[0] : val_string;
	var deci_string = ('0.' + (tmp.length == 2 ? tmp[1] : 0)).substr(2);
	var nb = abs_val_string.length;

	for (var i = 1 ; i < 4; i++)
		if (value >= Math.pow(10, (3 * i)))
			abs_val_string = abs_val_string.substring(0, nb - (3 * i)) + thousenSeparator + abs_val_string.substring(nb - (3 * i));

	if (parseInt(numberOfDecimal) == 0)
		return abs_val_string;
	return abs_val_string + virgule + (deci_string > 0 ? deci_string : '00');
}

merci

Claire

Share this post


Link to post
Share on other sites

Bonjour,

 

Je pense que le get param ne se passe pas bien :

function getUrlParams()
{
	var params = current_friendly_url;
	if(window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '')
		params = '#'+window.location.href.split('#')[1];
	return params;
}

Dire quoi exactement, je ne sais pas, mais ça bugge par là.

Il faudrait remonter ces éléments au dév qui a créé ce module

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More