Создание интернет-магазинов
на Opencart

Модули, шаблоны и дополнения сделанные нами

Opencart — изменение места вывода модуля

Понадобилось в магазине на opencart перенести вывод модуля Информация (information) из левой колонки в шапку. Из левой колонки он выводился путем перебора массива $informations и выводом его элементов, но из header.tpl этот массив недоступен. Решается проблема доработкой контроллера common/header.php, просто копируем туда нужные нам данные: 



$this->language->load('module/information');

$this->data['informations'] = array();

foreach ($this->model_catalog_information->getInformations() as $result) {

    $this->data['informations'][] = array(

        'title' => $result['title'],

        'href'  => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=information/information&information_id=' . $result['information_id'])

    );

}


Теперь в нужном нам месте header.tpl делаем перебор массива $informations и получаем данные забитые из админки: 


<?php foreach ($informations as $information) { ?>

<a href="<?php echo str_replace('&', '&', $information['href']); ?>"><?php echo $information['title']; ?></a>

<?php } ?>


Ну а чтобы не дублировать информацию еще и в левой колонке, нужно проигнорировать ее в column_left.tpl (или column_right.tpl в зависимости от того где она у вас выводится): 


<?php foreach ($modules as $module) {

    if($module['code']!="information")

    echo ${$module['code']};

  } ?>


Отключать модуль information нельзя, т.к. тогда будут недоступны функции выборки информации (getInformations) которые вызываем в контроллере header.php 


Источник: http://php.ua/blog/