Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как добавить вывод от доп.модуля в header?


SoVA23rus

Recommended Posts

Есть доп.модуль newsticker, который выводит новостные строки, сами строки задаются в настройках модуля, а его положение на странице задается, как обычно, в макетах. Если задать его положение в шапке (Верх страницы в настройках макета) в самом верху, то на главной он отображается хорошо - сразу под header-ом во всю его ширину, потому что на главной в левой и правой колонке ничего не выводится.

А вот на страницах каталога и некоторых инфостраницах с выводом чего-либо в левой колонке (например, каталога, фильтра, облака тэгов в левой колонке) получается, что модуль новостей отображается под header-ом, но уже не во всю его ширину, а за минусом ширины левой колонки - только на оставшуюся ширину основной части страницы ("Верха страницы"). Получается некрасиво и вообще фу такое.

Делаю вывод, что для использования всей ширины страницы (чтобы модуль не выравнивался только по "средней" части за минусом боковых колонок), нужно вывод этого модуля перенести из основной части страницы непосредственно в header. А вот тут уже возникают сложности, т.к. я не шибко программист (немного html, чуть-чуть VBA, когда-то малость JS и даже слегонца 1С - а вот php вообще ни разу, только методом научного тыка и пристального взгляда).

Сперва, по пути наименьшего сопротивления, добавил вывод из шаблона newsticker.tpl в header.tpl, но понял, что в контроллере header.php должен быть код из newsticker.php, чтобы в этот вывод что-то подавалось, а иначе просто имеем пустоту :) Полез в соответствующие контроллеры, и тут прям вообще облом, т.к. в header код начинается с 

class ControllerCommonHeader extends Controller {
    public function index() {

А в newsticker.php уже есть параметр $setting

class ControllerExtensionModulenewsticker extends Controller {
    public function index($setting) {
        static $module = 0;
        $this->load->language('extension/module/newsticker');
        $this->load->model('design/newsticker');
        $this->load->model('tool/image');

        $this->document->addStyle('catalog/view/javascript/jquery/owl-carousel/owl.carousel.css');
        $this->document->addStyle('catalog/view/theme/default/stylesheet/newsticker.css');
        $this->document->addScript('catalog/view/javascript/newsticker.js');

        $data['newstickers'] = array();

        $data['color'] =$setting['color'];
        $data['limitedtime'] =$setting['limitedtime'];
        $results = $this->model_design_newsticker->getnewsticker($setting['newsticker_id']);
        $data['limited_time_offer']=$this->language->get('limited_time_offer');
        foreach ($results as $result) {
                $data['newstickers'][] = array(
                    'message' => $result['message'],
                    'name'  => $result['name']
                );
        }

        $data['module'] = $module++;

        return $this->load->view('extension/module/newsticker', $data);
    }
}

И просто так, "в лоб", функцию index из newsticker в header не скопируешь.

Опытные товарищи, подскажите, плз, возможно ли решить эту проблему как-то "малой кровью", не прибегая к сколько-нибудь серьезному изучению php? Покурить форумы и маны в умеренных количествах я, в принципе, готов - если в этом есть практический смысл для решения именно этой задачи здесь и сейчас, а не ради общего самообразования и повышения скилла :) 

Может, там, на самом деле, копеечный вопрос и кому-то не в лом ткнуть меня носом в решение - что именно и как нужно подправить - буду премного благодарен :)

Если нужны скрины с сайта - могу приложить в комментах. Сайт www.fisher-day23.ru

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.