Новая Позиция В Шапке Сайта

Тема в разделе "Шаблоны, дизайн и оформление магазина", создана пользователем Serega PS, 9 ноя 2016.

  1. TopicStarter Overlay
    Offline

    Serega PS

    Сообщения:
    28
    Симпатии:
    20
    Репутация:
    0
    Новая позиция в шапке сайта с показом на всех страницах для версии opencart osctore 2.3

    И так начнем

    создаем файл full_content.php по пути catalog/controller/common/
    с содержимым

    PHP:
    <?php
    class ControllerCommonFullContent 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 1;

            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'full_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/full_content'$data);
        }
    }
    далее создаем файл full_content.tpl по пути catalog/view/theme/default/template/common/
    с содержимым
    HTML:
    <?php foreach ($modules as $module) { ?>
    <?php echo $module; ?>
    <?php } ?>
    далее создаем файл full_content.ocmod.xml в папке system/
    с содержимым


    PHP:
    <?xml version="1.0" encoding="UTF-8"?>
    <modification>
        <name>Новая позиция в шапке для опенкарт осторе 2.3</name>
        <code>Position</code>
        <version>1.0</version>
        <author>SeregaPS</author>
        <date>09.11.2016</date>
        <file path="admin/controller/design/layout.php">
            <operation>
                <search><![CDATA[$data['text_column_right'] = $this->language->get('text_column_right');]]></search>
                <add position="after"><![CDATA[        $data['text_full_content'] = $this->language->get('text_full_content');]]></add>
            </operation>
        </file>

        <file path="admin/language/ru-ru/design/layout.php">
            <operation>
                <search><![CDATA[$_['text_column_right']         = 'Правая колонка';]]></search>
                <add position="after"><![CDATA[$_['text_full_content']           = 'На всю ширину';]]></add>
            </operation>
        </file>     

        <file path="admin/view/template/design/layout_form.tpl">
            <operation>
                <search><![CDATA[<table id="module-content-top" class="table table-striped table-bordered table-hover">]]></search>
                <add position="before"><![CDATA[                <table id="module-full-content" class="table table-striped table-bordered table-hover">
                      <thead>
                        <tr>
                          <td class="text-center"><?php echo $text_full_content?></td>
                        </tr>
                      </thead>
                      <tbody>
                        <?php foreach ($layout_modules as $layout_module) { ?>
                        <?php if ($layout_module['position'] == 'full_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('full-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>]]></add>
            </operation>
         
            <operation>
                <search><![CDATA[$('#module-column-left, #module-column-right, #module-content-top, #module-content-bottom').delegate('select[name*=\'code\']', 'change', function() {]]></search>
                <add position="replace"><![CDATA[$('#module-column-left, #module-column-right, #module-content-top, #module-content-bottom, #module-full-content').delegate('select[name*=\'code\']', 'change', function() {]]></add>
            </operation>
         
            <operation>
                <search><![CDATA[$('#module-column-left, #module-column-right, #module-content-top, #module-content-bottom').trigger('change');]]></search>
                <add position="replace"><![CDATA[$('#module-column-left, #module-column-right, #module-content-top, #module-content-bottom, #module-full-content').trigger('change');]]></add>
            </operation>
        </file> 
     
        <file path="catalog/controller/common/header.php">
            <operation>
                <search><![CDATA[$data['language'] = $this->load->controller('common/language');]]></search>
                <add position="before"><![CDATA[        $data['full_content'] = $this->load->controller('common/full_content');]]></add>
            </operation>
        </file> 
     
        <file path="catalog/view/theme/default/template/common/header.tpl">
            <operation>
                <search><![CDATA[<header>]]></search>
                <add position="before"><![CDATA[<div class="container"><div class="row"><div id="full_content"><?php echo $full_content?></div></div></div>]]></add>
            </operation>
        </file> 

    </modification>
    заходим в схемы > главная
    увидим новую позицию под названием На всю ширину
    далее вставим на ну новую позицию модуль допустим слайдер
    и сохраняем в итоге получим это
    скрин: 9acdc0e60d.png
     
    petrsupp, Brainouts и admin нравится это.
  2. Offline

    Brainouts Пользователь

    Сообщения:
    44
    Симпатии:
    7
    Репутация:
    0
    И от меня лайк
     
  3. Offline

    petrsupp Пользователь

    Сообщения:
    6
    Симпатии:
    2
    Репутация:
    0
    Спасибо, недавно никак не мог найти инфы по этой теме. безценный урок.