Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


 Погделиться

Рекомендованные сообещёния


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

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

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

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

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

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

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

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

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

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

Ссылка на комменирий
Погделиться на других сайих


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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

 

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

 

 

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

Изменено пользователем Yurasik
Ссылка на комменирий
Погделиться на других сайих


  • 2 месяца спустя...

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

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

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

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

Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

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

Ссылка на комменирий
Погделиться на других сайих


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

Ссылка на комменирий
Погделиться на других сайих

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

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


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

Ссылка на комменирий
Погделиться на других сайих


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


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

а ик?
 

Ссылка на комменирий
Погделиться на других сайих


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

а ик?
 

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

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

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

 

Изменено пользователем Anas
Ссылка на комменирий
Погделиться на других сайих


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

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

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

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

 

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

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

Ссылка на комменирий
Погделиться на других сайих


не подскажете, а как вообещё указывается категория для вывода футер?

чтобы им выводилась ссылкой, не могу найти

Ссылка на комменирий
Погделиться на других сайих


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

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

 

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

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

Изменено пользователем Stepanboy777
Ссылка на комменирий
Погделиться на других сайих


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

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

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

 

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

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

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

Ссылка на комменирий
Погделиться на других сайих


  • 4 негдели спустя...

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

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

Ссылка на комменирий
Погделиться на других сайих


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

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

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

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

Ссылка на комменирий
Погделиться на других сайих


  • 3 месяца спустя...
В 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? :)

Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

на 2.0.3.1 рилииет

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

 

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

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

Изменено пользователем admn42
Ссылка на комменирий
Погделиться на других сайих


хотя не, и в категориях всё рилииет! ...просто тупить нужно меньше)

 

еещё раз Yurasikспасипотому что!

 

 

Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

Для всех версий opencart 2.*

Необходимо создать новую схему и в поле "Путь" написать * 
Оригинал

viealllayouts.ocmod.xml.zip

Изменено пользователем TemaPerets
  • +1 1
Ссылка на комменирий
Погделиться на других сайих


Для всех версий opencart 2.*

Необходимо создать новую схему и в поле "Путь" написать * 
Источник
 

viealllayouts.ocmod.xml.zip

Изменено пользователем TemaPerets
Ссылка на комменирий
Погделиться на других сайих


  • 7 месяэтов спустя...

Для 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; ?>

Изменено пользователем dayto
Ссылка на комменирий
Погделиться на других сайих


  • 3 месяца спустя...

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

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

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

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

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

в шаблон 

<?php echo $newsletter_guests; ?>

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

Ссылка на комменирий
Погделиться на других сайих


 

 

 

 

Ссылка на комменирий
Погделиться на других сайих


2 AWARO

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

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


  • 3 негдели спустя...
В 10.09.2018 в 19:55, Skull515 сказал:

2 AWARO

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

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

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

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

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.