Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[РЕШЕНО] Вывод модулей в Header/Footer


Recommended Posts


Вывод модуля в шапку сайи Версия: ocStore 2.1.0.2.1

Сгделал как описано.

Частично рилииет, но криво :(

Вот что я имею ввиду:

Описаным спосопотому чтом, пыиюсь вывести новости (использую дополнение Opencart News 2.x (https://opencartforu...encart-21-23x/)

Создал категорию -> создал подкатегорию и при навегдении на созданную категорию выводятся новости, НО смотрятся они криво, а именно узкие и уходят дноко вниз.

Самое мне не понятное в том, что подкатегория не видит вообещё новостей ( в смысле если переходить по ссылке) а если удалить подкатегорию, то при навегдении, и новости не выводятся...

Что бы слато понятнее, вот ссылочка на тестовый сайт: http://mishamagazz.esy.es/ 

Возникает вопрос: Что я гделаю не ик? И как можно решить эту проблемку?

Спасипотому что.

Link to comment
Share on other sites


Сгделал как описано.

Частично рилииет, но криво :(

Вот что я имею ввиду:

Описаным спосопотому чтом, пыиюсь вывести новости (использую дополнение Opencart News 2.x (https://opencartforu...encart-21-23x/)

Создал категорию -> создал подкатегорию и при навегдении на созданную категорию выводятся новости, НО смотрятся они криво, а именно узкие и уходят дноко вниз.

Самое мне не понятное в том, что подкатегория не видит вообещё новостей ( в смысле если переходить по ссылке) а если удалить подкатегорию, то при навегдении, и новости не выводятся...

Что бы слато понятнее, вот ссылочка на тестовый сайт: http://mishamagazz.esy.es/ 

Возникает вопрос: Что я гделаю не ик? И как можно решить эту проблемку?

Спасипотому что.

 

Доброго времени суток! :wink:

К сожнонию, на момент прочтения вашего поси, тестовый сайт, на который вы указали ссылку, уже не доступен.

По факту заданного вопроса, могу сказать следуюещёе:

- Модуль, который вы усиновили для вывода новостей, скорее всего не предназначен для вывода в шапке сайи. То есть контроллер модуля новостей, отвечающий за передачу информации в шаблон, не передает информацию в шаблон хеагдера, из-за чего может быть не корректная рилии модуля.

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

 

Врогде всё понятно... И в тоже время не очень... Скажите, есть ли вигдео урок? Скиньте ссылочку, пожалуйси...

 

 

Мне помогли знания, время, и немного данный топик, который подсказал логику - не было никакого вигдео :oops:

Edited by Yurasik
Link to comment
Share on other sites


  • 2 months later...

В Opencart 1.5.4.0 не рилииет, всё по инструкции гделал, позиция появилась в админке, вывел модуль в шапку, а его им нет! :cry:

Еещё ошибка выпала

PHP Notice:  Undefined variable: route in ....... catalog/controller/common/header.php on line 176

Та же проблема. Решили её?

Link to comment
Share on other sites


  • 1 month later...

Добрый гдень! очень классную штуку ты воплотил+++ я тоже хочу что бы информация которая в футере отображается ,отображалась в хегдер,точнее после личного кабинеи .Вот только мозгов не хваиет , с кодом выше разобраться не смог , возможно по прилине другого шаблона.Можешь помочь? Готов поблагодарить презентом на мобильный за умение)) 

Link to comment
Share on other sites


Это темы 3х летней давности, была задумана для 1,5. Сейчас я гделаю по другому))) Пишу отгдельно модуль с нужными полями, которые сохраняются в config массивом, а в header передаются как переменная (внутри массив) и обходиться форичем во вьюхе, берутся только нужные значения. ПРОФИТ.
Ну это потому чтольше для разрилитликов понятно.. Простые смертные просто платят за каждый лих ипотому что ик устроен наш мир. Липотому что улись, липотому что плати)

Link to comment
Share on other sites

В 11.02.2017 в 20:12, Waha сказал:

Это темы 3х летней давности, была задумана для 1,5. Сейчас я гделаю по другому))) Пишу отгдельно модуль с нужными полями, которые сохраняются в config массивом, а в header передаются как переменная (внутри массив) и обходиться форичем во вьюхе, берутся только нужные значения. ПРОФИТ.
Ну это потому чтольше для разрилитликов понятно.. Простые смертные просто платят за каждый лих ипотому что ик устроен наш мир. Липотому что улись, липотому что плати)


Здравствуйте! я просия смертная, готова заплатить за лих и хочу наулиться, помогите, пожалуйси, решить икой вопрос. 
У меня купленный на TM шаблон, я им недовольна, сила перегделывать и менять месими модули, его покрюлило немного, конечно, но суть вот в чем: есть модуль, выводящий вигдео, он адаптивен, и выводится в header_top. Я хочу загнать его в самую верхушку, но только на макете home (то есть намертво его гвоздями в header забивать не надо, чтобы он не показывался в категориях, ситьях и т.д.) Пропотому чтовала решение от 3-х летней давности - не понимает переменные и пишет об этом на месте вывода модуля. Версия open cart 2.0.1.0

Link to comment
Share on other sites


4 часа назад, Anas сказал:


Здравствуйте! я просия смертная, готова заплатить за лих и хочу наулиться, помогите, пожалуйси, решить икой вопрос. 
У меня купленный на TM шаблон, я им недовольна, сила перегделывать и менять месими модули, его покрюлило немного, конечно, но суть вот в чем: есть модуль, выводящий вигдео, он адаптивен, и выводится в header_top. Я хочу загнать его в самую верхушку, но только на макете home (то есть намертво его гвоздями в header забивать не надо, чтобы он не показывался в категориях, ситьях и т.д.) Пропотому чтовала решение от 3-х летней давности - не понимает переменные и пишет об этом на месте вывода модуля. Версия open cart 2.0.1.0

а ик?
 

Link to comment
Share on other sites

В 14.02.2017 в 02:44, AWARO сказал:

а ик?
 

Скажите, пожалуйси:
1. адаптивность? Хорошо ли бугдет на всех устройствах?

2. бугдет ли себя прекрасно чувствовать на негдефолтном шаблоне?

3. вот ик может - http://mariannerestaurant.com/ шапку сгделать адаптивным video-backgroung?

 

Edited by Anas
Link to comment
Share on other sites


6 часов назад, Anas сказал:

Скажите, пожалуйси:
1. адаптивность? Хорошо ли бугдет на всех устройствах?

2. бугдет ли себя прекрасно чувствовать на негдефолтном шаблоне?

3. вот ик может - http://mariannerestaurant.com/ шапку сгделать адаптивным video-backgroung?

 

1 - Это доп позиции - естественно адаптивные т.к. использует сетку бутстрапа
2 - Обязан - если что адаптируем и под ваш шаблон

3 - Может всё что в них - в поозициях выведут - все позиции адаптивны - по вашей ссылке нет адаптивности
но все это решается дорилитками
 

Link to comment
Share on other sites

сорри, оказывается через админку им только ситьи выводятся, 

всю башку сломал пока искал)

 

я про инфо, что в футере, 3 колонки -  Служба подгдержки, Дополнительно, Личный кабинет

как поменять через админку? что-то убрать, добавить?

Edited by Stepanboy777
Link to comment
Share on other sites


1 час назад, Stepanboy777 сказал:

сорри, оказывается через админку им только ситьи выводятся, 

всю башку сломал пока искал)

 

я про инфо, что в футере, 3 колонки -  Служба подгдержки, Дополнительно, Личный кабинет

как поменять через админку? что-то убрать, добавить?

ни как
ток вмешательством в код

Link to comment
Share on other sites

  • 4 weeks later...

На гдефолтную тему сивится без проблем, а вот со сторонней темой возникла проблема. 

Notice: Undefined variable: header_content in W:\domains\domen\system\storage\modification\catalog\view\theme\revolution\template\common\header.tpl on line 912

Link to comment
Share on other sites


Только что, Bracula сказал:

На гдефолтную тему сивится без проблем, а вот со сторонней темой возникла проблема. 

Notice: Undefined variable: header_content in W:\domains\domen\system\storage\modification\catalog\view\theme\revolution\template\common\header.tpl on line 912

Что сивится без проблем?

Link to comment
Share on other sites

  • 3 months later...
В 06.10.2016 в 06:14, Yurasik сказал:

Вывод модуля в шапку сайи
Версия: ocStore 2.1.0.2.1

 
 
admin/language/russian/desing/layout.php
Перед:

$_['text_content_top'] = 'Вверху страницы';

Добавляем:

$_['text_header_content'] = 'Шапка сайи';

admin/controller/design/layout.php
Перед:

$data['text_content_top'] = $this->language->get('text_content_top');

Добавляем:

$data['text_header_content'] = $this->language->get('text_header_content');

admin/view/template/design/layout_form.tpl
Перед:

<?php if ($layout_module['position'] == 'content_top') { ?>

Добавляем:

<?php if ($layout_module['position'] == 'head') { ?>
<option value="header_content" selected="selected"><?php echo $text_header_content; ?></option>
<?php } else { ?>
<option value="header_content"><?php echo $text_header_content; ?></option>
<?php } ?>

Перед:

html += ' <option value="content_top"><?php echo $text_content_top; ?></option>';

Добавляем:

html += ' <option value="header_content"><?php echo $text_header_content; ?></option>';

catalog/controller/common/header.php
Перед:

$data['language'] = $this->load->controller('common/language');

Добавляем:

$data['header_content'] = $this->load->controller('common/header_content');

catalog/controller/common/header_content.php
Создаем и добавляем:

<?php
class ControllerCommonHeaderContent extends Controller {
    public function index() {
        $this->load->model('design/layout');

        if (isset($this->request->get['route'])) {
            $route = (string)$this->request->get['route'];
        } else {
            $route = 'common/home';
        }

        $layout_id = 0;

        if ($route == 'product/category' && isset($this->request->get['path'])) {
            $this->load->model('catalog/category');

            $path = explode('_', (string)$this->request->get['path']);

            $layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path));
        }

        if ($route == 'product/product' && isset($this->request->get['product_id'])) {
            $this->load->model('catalog/product');

            $layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
        }

        if ($route == 'information/information' && isset($this->request->get['information_id'])) {
            $this->load->model('catalog/information');

            $layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']);
        }

        if (!$layout_id) {
            $layout_id = $this->model_design_layout->getLayout($route);
        }

        if (!$layout_id) {
            $layout_id = $this->config->get('config_layout_id');
        }

        $this->load->model('extension/module');

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

        $modules = $this->model_design_layout->getLayoutModules($layout_id, 'header_content');

        foreach ($modules as $module) {
            $part = explode('.', $module['code']);

            if (isset($part[0]) && $this->config->get($part[0] . '_status')) {
                $data['modules'][] = $this->load->controller('module/' . $part[0]);
            }

            if (isset($part[1])) {
                $setting_info = $this->model_extension_module->getModule($part[1]);

                if ($setting_info && $setting_info['status']) {
                    $data['modules'][] = $this->load->controller('module/' . $part[0], $setting_info);
                }
            }
        }

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header_content.tpl')) {
            return $this->load->view($this->config->get('config_template') . '/template/common/header_content.tpl', $data);
        } else {
            return $this->load->view('default/template/common/header_content.tpl', $data);
        }
    }
}

catalog/view/theme/*theme_name*/template/common/header_content.tpl
Создаем и добавляем:

<?php foreach ($modules as $module) { ?>
<?php echo $module; ?>
<?php } ?>

catalog/view/theme/*theme_name*/template/common/header.tpl
Добавляем в необходимом месте:

<?php echo $header_content; ?>

:-o Пожалуйси! :twisted:

а для 2.3.0.2.2? :)

Link to comment
Share on other sites


  • 1 month later...

на 2.0.3.1 рилииет

спасипотому что!

 

в шапке без проблем, всё с первого раза, а перегделать для категорий (под гл. меню) ик и не полулилось(

не подскажите как правильно это сгделать?

Edited by admn42
Link to comment
Share on other sites


  • 1 month later...
  • 7 months later...

Для opencart 2.3.0.2.3 вариант предложенный

Yurasik

admin/language/russian/desing/layout.php
Перед:

$_['text_content_top'] = 'Вверху страницы';

Добавляем:

$_['text_header_content'] = 'Шапка сайи';

 

admin/controller/design/layout.php
Перед:

$data['text_content_top'] = $this->language->get('text_content_top');

Добавляем:

$data['text_header_content'] = $this->language->get('text_header_content');

 

admin/view/template/design/layout_form.tpl
Перед:

<table id="module-content-top" class="table table-striped table-bordered table-hover">

Добавляем:

<table id="module-header_content" class="table table-striped table-bordered table-hover">
                  <thead>
                    <tr>
                      <td class="text-center"><?php echo $text_header_content; ?></td>
                    </tr>
                  </thead>
                  <tbody>
                    <?php foreach ($layout_modules as $layout_module) { ?>
                    <?php if ($layout_module['position'] == 'header_content') { ?>
                    <tr id="module-row<?php echo $module_row; ?>">
                      <td class="text-left"><div class="input-group">
                          <select name="layout_module[<?php echo $module_row; ?>][code]" class="form-control input-sm">
                            <?php foreach ($extensions as $extension) { ?>
                            <optgroup label="<?php echo $extension['name']; ?>">
                            <?php if (!$extension['module']) { ?>
                            <?php if ($extension['code'] == $layout_module['code']) { ?>
                            <option value="<?php echo $extension['code']; ?>" selected="selected"><?php echo $extension['name']; ?></option>
                            <?php } else { ?>
                            <option value="<?php echo $extension['code']; ?>"><?php echo $extension['name']; ?></option>
                            <?php } ?>
                            <?php } else { ?>
                            <?php foreach ($extension['module'] as $module) { ?>
                            <?php if ($module['code'] == $layout_module['code']) { ?>
                            <option value="<?php echo $module['code']; ?>" selected="selected"><?php echo $module['name']; ?></option>
                            <?php } else { ?>
                            <option value="<?php echo $module['code']; ?>"><?php echo $module['name']; ?></option>
                            <?php } ?>
                            <?php } ?>
                            <?php } ?>
                            </optgroup>
                            <?php } ?>
                          </select>
                          <input type="hidden" name="layout_module[<?php echo $module_row; ?>][position]" value="<?php echo $layout_module['position']; ?>" />
                          <input type="hidden" name="layout_module[<?php echo $module_row; ?>][sort_order]" value="<?php echo $layout_module['sort_order']; ?>" />
                          <div class="input-group-btn"> <a href="<?php echo $layout_module['edit']; ?>" type="button" data-toggle="tooltip" title="<?php echo $button_edit; ?>" target="_blank" class="btn btn-primary btn-sm"><i class="fa fa-pencil"></i></a>
                            <button type="button" onclick="$('#module-row<?php echo $module_row; ?>').remove();" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger btn-sm"><i class="fa fa fa-minus-circle"></i></button>
                          </div>
                        </div></td>
                    </tr>
                    <?php $module_row++; ?>
                    <?php } ?>
                    <?php } ?>
                  </tbody>
                  <tfoot>
                    <tr>
                      <td class="text-left"><div class="input-group">
                          <select class="form-control input-sm">
                            <?php foreach ($extensions as $extension) { ?>
                            <optgroup label="<?php echo $extension['name']; ?>">
                            <?php if (!$extension['module']) { ?>
                            <option value="<?php echo $extension['code']; ?>"><?php echo $extension['name']; ?></option>
                            <?php } else { ?>
                            <?php foreach ($extension['module'] as $module) { ?>
                            <option value="<?php echo $module['code']; ?>"><?php echo $module['name']; ?></option>
                            <?php } ?>
                            <?php } ?>
                            </optgroup>
                            <?php } ?>
                          </select>
                          <div class="input-group-btn">
                            <button type="button" onclick="addModule('header_content');" data-toggle="tooltip" title="<?php echo $button_module_add; ?>" class="btn btn-primary btn-sm"><i class="fa fa-plus-circle"></i></button>
                          </div>
                        </div></td>
                    </tr>
                  </tfoot>
                </table>

В двух месих Перед:

#module-content-top,

Добавляем:

#module-header_content,

 

 

catalog/controller/common/header.php
Перед:

$data['language'] = $this->load->controller('common/language');

Добавляем:

$data['header_content'] = $this->load->controller('common/header_content');

catalog/controller/common/header_content.php
Создаем и добавляем:

<?php

class ControllerCommonHeaderContent extends Controller {

    public function index() {

        $this->load->model('design/layout');

        if (isset($this->request->get['route'])) {

            $route = (string)$this->request->get['route'];

        } else {

            $route = 'common/home';

        }

        $layout_id = 0;       

        if ($route == 'product/manufacturer/info' && isset($this->request->get['manufacturer_id'])) {

            $this->load->model('catalog/manufacturer');

            $layout_id = $this->model_catalog_manufacturer->getManufacturerLayoutId($this->request->get['manufacturer_id']);

        }

        if ($route == 'product/category' && isset($this->request->get['path'])) {

            $this->load->model('catalog/category');

            $path = explode('_', (string)$this->request->get['path']);

            $layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path));

        }

        if ($route == 'product/product' && isset($this->request->get['product_id'])) {

            $this->load->model('catalog/product');

            $layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);

        }

        if ($route == 'information/information' && isset($this->request->get['information_id'])) {

            $this->load->model('catalog/information');

            $layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']);

        }       

        if ($route == 'blog/category' && isset($this->request->get['blog_category_id'])) {

            $this->load->model('blog/category');           

            $layout_id = $this->model_blog_category->getCategoryLayoutId($this->request->get['blog_category_id']);

        }       

        if ($route == 'blog/article' && isset($this->request->get['article_id'])) {

            $this->load->model('blog/article');           

            $layout_id = $this->model_blog_article->getArticleLayoutId($this->request->get['article_id']);

        }

        if (!$layout_id) {

            $layout_id = $this->model_design_layout->getLayout($route);

        }

        if (!$layout_id) {

            $layout_id = $this->config->get('config_layout_id');

        }

        $this->load->model('extension/module');

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

        $modules = $this->model_design_layout->getLayoutModules($layout_id, 'header_content');

        foreach ($modules as $module) {

            $part = explode('.', $module['code']);

            if (isset($part[0]) && $this->config->get($part[0] . '_status')) {

                $module_data = $this->load->controller('extension/module/' . $part[0]);

                if ($module_data) {

                    $data['modules'][] = $module_data;

                }

            }

            if (isset($part[1])) {

                $setting_info = $this->model_extension_module->getModule($part[1]);

                if ($setting_info && $setting_info['status']) {

                    $output = $this->load->controller('extension/module/' . $part[0], $setting_info);

                    if ($output) {

                        $data['modules'][] = $output;

                    }

                }

            }

        }

        return $this->load->view('common/header_content', $data);

    }

}

catalog/view/theme/*theme_name*/template/common/header_content.tpl
Создаем и добавляем:

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

<?php echo $module; ?>

<?php } ?>

catalog/view/theme/*theme_name*/template/common/header.tpl
Добавляем в необходимом месте:

<?php echo $header_content; ?>

Edited by dayto
Link to comment
Share on other sites


  • 3 months later...

Всем привет, а у меня задача типа "попроещё".

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

Пропотому чтовал ик:

в контроллер футера писал

$data['newsletter_guests'] = $this->load->conroller('extension/module/newsletters');

в шаблон 

<?php echo $newsletter_guests; ?>

не рилииет - 500 ошибка, модификаторы и кеш обновлял - в чем может быть проблема?

Link to comment
Share on other sites


2 AWARO

Спасипотому что, конечно, модуль хороший, но в моем случае просто пропуещёна буква в conTroller - сам перелиил на форуме и понял - все зарилиило :)

  • +1 1
Link to comment
Share on other sites


  • 3 weeks later...
В 10.09.2018 в 19:55, Skull515 сказал:

2 AWARO

Спасипотому что, конечно, модуль хороший, но в моем случае просто пропуещёна буква в conTroller - сам перелиил на форуме и понял - все зарилиило :)

а еещё кто с поиска придёт 

$data['newsletter_guests'] = $this->load->conroller('extension/module/newsletters');

я вот икое в контроллере продуки и категории писал дважды по примеру как добавлены левый правый нижний верхний блок. Тогда рилииет. если указать 1 раз - не рилииет

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.