// Fixed problems with encoding and json_encode on the block layered

This commit is contained in:
mDeflotte
2012-01-04 08:44:49 +00:00
parent 9b073c1cdf
commit 72eb47529d
2 changed files with 35 additions and 2 deletions
+34 -1
View File
@@ -331,7 +331,11 @@ function reloadContent(params_plus)
$('.category-product-count').html(result.categoryCount); $('.category-product-count').html(result.categoryCount);
$('#product_list').replaceWith(result.productList); if (result.productList)
$('#product_list').replaceWith(utf8_decode(result.productList));
else
$('#product_list').html('');
$('#product_list').css('opacity', '1'); $('#product_list').css('opacity', '1');
$('div#pagination').html(result.pagination); $('div#pagination').html(result.pagination);
paginationButton(); paginationButton();
@@ -433,3 +437,32 @@ function updateProductUrl()
$(this).attr('href', $(this).attr('href') + param_product_url); $(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;
}
+1 -1
View File
@@ -3356,7 +3356,7 @@ class BlockLayered extends Module
/* We are sending an array in jSon to the .js controller, it will update both the filters and the products zones */ /* We are sending an array in jSon to the .js controller, it will update both the filters and the products zones */
return Tools::jsonEncode(array( return Tools::jsonEncode(array(
'filtersBlock' => $this->generateFiltersBlock($selectedFilters), 'filtersBlock' => $this->generateFiltersBlock($selectedFilters),
'productList' => $product_list, 'productList' => utf8_encode($product_list),
'pagination' => $smarty->fetch(_PS_THEME_DIR_.'pagination.tpl'), 'pagination' => $smarty->fetch(_PS_THEME_DIR_.'pagination.tpl'),
'categoryCount' => $categoryCount)); 'categoryCount' => $categoryCount));
} }