Атрибуты в списке товаров

Тема в разделе "Модули и дополнения", создана пользователем glinda, 17 авг 2021.

  1. glinda

    glinda Новичок

    Сообщения:
    12
    Симпатии:
    1
    День добрый.
    На Opencart 3 планируется в зависимости от тех или иных атрибутов вывод разных иконок в списке товаров. Застрял на этапе передачи значений (вывод) атрибутов в списке товаров.
    Делаю это так: 1. В контроллере добавляю в
    $data['products'][] = array( строку 'attribute_groups' => $this->model_catalog_product->getProductAttributes($product_info['product_id']),
    Далее в catalog/view пытаюсь вывести значения $attribute['name'], но значения не передаются .
    Не подскажите в какую сторону копать?
     
  2. fanatic

    fanatic Продвинутый пользователь

    Сообщения:
    1.415
    Симпатии:
    239
    это вы получаете массив всех атрибутов товара
    PHP:
    $product_attribute_group_data[] = array(
                    
    'attribute_group_id' => $product_attribute_group['attribute_group_id'],
                    
    'name' => $product_attribute_group['name'],
                    
    'attribute' => $product_attribute_data
                
    );
     
  3. fanatic

    fanatic Продвинутый пользователь

    Сообщения:
    1.415
    Симпатии:
    239
    в сторону перебора массива $product['attribute_groups']
    или в контроллере формируйте как вам нужно
     
  4. glinda

    glinda Новичок

    Сообщения:
    12
    Симпатии:
    1
    В опенкарт 3 используется шаблонизатор twig, не подскажите как можно вывести массив? использую конструкцию {{ product.attribute_groups }} - не выводит ничего. Если использую в контроллере
    'attribute_groups' => $this->model_catalog_product->getProductAttributes($product_info['product_id']),
    в $data['products'][], то
    {{ product.attribute_groups }} - выводит массив (название Array), по {{ product.attribute_groups,1 }} - ничего не выводит.
     
  5. glinda

    glinda Новичок

    Сообщения:
    12
    Симпатии:
    1
    нашёл в инете решение
    <table class="table table-bordered">
    {% for attribute_group in attribute_groups %}
    <thead>
    <tr>
    <td colspan="2"><strong>{{ attribute_group.name }}</strong></td>
    </tr>
    </thead>
    <tbody>
    {% for attribute in attribute_group.attribute %}
    <tr>
    <td>{{ attribute.name }}</td>
    <td>{{ attribute.text }}</td>
    </tr>
    {% endfor %}
    </tbody>
    {% endfor %}
    </table>
    Но выводиться "Array"
     
  6. glinda

    glinda Новичок

    Сообщения:
    12
    Симпатии:
    1
    Разобрался. Надо
    {% if (product['attribute_groups']) %}, я использовал attribute_groups