Opencart 2.x - Вывести Атрибуты Товара В Категории

Тема в разделе "Шаблоны, дизайн и оформление магазина", создана пользователем admin, 28 янв 2017.

  1. TopicStarter Overlay
    Offline

    admin Команда форума Администратор

    Сообщения:
    2.327
    Симпатии:
    77.158
    Репутация:
    170
    OpenCart - движок, использующий модель MVC, а значит, что в любом месте любой функционал работать не будет. Для этого он должен быть описан в контроллере и только после этого может быть выведен в шаблон. Поэтому, если вам требуется вывести свойства (атрибуты) товара на странице категории, то просто скопировав код из шаблона товара, это сделать не получится. А давайте разберемся, как же сделать это: как вывести атрибуты товара в категории OpenCart. Хочу заметить, что я делаю все модификации на движке ocStore 2.1.0.2.

    Первое что мы сделаем - поправим контроллер. Идем по пути ftp /catalog/controller/product/category.php и в районе 227 строки после:
    Код:
    '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/default/template/product/category.tpl и в нужном месте вставляем код:
    Код:
    <?php if($product['attribute_groups']) { ?>
    <table>
        <?php foreach($product['attribute_groups'] as $attribute_group) { ?>
        <thead>
            <tr>
                <td colspan="2"><?php echo $attribute_group['name']; ?></td>
            </tr>
        </thead>
        <tbody>
            <?php foreach($attribute_group['attribute'] as $attribute) { ?>
            <tr>
                <td><?php echo $attribute['name']; ?></td>
                <td><?php echo $attribute['text']; ?></td>
            </tr>
            <?php } ?>
        </tbody>
        <?php } ?>
    </table>
    <?php } ?>
    Вот и все. Теперь свойства товара (атрибуты) будут выводиться на странице категории.
     
    Kostroma-Andrey нравится это.
  2. Offline

    Kostroma-Andrey Пользователь

    Сообщения:
    191
    Симпатии:
    71
    Репутация:
    1
    Спасибо за инструкцию
     
    admin нравится это.
  3. Offline

    opencart-help Пользователь

    Сообщения:
    18
    Симпатии:
    7
    Репутация:
    0
    А вот такой вопрос как скрыть ненужные атрибуты? В категории