
Начну с того, что в сети очень много решений по выводу атрибутов в категории и по аналогии в модулях.
Как правило общепринято делать так
Шаг первый
В контроллерах: (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 строчки атрибутов.
Надеюсь, что логика ясна.
Ну а остальное — только ваша фантазия и умелая рука верстальщика, для придания всему этому красивого и гармонирующего с вашим шаблоном сайта вида.