Автор Тема: Как поменять вид фильтра типа color или texture  (Прочитано 905 раз)

25 Октябрь 2016, 10:42:32
Ответ #15
  • Пользователь
  • **
  • Сообщений: 93
  • Репутация: +2/-0
  • PrestaShop 1.7.7.3
    • Просмотр профиля
Вот файл blocklayered.js:

// 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();
});

Вы думаете отрабатывает $('#layered_form input[type=button], #layered_form label.layered_color').live
но нет, у меня же больше нет input[type=button]
_________
Удаление вирусов и вредоносного кода с любых сайтов.
25 Октябрь 2016, 11:02:01
Ответ #16
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В том то и дело, что нет input hidden где хранится выбранный фильтр цвета. Оставить нужно input hidden, посетитель его все равно не видит
25 Октябрь 2016, 12:18:44
Ответ #17
  • Пользователь
  • **
  • Сообщений: 93
  • Репутация: +2/-0
  • PrestaShop 1.7.7.3
    • Просмотр профиля
Неа, мне кажется не так.
Ладно, всё, сдаюсь.
_________
Удаление вирусов и вредоносного кода с любых сайтов.
25 Октябрь 2016, 12:41:03
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
При чем тут кажется? Код смотрите
{if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}если выбран фильтр то добавяляется input с name = layered_id_attribute_group_xx.
а в javascript уже берется значение этого поля
$('#layered_form input[type=hidden][name='+$(this).data('rel')+']')
25 Октябрь 2016, 12:58:15
Ответ #19
  • Пользователь
  • **
  • Сообщений: 93
  • Репутация: +2/-0
  • PrestaShop 1.7.7.3
    • Просмотр профиля
$('#layered_form input[type=hidden][name='+$(this).data('rel')+']')Так это выполняется, для input типа button, а у меня checkbox, в котором только reloadContent()
_________
Удаление вирусов и вредоносного кода с любых сайтов.
25 Октябрь 2016, 13:28:19
Ответ #20
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
изменяете в blocklayered.tpl
{if isset($filter.is_color_group) && $filter.is_color_group}
<input class="checkbox color-option {if isset($value.checked) && $value.checked}on{/if} {if !$value.nbr}disable{/if}" type="checkbox" name="layered_{$filter.type_lite}_{$id_value}" data-rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr}disabled="disabled"{/if}  {if isset($value.checked) && $value.checked}checked="checked"{/if}/>
{if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
{else}
и в blocklayered.js
// Click on color
$(document).on('click', '#layered_form input.color-option, #layered_form label.layered_color', function(e) {
...
$.each($(this).parent().parent().find('input.color-option'), function (it, item) {
Фильтры цвета показывает как чекбоксы.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
25 Октябрь 2016, 13:48:27
Ответ #21
  • Пользователь
  • **
  • Сообщений: 93
  • Репутация: +2/-0
  • PrestaShop 1.7.7.3
    • Просмотр профиля
А куда вставлять это:
$.each($(this).parent().parent().find('input.color-option'), function (it, item) {
_________
Удаление вирусов и вредоносного кода с любых сайтов.