Сегодня столкнулся с вопросом вывода определенных атрибутов в карточке товара. Как вы знаете, OpenCart по умолчанию выводит в цикле все группы и все атрибуты в них.
Нам же нужно было вывести только определенные атрибуты. Так как некоторые использовались только в каталоге для фильтра. В общем то может быть много разных ситуаций зачем это понадобится. Не будем тянуть резину и приступим к действиям. И так, поехали.
1. Открываем файл контролер catalog/controller/product/product.php
Находим:
1 |
$data['products'][] = array( |
После него вставляем:
1 |
'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']), |
Визуально это получится примерно так:
2. Открываем файл контролер catalog/view/theme/ваша_тема/product/product.tpl
Находим (примерно 49-65 строка):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></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> |
И заменяем на:
1 2 3 4 5 6 7 8 |
<?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if(in_array($attribute['attribute_id'], array(12))) { ?> <?php echo $attribute['name']; ?> <?php echo $attribute['text']; ?> <?php }?> <?php }?> <?php }?> |
Где цифра 12 это іd вашего атрибута. Можно выводить с нескольких, просто перечисляйте их через запятую (12,13,14,15).
Что бы узнать іd вашего атрибута, зайдите в админку. Каталог > Атрибуты >Атрибуты , найдите ваш атрибут и нажмите изменить. В конце строки браузера вы увидите цифру (attribute_id=12) . Эта цифра и есть id вашего атрибута.
Сохраняйте файлы, обязательно очистите кеш – Дополнения > Менеджер дополнений > Кнопка обновить.
Готово, вывод определенных атрибутов в карточке товара осуществлен. Лично тестировал на ocStore 2.1.0.1.1.
А для опенкарт 3 не подскажите как реализовать вывод в карточке товара – там php по другому выводит {% %}