Перейти к содержанию
View in the app

A better way to browse. Learn more.

Русскоязычное сообщество Opencart

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

В связи с блокировкой банка QIWI оплата через сайт не возможна.
Для оплаты и получения дополнений просьба писать в личные сообщения 
Admin*у
или в Телеграмм https://t.me/pascha_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 строчки атрибутов. 

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

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

Последние посетители 0

  • Ни одного зарегистрированного пользователя не просматривает данную страницу

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.