Автор Тема: Блок многоуровневой навигации - Палитра  (Прочитано 937 раз)

20 Январь 2015, 13:02:03
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте,
Prestashop 1.5.6.2
Ссылка http://lavivas.com.ua/5-laptops#/
На сайте, я создал атрибут "цвет" в нем значения самих цветов(они отображаются нормально), мне необходимо картинку текстуры туда влепить, я это сделал в окне атрибутов, выбрал палитра, сделал текстуру размером 16*16 пикс формат jpeg, указал ему ее она вроде показывается в предосмотре(там где я атрибуты задаются), но не показывается на странице списка товаров в многоуровневом фильтре, вместо него пустое поле, называется на сайте он у меня палитра1.
Как решить данную задачу?
20 Январь 2015, 13:09:58
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В стандарном шаблоне работает. В значениях атрибута выбираешь палитру, закачиваешь файлы палитры и все работает.
Для страницы товара в шаблоне должен быть вывод изображений
{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" /><br />
{/if}
Если такой код есть, а изображений нет. Тогда нужно проверить существование этих файлов на сервере и права на доступ.
Может быть проблема с блоком многоуровневой навигации. Чтобы проверить, нужно отключить этот модуль.
20 Январь 2015, 13:20:15
Ответ #2
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В стандарном шаблоне работает. В значениях атрибута выбираешь палитру, закачиваешь файлы палитры и все работает.
Для страницы товара в шаблоне должен быть вывод изображений
{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" /><br />
{/if}
Если такой код есть, а изображений нет. Тогда нужно проверить существование этих файлов на сервере и права на доступ.
Может быть проблема с блоком многоуровневой навигации. Чтобы проверить, нужно отключить этот модуль.
в каком файле код этот смотреть?
И как я проверю работоспособность , если блок многоуровневой навигации отключу?
20 Январь 2015, 13:49:28
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Шаблон страницы товара - product.tpl
20 Январь 2015, 14:29:48
Ответ #4
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Шаблон страницы товара - product.tpl
Зашел в themes/alysum/
открыл product.tpl

там есть код
{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" /><br>
{/if}
Есть еще такой код, но он закомментирован
<!--Alysum-->
<!-- {if $product->description_short OR $packItems|@count > 0}
<div id="short_description_block">
{if $product->description_short}
<div id="short_description_content" class="rte align_justify">{$product->description_short}</div>
{/if}
{if $product->description}
<p class="buttons_bottom_block"><a href="javascript:{ldelim}{rdelim}" class="button">{l s='More details'}</a></p>
{/if}
{if $packItems|@count > 0}
<div class="short_description_pack">
<h3>{l s='Pack content'}</h3>
{foreach from=$packItems item=packItem}
<div class="pack_content">
{$packItem.pack_quantity} x <a href="{$link->getProductLink($packItem.id_product, $packItem.link_rewrite, $packItem.category)}">{$packItem.name|escape:'htmlall':'UTF-8'}</a>
<p>{$packItem.description_short}</p>
</div>
{/foreach}
</div>
{/if}
</div>
{/if}

{*{if isset($colors) && $colors}
<div id="color_picker">
<p>{l s='Pick a color:' js=1}</p>
<div class="clear"></div>
<ul id="color_to_pick_list" class="clearfix">
{foreach from=$colors key='id_attribute' item='color'}
<li><a id="color_{$id_attribute|intval}" class="color_pick" style="background: {$color.value};" onclick="updateColorSelect({$id_attribute|intval});$('#wrapResetImages').show('slow');" title="{$color.name}">{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$color.name}" width="20" height="20" />{/if}</a></li>
{/foreach}
</ul>
<div class="clear"></div>
</div>
{/if}*}-->

<!-- description and features -->


20 Январь 2015, 14:47:47
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Поэтому и не работает, тема сделана так. Нельзя в этой теме использовать палитру или в ней какой-то свой модуль для этих целей. Раскоментируйте строки и посмотрите как будет работать.
20 Январь 2015, 14:54:59
Ответ #6
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Поэтому и не работает, тема сделана так. Нельзя в этой теме использовать палитру или в ней какой-то свой модуль для этих целей. Раскоментируйте строки и посмотрите как будет работать.
ничего не поменялось, модуля отдельно для этого дела в шаблоне нет
20 Январь 2015, 14:57:44
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Раскоментируйте строки и посмотрите как будет работать.
20 Январь 2015, 15:07:47
Ответ #8
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Раскоментируйте строки и посмотрите как будет работать.
Раскомментировал, ничего не поменялось....
Вот код самой иконки в блоке многоуровневой навигации, где должна показываться палитра, может он поможет:
Там просто нет ссылки на картинку
<input class="color-option on " type="button" name="layered_id_attribute_group_22" data-rel="22_2" id="layered_id_attribute_group_22" style="background: ;" title="палитра1">Самое интересное, когда заходишь в сам товар там все видно..
20 Январь 2015, 15:14:41
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
В шаблоне фильтров нужно добавить фон input при наличии палитры.
/themes/default-bootstrap/modules/blocklayered/blocklayered.tpl
style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};" />
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
20 Январь 2015, 15:52:47
Ответ #10
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В шаблоне фильтров нужно добавить фон input при наличии палитры.
/themes/default-bootstrap/modules/blocklayered/blocklayered.tpl
style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};" />
И еще в том виде в котором оно сейчас, если задаешь палитру и задаешь цвет, оно отбражает в фильтре только цвет.., если цвет не задать, а только палитру, то цвета нет и палитры нет..
В папке к стандартному шаблону в файле blocklayered.tpl
прописана строчка
<input class="color-option {if isset($value.checked) && $value.checked}on{/if} {if !$value.nbr}disable{/if}" type="button" name="layered_{$filter.type_lite}_{$id_value}" rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr}disabled="disabled"{/if} style="background: {if isset($value.color)}{if file_exists($smarty.const._PS_ROOT_DIR_|cat:"/img/co/$id_value.jpg")}url(img/co/{$id_value}.jpg){else}{$value.color}{/if}{else}#CCC{/if};" />Но я так понимаю это нужно делать в шаблоне, который я использую, те в /themes/Alysum_2.0/modules/blocklayered/blocklayered.tplа там файла такого нет.
Я попробовал из /themes/default-bootstrap/modules/blocklayered/blocklayered.tpl  подкинуть его, стало показывать палитру которую я добавил, но фильтр перестал работать... куда копать далее?
21 Январь 2015, 11:16:28
Ответ #11
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Но я так понимаю это нужно делать в шаблоне, который я использую, те в /themes/Alysum_2.0/modules/blocklayered/blocklayered.tplа там файла такого нет.
Вам нужно сделать шаблон для своего шаблона. Стандарный не работает потому что в нем другие классы и ид, а фильтры перегружаюися js функциями.
21 Январь 2015, 15:43:01
Ответ #12
  • Новичок
  • *
  • Сообщений: 29
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно за основу стандартный взять?
21 Январь 2015, 16:34:11
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Можно, только нужно будет js файл из этого модуля проверить, чтобы не было крнфликтов из-за имен классов.