[Помогите] Вывод производителей в header.tpl

Тема в разделе "OpenCart", создана пользователем 130983, 20 дек 2016.

  1. 130983

    130983

    Регистрация:
    10 дек 2012
    Сообщения:
    172
    Симпатии:
    146
    Всем привет! Хочу вывести по id определенных производителей в шапку сайта (Ocstore 2.3.0.2) Вставил вот такой код в header.php
    Код:
            $data['brands'] = $this->config->get('brands');
            
            $this->load->model('catalog/manufacturer');
    
            $data['manufacturers'] = array();
    
            foreach ($this->model_catalog_manufacturer->getManufacturers() as $result) {
                $data['manufacturers'][] = array(
                    'name' => $result['name'],
                    'id' => $result['manufacturer_id'],
                    'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id'])
                );
            }
    где brands это поле, которое я заполняю из админки (допустим 3,4,5)
    а это в header.tpl

    Код:
                       <?php $array = array($brands); ?>
                       <?php foreach ($manufacturers as $manufacturer) { ?>
                       <?php if (in_array($manufacturer['id'], $array)) { ?>
                       <div class="col-sm-2"><a href="<?php echo $manufacturer['href']; ?>"><?php echo $manufacturer['name']; ?></a></div>
                       <?php } ?>
                       <?php } ?>
    в результате ничего не отображается, причем если в шаблоне id прописать в ручную, то все выводится как надо
    Код:
                       <?php $array = array(3,4,5); ?>
                       <?php foreach ($manufacturers as $manufacturer) { ?>
                       <?php if (in_array($manufacturer['id'], $array)) { ?>
                       <div class="col-sm-2"><a href="<?php echo $manufacturer['href']; ?>"><?php echo $manufacturer['name']; ?></a></div>
                       <?php } ?>
                       <?php } ?>
    подскажите как можно решить проблему, возможно ли вообще эту выборку проводить не в шаблоне, а прямо в самом контроллере? Спасибо.
     
  2. settr

    settr

    Регистрация:
    12 окт 2016
    Сообщения:
    67
    Симпатии:
    54
    Если в конфиг вы заносите строкой, то при
    $array = array($brands);
    вы получите например
    Array ( [0] => 3,4,5 )
    а нужно же
    Array ( [0] => 3 [1] => 4 [2] => 5 )
    Для этого нужно
    $array = explode(',',$brands);
    Или в конфиг заносить применив serialize($input_data), а при получении из конфига - unserialize()
    $input_data
    должен быть массивом
     
    Последнее редактирование: 21 дек 2016
    dofus и 130983 нравится это.