Вывод атрибутов в категории и модулях

Тема в разделе "Общие вопросы", создана пользователем Slait, 28 сен 2015.

  1. Slait

    Slait Эксперт

    Сообщения:
    503
    Симпатии:
    451
    Подскажите как вывести атрибуты в категории и модулях.

    Т.е. вместо описания.
    Для одного проекта понадобилось.

    2015-09-28 10-38-34 Скриншот экрана.png
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.062
    Симпатии:
    853
    как то так

    PHP:
          $attribute_groupss $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);
           
    $attribute_groupp = array();
           foreach (
    $attribute_groupss as $attribute_groupp) {
             
    $attribute_grouppp[] = $attribute_groupp['attribute'];
           }
           
    $data['attr'] = $attribute_grouppp;
    а дальше в шаблоне перебираем массив. Ну или по задаче готовим его в контроллере.
     
    RoS, Slait и solunski.d нравится это.
  3. Slait

    Slait Эксперт

    Сообщения:
    503
    Симпатии:
    451
    Большое спасибо за предложенное решение, я решил по другому.

    Для категорий, поиска, акций

    В контроллерах
    catalog\controller\product\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']),
    В шаблонах
    catalog\view\theme\Ваша тема\template\product\category.tpl
    + compare.tpl
    + manufacturer_list.tpl
    + search.tpl
    + special.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 } ?>


    P.S. Для модулей

    Все аналогично выше описанному, только для получения данных нужно подключить
    Код:
    $this->load->model('catalog/product');
    В итоге получаем вывод атрибутов
    2015-09-28 13-39-29 Скриншот экрана.png
     
    Awakum, adamenko, Ravilr и 2 другим нравится это.