Pascha Опубликовано 13 апреля, 2022 Поделиться Опубликовано 13 апреля, 2022 Начну с того, что в сети очень много решений по выводу атрибутов в категории и по аналогии в модулях. Как правило общепринято делать так Шаг первый В контроллерах : (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 строчки атрибутов. Надеюсь, что логика ясна . Ну а остальное - только ваша фантазия и умелая рука верстальщика, для придания всему этому красивого и гармонирующего с вашим шаблоном сайта вида. 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.