Автор Тема: Блок Многоуровневой Навигации, Фильтр по цене  (Прочитано 1039 раз)

12 Май 2016, 15:50:37
  • Пользователь
  • **
  • Сообщений: 81
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте уважаемые,

включил модуль Блок Многоуровневой Навигации, для фильтра цены выбрал ползунок(slider). Цена и валюта пишутся слитно, например "150USD", хочу чтоб писалось раздельно "150 USD". Подскажите пожалуйста, откуда можно это исправить. Благодарю за внимание.
12 Май 2016, 16:40:24
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Поменять можно в файле /modules/blocklayered/blocklayered.js в функции blocklayeredFormatCurrency.
12 Май 2016, 17:39:42
Ответ #2
  • Пользователь
  • **
  • Сообщений: 81
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Поменять можно в файле /modules/blocklayered/blocklayered.js в функции blocklayeredFormatCurrency.

Спсибо за ответ Adik. Я сделал изменения в этом файле, в этой функции, но ничто не изменилось. Затем я удалил целиком эту функцию чтоб проверить, опять ничего не изменилось. Затем я удалил сам файл, опять ничего не изменилось, всё работает по прежнему. Может быть дело в Кэшэ? Все настройки кэша я отключил, но опять тоже самое.
13 Май 2016, 09:00:40
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
У вас наверное этот файл в папке темы находиться
/themes/ваша тема/js/modules/blocklayered/blocklayered.js
13 Май 2016, 11:42:08
Ответ #4
  • Пользователь
  • **
  • Сообщений: 81
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас наверное этот файл в папке темы находиться
/themes/ваша тема/js/modules/blocklayered/blocklayered.js

Adik, я открыл этот файл /themes/ваша тема/js/modules/blocklayered/blocklayered.js, какжется то что мне нужно находится в функции initSliders() . Я в коде js разбираюсь не очень, попробовал добавить пробел между slider['format'] и slider['unit'], но в результате слайдер просто исчезает. Подскажите пожалуйста что надо изменить в этом коде?

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 = formatCurrency($('#layered_'+slider['type']+'_slider').slider('values', 0), slider['format'], slider['unit']);
to = formatCurrency($('#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);
});
}
13 Май 2016, 12:01:04
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Нужно найти где в вашей теме объявление функции formatCurrency. Эта функция возвращает значение цены и валюты, в ней и нужно добавить пробел.
У меня это файл tools.js
blank = '';
...
return (FormatNumber(price, priceDisplayPrecision, ',', '.') + blank + currencySign);
Изменить нужно
blank = ' ';
13 Май 2016, 12:09:50
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Adik, я открыл этот файл /themes/ваша тема/js/modules/blocklayered/blocklayered.js, какжется то что мне нужно находится в функции initSliders()
Если у вас есть такой файл и в нем нет определения функции formatCurrency, то вам нужно изменить в файле /js/tools.js код
function formatCurrency(price, currencyFormat, currencySign, currencyBlank)
{
// if you modified this function, don't forget to modify the PHP function displayPrice (in the Tools.php class)
var blank = ' '; /* вот тут добавьте пробел */
Cоздание интернет сайтов Webstudio UwK
13 Май 2016, 12:56:57
Ответ #7
  • Пользователь
  • **
  • Сообщений: 81
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Adik, я открыл этот файл /themes/ваша тема/js/modules/blocklayered/blocklayered.js, какжется то что мне нужно находится в функции initSliders()
Если у вас есть такой файл и в нем нет определения функции formatCurrency, то вам нужно изменить в файле /js/tools.js код
function formatCurrency(price, currencyFormat, currencySign, currencyBlank)
{
// if you modified this function, don't forget to modify the PHP function displayPrice (in the Tools.php class)
var blank = ' '; /* вот тут добавьте пробел */

Adik, Виталий, сделал по вашей инструкции, заработало. Благодарю за помощь!