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

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


Recommended Posts


Вывод модуля в шапку сайта Версия: 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 months later...

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

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

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

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

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


  • 1 month later...

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

хедер.jpg

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


Это темы 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 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

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


Только что, 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 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? :)

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


  • 1 month later...

на 2.0.3.1 работает

спасибо!

 

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

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

Змінено користувачем admn42
Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

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

viealllayouts.ocmod.xml.zip

Змінено користувачем TemaPerets
  • +1 1
Надіслати
Поділитися на інших сайтах


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

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

viealllayouts.ocmod.xml.zip

Змінено користувачем TemaPerets
Надіслати
Поділитися на інших сайтах


  • 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; ?>

Змінено користувачем dayto
Надіслати
Поділитися на інших сайтах


  • 3 months later...

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

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

Пробовал так:

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

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

в шаблон 

<?php echo $newsletter_guests; ?>

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

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


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

2 AWARO

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

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

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

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

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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