Цвет границы изображения продукта зависит от категории продукта


У меня есть сайт, где каждое изображение продукта имеет сплошную границу размером 1 пиксель. Цвет границы в настоящее время черный. Однако я хотел бы, чтобы цвет границы определялся категорией; например, все товары с родительской категорией "синий" должны иметь синюю границу, а все товары с родительской категорией "красный" должны иметь красную границу и так далее.

Достижимо ли это в Magento? Я знаю, что тегу тела страницы дана уникальная ссылка на CSS, но я хотите, чтобы цвет границы изображения продукта определялся категорией верхнего уровня, а не дочерним элементом этой категории.

Любые идеи приветствуются!

Author: YorkieMagento, 2015-11-04

3 answers

Даже если у вас есть 100 подкатегорий в определенной категории, вы можете сразу применить определенный цвет границы к родительской категории. Допустим, у вас есть категория с более чем 100 подкатегориями. Magento добавит css-класс .categorypath-living-subcategoryname в каждую подкатегорию. Таким образом, каждое имя подкатегории добавляется в класс .categorypath. В этом случае вы можете использовать подстановочный знак CSS для выбора первой части объединенного класса CSS. Пример можно найти здесь: Использование CSS подстановочный знак

 1
Author: Badger, 2017-05-23 12:37:14

Если вы хотите разместить страницу со списком, вы просто проверяете имя класса тега тела, оно автоматически создает имя класса на основе категории

<body class=" catalog-category-view categorypath-living-html category-living">

Здесь категория-жизнь - это название категории, поэтому напишите css

.catalog-category-view .category-living .category-products ul li img{border-color:green;}
.catalog-category-view.category-living-home .category-products ul li img{border-color:yellow;}

Если это отдельная страница

catalog-product-view .category-living-home .product-img-box .product-image{border-color:yellow;}

catalog-product-view .category-living .product-img-box .product-image{border-color:green;}

Или поделитесь ссылкой на свой веб-сайт.

 0
Author: Magento 2, 2015-11-04 20:19:55

Самый простой способ добавить эту функциональность - создать небольшой модуль с наблюдателем. Я бы заметил что-то, связанное с категорией (возможно, catalog_controller_category_init_after).

Попросите наблюдателя определить, является ли страница страницей подкатегории, затем, используя приведенный ниже код, добавьте класс родительской категории.

if ($root = $this->getLayout()->getBlock('root')) {
    $root->addBodyClass('whatever');
}
 0
Author: TJ Gamble at Jamersan, 2015-11-05 02:05:33