Вывести атрибуты товара в категории — OpenCart
OpenCart - движок, использующий модель MVC, а значит, что в любом месте любой функционал работать не будет. Для этого он должен быть описан в контроллере и только после этого может быть выведен в шаблон. Поэтому, если вам требуется вывести свойства (атрибуты) товара на странице категории, то просто скопировав код из шаблона товара, это сделать не получится. А давайте разберемся, как же сделать это: как вывести атрибуты товара в категории OpenCart. Хочу заметить, что я делаю все модификации на движке ocStore 2.1.0.2.
Первое что мы сделаем - поправим контроллер. Идем по пути ftp /catalog/controller/product/category.php и в районе 227 строки после:
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
Дописываем:
'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
Теперь можем заняться выводом. Открываем шаблон /catalog/view/theme/default/template/product/category.tpl и в нужном месте вставляем код:
<?php if($product['attribute_groups']) { ?> <table> <?php foreach($product['attribute_groups'] as $attribute_group) { ?> <thead> <tr> <td colspan="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 } ?>
Вот и все. Теперь свойства товара (атрибуты) будут выводиться на странице категории.