Атрибуты товара на странице категории 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

Звездные войны в CSS

YML импорт экспорт Яндекс Маркет для OpenCart 2

Оформление карт Google под себя

Эффект пульсирующей иконки для сайта на CSS3

СЕО для начинающих, основы для чайников

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