Пн-Пт (с 9:00 до 18:00) Cб-Вс (Выходной)
Услуги IT аутсорсинга для бизнеса. С нами легко работать.
DITIS
Наш телефон
+38 (050) 301-55-66
Наш адрес
г. Сумы, ул.Перекопская, 11
E-mail для вопросов
+38 (050) 301-55-66

Вывод определенного количества атрибутов в категории и модулях Opencart

Начну с того, что в сети очень много решений по выводу атрибутов в категории и по аналогии в модулях.

Как правило общепринято делать так

Шаг первый

В контроллерах: (category.php, compare.php, manufacturer.php,  search.php, special.php)

в массив после

‘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’]),

Шаг второй

В файлах представления (tpl) там где необходимо

<?php if($product[‘attribute_groups’]) { ?>
<?php foreach($product[‘attribute_groups’] as $attribute_group) { ?>
<?php if(!strpos($attribute_group[‘name’], «—»)) {?>
<?php foreach($attribute_group[‘attribute’] as $attribute) { ?>
<b><?php echo $attribute[‘name’]; ?></b> <?php echo $attribute[‘text’]; ?><br>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>

Казалось бы все прекрасно и работоспособно… но когда оказывается что в разных товарах разное количество атрибутов и товары в списке категорий начинают «плясать» , уж не говорю, когда этих самых атрибутов у товара штук 20  )))
И вот начинают сыпаться вопросы: А как вывести определенные атрибуты или атрибуты из определенной группы атрибутов и пр…. и пр….

Естественно, мудрые люди начинают давать советы и инструкции по вытаскиванию групп атрибутов или самих атрибутов по ID (писать их не стану, найти в сети их не сложно).

Сегодня я Вам поведаю dfv как просто и эфективно вывести определенное количество атрибутов (будь их хоть 100 у товара)
Сразу предупреждаю, что никаких сортировок, выборок и прочего, тупо вывод определенного количества атрибутов.

Итак, первый шаг мы делаем аналогично выше написанному

А вот вместо кода во втором шаге — пишем вот такой код с счетчиком

<ul class=»atr»>
<?php if($product[‘attribute_groups’]) { ?>
<?php $i = 0; ?>
<?php foreach($product[‘attribute_groups’] as $attribute_group) { ?>
<?php if(!strpos($attribute_group[‘name’], «—»)) {?>
<?php foreach($attribute_group[‘attribute’] as $attribute) { ?>
<li><span class=»text»><?php echo $attribute[‘name’]; ?></span><span class=»page»><?php echo $attribute[‘text’]; ?></span></li>
<?php $i++;?>
<?php if($i > 3) { ?>
<?php break 2; ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
</ul>

Обращаю внимание на эту строчку кода

 <?php if($i > 3) { ?>

Вот тут как раз мы и задаем сколько мы будем отображать атрибутов… практика показала, что при указании

<?php if($i > 3) { ?>

Выведется 4 строчки атрибутов при

<?php if($i > 2) { ?>

Выведется 3 строчки атрибутов.

Надеюсь, что логика ясна.

Ну а остальное — только ваша фантазия и умелая рука верстальщика, для придания всему этому красивого и гармонирующего с вашим шаблоном сайта вида.