Атрибуты товара на странице категории Opencart


Атрибуты товара на странице категории Opencart

Столкнулся с задачей вывести атрибуты товара в списке товаров на странице производителя, решение простое.Блоги и форумы — избранное, Данный «хак» можно использовать и в отношении категории, никакой разницы.

Атрибуты товара на странице категории Opencart

Находим /catalog/controller/product/manufacturer.php ,  после 229-ой строки(Opencart 1.5.6.4):

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',

Вставляем

'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),

Дальше находим  /catalog/view/theme/default/template/product/manufacturer_info.tpl и в нужном месте вставляем, например вместо описания или делаем свой шаблон:

<divclass="description"><?php if($product['attribute_groups']){?><table><?php foreach($product['attribute_groups']as $attribute_group){?><thead><!—названия групп—><tr><tdcolspan="2"><?php echo $attribute_group['name'];?></td></tr></thead><!—-><tbody><?php foreach($attribute_group['attribute']as $attribute){?><tr><td><?php echo $attribute['name'];?></td><td><?php echo $attribute['text'];?></td></tr><?php }?></tbody><?php }?></table><?php }?></div>

Если же надо вывести конкретный атрибут то можно извратиться и вывести атрибут по ID, для этого есть два способа — первый это скрыть ненужные атрибуты и второй способ позволяет нам вывести только нужные нам атрибуты. Смотрим ниже.

Это первый способ, в нижеприведенном коде мы выводим только те атрибуты которые не перечислены, в коде же перечисляем только атрибуты которые хотим скрыть:

<?php if($attribute['attribute_id']<> Тут id атрибута который прячем {?>

<?php }?>

Или второй способ, выводим только нужные нам атрибуты, смотрим ниже:

<?php if(in_array($attribute['attribute_id'], array(1,2,3,5,6,7))){?>

На живом примере вывод конкретных атрибутов по ID выглядит так:

<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
<?php foreach($attribute_group['attribute'] as $attribute) { ?>
<?php if(in_array($attribute['attribute_id'], array(15,17))){?>
<tr>
<td><?php echo $attribute['name']; ?></td>
<td><?php echo $attribute['text']; ?></td>
</tr>
<?php } ?>
<?php } ?>
<?php } ?>

Как узнать ID атрибута в опенкарте? Легко и просто, в админке заходим по адресу Каталог/атрибуты, находим нужный атрибут, нажимаем «Изменить», в ссылке смотрим attribute_id=NNNNN, этот самый NNNNN и есть наш ID атрибута.
Каталог сайтов
Разработка сайтов
Удачи в понимании написанного! =)

Previous 25 новых тем для OpenCart (июль-август 2014)
Next ДИАГОНАЛЬНОЕ МЕНЮ НА CSS

Suggested Posts

SLIDE OUT SIDEBAR МЕНЮ

Модуль авторизации через социальные сети

Оптимизация кода сайта для начинающих

Подборка шаблонов Opencert за Октябрь

35 популярных брендов и сайтов которые используют WordPress

50 бесплатных ресурсов для дизайнера