Автор Тема: Атрибут "цвет" на странице категорий  (Прочитано 3717 раз)

12 Август 2014, 16:43:01
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
в файле /config/defines.inc.php
/* Debug only */
define('_PS_MODE_DEV_', true);
define('_PS_DEBUG_PROFILING_', true
Внизу страницы будут показанны все значения переменных.
Или у каждого товара
{$product|var_dump} 
12 Август 2014, 17:10:05
Ответ #16
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ни с того ни с сего все заработало. Остался последний вопрос, как сделать так чтобы где надо показывалась картинка цвета, а где не надо там просто цвет фона, ну т.е. как в самом товаре происходит.
12 Август 2014, 18:26:52
Ответ #17
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Так-же как в product.tpl 
{if isset($product.colors) && $product.colors}
<ul class="colors">
{foreach from=$product.colors key='id_attribute' item='color'}
    <li><a style="background: {$color.value};" title="{$color.name}" class="color_pick">
                    {if file_exists(_PS_COL_IMG_DIR_|cat:$id_attribute|cat:'.jpg')}
            <img src="_PS_COL_IMG_DIR_{$id_attribute}.jpg" alt="{$id_attribute.name}" width="20" height="20" />
    {/if}
            </a></li>
{/foreach}
</ul>
{/if}
12 Август 2014, 18:53:46
Ответ #18
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
_PS_COL_IMG_DIR_Определять в контроллере нужно. Так работать не будет.
13 Август 2014, 10:29:18
Ответ #19
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Согласен, что-то затупил. В конроллере нужно добавить
$this->context->smarty->assign('col_img_dir', _PS_COL_IMG_DIR_);а в шаблоне поменять
_PS_COL_IMG_DIR_на
$col_img_dir
13 Август 2014, 16:41:20
Ответ #20
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
При попытке внести данный код цвета опять стали множаться, как раньше. И при этом внизу есть такая ошибка
Fatal error: Uncaught exception 'Exception' with message 'Serialization of 'SimpleXMLElement' is not allowed'
in .../tools/profiling/Controller.php:267 Stack trace: #0 .../tools/profiling/Controller.php(267):
serialize(Object(Context)) #1 .../tools/profiling/Controller.php(310): Controller->sizeofvar(Object(Context)) #2
.../tools/profiling/Controller.php(237): Controller->displayDebug() #3 .../classes/Dispatcher.php(349): Controller->run()
#4 .../index.php(28): DispatcherCore->dispatch() #5 {main} thrown in .../tools/profiling/Controller.php on line 267

Что это вообще за ошибка, кто-нибудь знает?
13 Август 2014, 17:45:54
Ответ #21
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Это вообще не относиться к замене шаблона.
При чем тут сериализауия XML?
Вы что-то берете их XML файла?
13 Август 2014, 17:48:38
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
13 Август 2014, 17:49:30
Ответ #23
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это вообще не относиться к замене шаблона.
При чем тут сериализауия XML?
Вы что-то берете их XML файла?
Я понятия не имею, при включении режима отладки на страницах сайта внизу вылезает эта ошибка, вот я и подумал, что это может быть связано с тем, что цвета плодятся.
13 Август 2014, 17:53:39
Ответ #24
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пофиксено в последней версии - Try to fix warning

Теперь вот такая ошибка

[PHP Recoverable error #4096] Object of class Context could not be converted to string (,,,/tools/profiling/Controller.php, line 270)
Но я так понял это все равно не относится к моей проблеме.
13 Август 2014, 18:08:02
Ответ #25
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Похоже что есть другие проблемы с сайтом. Отключать модули нужно и проверять после каждого отключения.
Вернуть стандарные шаблоны и тоже проверить. Так можно будет установить причину.
13 Август 2014, 18:32:14
Ответ #26
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Фишка в том, что когда я первый раз мудрил, то были такие же проблемы, но вдруг почему то все нормально стало отображаться(хотя я точно ничего не делал), но тогда не отображались картинки, а вот теперь опять та же история, но уже с картинками, т.е. сейчас опять должно что то невероятное произойти и все будет работать и с картинками.
13 Август 2014, 18:55:46
Ответ #27
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цвета плодиться перестали, но картинки цветов все равно не показываются, т.е. те цвета которые не просто цвета а добавлялись при помощи картинки тупо не показываются.
Делаю вот так:

1. В /controllers/front/CategoryController.php добавляю код

$this->context->smarty->assign('col_img_dir', _PS_COL_IMG_DIR_);
2. в product-list моего шаблона добавляю этот код

<ul class="colors" style="display: flex; height: 60px;">
        {foreach from=$product.colors key='id_attribute' item='color'}
                <li style="border: none;width: 25px;height: 25px; border-radius: 25px;margin: 0px 7px 0px 0px;"><span style="background: {$color.value};width: 25px;height: 25px;border-radius: 25px;border: 1px solid #9B9696;position: absolute;text-indent: -10000px;" title="{$color.name}" class="color_pick">
{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
            <img src="$col_img_dir{$id_attribute}.jpg" alt="{$id_attribute.name}" width="20" height="20" />
    {/if}
</span></li>
        {/foreach}
        </ul>

В итоге просто цвета отображаются хорошо, а цвета у которых есть картинки - нет. Все ли я делаю правильно? проверьте, пожалуйста.
14 Август 2014, 10:45:52
Ответ #28
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
1. Ошибка в шаблоне
<img src="$col_img_dir{$id_attribute}.jpg" alt="{$id_attribute.name}" width="20" height="20" />нужно вот так
<img src="{$col_img_dir}{$id_attribute}.jpg" alt="{$color.name}" width="20" height="20" />2. Чтобы показывало не только цвета но и палитру (картинки цветов), нужно изменить в классе Product
...
if (Db::getInstance()->numRows())
{
    foreach ($attributesGroups AS $k => $rowcolo)
   {
       // Вот тут
       if (isset($rowcolo['is_color_group']) AND $rowcolo['is_color_group'] )
       {
       ....
14 Август 2014, 15:20:43
Ответ #29
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да!!! Наконец то все заработало)) Всем большое спасибо, очень выручили)