Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Вывод определенных атрибутов


Recommended Posts

Здравствуйте!

Делаю магазин на Opencart (ocstore сб.), столкнулся с проблемой вывода элементов на странице товара.

 

Нужно вывести определенные атрибуты в колонке с информацией, с разметкой проблем не возникнет, а вот с самим выводом уже проблемы. Поискав по форуму наткнулся на чем-то похожую тему: https://opencartforum.com/topic/10643-вывод-атрибутов-вместо-описания-в-категориях/ , но проблема в том, что там задача состояла в вывода атрибутов вместо описания, а мне нужно выводить определенную группу атрибутов в определенном месте, то есть к примеру:

 

Мне нужно вывести группу атрибутов под названием: "Тип кожи" и соответственно заполненные значения.

Вопрос: "Как мне вывести именно эту группу атрибутов?".

 

Прикрепляю скрин для более подробного рассмотрения моего вопроса/

 

Спасибо заранее

 

 

post-681765-0-87503800-1396824160_thumb.jpg

Надіслати
Поділитися на інших сайтах


У вас что,в товаре  несколько различных групп атрибутов,что нужно вывести только какой то определённый?

Надіслати
Поділитися на інших сайтах

У вас что,в товаре  несколько различных групп атрибутов,что нужно вывести только какой то определённый?

Выходит что так, но нужно не 1, а 3, там на скрине их 3, просто "обрысовал" только 1

 

Запутался сам, в общем результате нужно вывести эти 3 группы (что на скрине), желательно вывод группы атрибутов по имени или id

Надіслати
Поділитися на інших сайтах



 $this->data['products'][] = array(
....
'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
...
  <table class="attribute">
      <?php foreach ($attribute_groups as $attribute_group) { ?>
   
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
                  
<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
   

как я понимаю 1 "кусок" кода нужно где-то в контроллере вставить, а второй в шаблоне?

Можете уточнить пожалуйста

Надіслати
Поділитися на інших сайтах


В карточке товара данный кусок уже как в контроллере так и в шаблоне есть.Здесь немного иначе нужно.Например вывести по ID атрибута.

Надіслати
Поділитися на інших сайтах

В карточке товара данный кусок уже как в контроллере так и в шаблоне есть.Здесь немного иначе нужно.Например вывести по ID атрибута.

Можете уточнить, или расписать подробно что да как? Думаю людям понадобится, да и тема актуальна.

Я только начинаю изучение MVC так что не силен еще)

Надіслати
Поділитися на інших сайтах


Создаём  Группу Атрибутов  и прикрепляем к ней Атрибут ( например Атрибут new-Группа атрибутов  new) 

 

добавляем в шаблон в нужное место 

 

   <!-- =====================Атрибуты NEW==================== -->


         
<?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php if ($attribute_group['name'] == 'new') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
   <!-- =====================Атрибут NEW конец==================== -->
Надіслати
Поділитися на інших сайтах

 

Создаём  Группу Атрибутов  и прикрепляем к ней Атрибут ( например Атрибут new-Группа атрибутов  new) 

 

добавляем в шаблон в нужное место 

 

   <!-- =====================Атрибуты NEW==================== -->


         
<?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php if ($attribute_group['name'] == 'new') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
   <!-- =====================Атрибут NEW конец==================== -->

 

Спасибо, сейчас протестирую

Надіслати
Поділитися на інших сайтах


 

Создаём  Группу Атрибутов  и прикрепляем к ней Атрибут ( например Атрибут new-Группа атрибутов  new) 

 

добавляем в шаблон в нужное место 

 

   <!-- =====================Атрибуты NEW==================== -->


         
<?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php if ($attribute_group['name'] == 'new') { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
          <?php echo html_entity_decode($attribute['text']); ?><br />
        <?php } ?>
      <?php } ?>
    <?php } ?>
  <?php } ?>
   <!-- =====================Атрибут NEW конец==================== -->

 

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

Спасибо большое!

Надіслати
Поділитися на інших сайтах


  • 1 year later...

 $this->data['products'][] = array(
....
'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
...
  <table class="attribute">
      <?php foreach ($attribute_groups as $attribute_group) { ?>
   
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
                  
<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
   

А как вывести в разных столбцах разные определенные атрибуты... 

Надіслати
Поділитися на інших сайтах


  • 2 years later...
В 07.04.2014 в 05:53, Pascha сказал:

<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

Таким условием у меня выводятся все атрибуты, кроме указанных в массиве. Версия 1.5.6.4

Надіслати
Поділитися на інших сайтах

  • 6 months later...
В 16.01.2018 в 00:24, Pascha сказал:

смотрим сюда
 


!in

восклицательный знак считайте как исключение, отсутствие его - разрешение

<?php if(in_array($attribute['attribute_id'], array(52))) { ?>

 

Может я что не так делаю, но у меня проблема с выводом атрибутов. Надо было вывести 2 атрибута.

пишу так:

<?php if(in_array($attribute['attribute_id'], array(52,16))) { ?>

Выводится все равно только один 52, 16 прям ни в какую не хочет выводится. При этом я даже ставил 16,52, все равно выводится только 52. 16 в атрибутах есть, нужный мне артибут, но прям никак не хочет он появляться. При этом если !in указать, то выводятся все атрибуты, включая и 16ый, но если убрать !, то вновь выводится только 52...

 

Почему так может быть!?) Не подскажите!?)

Надіслати
Поділитися на інших сайтах


  • 9 months later...
  • 3 weeks later...
В 07.04.2014 в 06:53, Pascha сказал:

<table class="attribute">

      <?php foreach ($attribute_groups as $attribute_group) { ?>

   

        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>

                 

<?php if(!in_array($attribute['attribute_id'], array(19, 20, 21, 22))) { ?>

        <tr>

          <td><?php echo $attribute['name']; ?></td>

          <td><?php echo $attribute['text']; ?></td>

        </tr>

 

Спасибо, работает!

Змінено користувачем Iskander16
Надіслати
Поділитися на інших сайтах


  • 1 year later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.