Source Code for Me (s-c.me)

Allows you to paste souce code to blogs! Adapted for Twitter! Here is Search Form in case you missed your code.
Tags: Php,$informations,$this,$result,$information,$modules,$module, Created At: 10/24/2016 8:23:04 PMViews:

HTML view:
Copy Source | Copy HTML
Понадобилось в магазине на 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

Based on Manoli.Net's CodeFormatter. Made by Topbot (c) 2008-2017