Автор Тема: в каком классе накладывается ограничение Показывать недоступные атрибуты товаров  (Прочитано 582 раз)

21 Октябрь 2015, 16:50:32
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В админке -> Настройки -> Товары -> СТРАНИЦА ТОВАРА ->  Показывать недоступные атрибуты товаров
имеем возможность (скрывать/показывать) эти самые атрибуты товаров

Не подскажет в каком классе, контроллере осуществляется данное ограничение.
Необходимо добавить ещё одно.
Заранее спасибо!
21 Октябрь 2015, 17:24:15
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для страницы товара:
- Шаблон product.tpl
- Контроллер ProductController.php
- Класс Product.php
В любом из них можете добавить ограничение.
22 Октябрь 2015, 12:38:50
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для страницы товара:
- Шаблон product.tpl
- Контроллер ProductController.php
- Класс Product.php
В любом из них можете добавить ограничение.

Это всё касается карточки товара.
Что отвечает за каталог товаров?

Предполагаю за это отвечает blocklayered.php

Здесь -> function getProductByFilters
22 Октябрь 2015, 14:33:12
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Когда модуль blocklayered, то он переопределяет шаблон product-list.tpl, добавляя свои фильтры.
22 Октябрь 2015, 17:09:35
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Когда модуль blocklayered, то он переопределяет шаблон product-list.tpl, добавляя свои фильтры.
Всем спасибо
Нашёл в ProductController.php

// wash attributes list (if some attributes are unavailables and if allowed to wash it)
if (!Product::isAvailableWhenOutOfStock($this->product->out_of_stock) && Configuration::get('PS_DISP_UNAVAILABLE_ATTR') == 0)
{
foreach ($groups as &$group)
foreach ($group['attributes_quantity'] as $key => &$quantity)
if ($quantity <= 0)
unset($group['attributes'][$key]);

foreach ($colors as $key => $color)
if ($color['attributes_quantity'] <= 0)
unset($colors[$key]);
}