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

Нужен кастомный макет для страницы


Recommended Posts

Вопрос заключается в том что нужно сделать страницу с такой структурой, это уже не учитывая header,footer, т.к. на разных страницах меняется контент! Нужно что бы первый блок был во всю ширину(12 колонок), второй блок с ( фильтр+ товары) и снизу сделать тоже блок на всю ширину.... Просто когда добавляешь слева колонку то тогда все блоки (9 колонок)....  

Screenshot_1.png

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


как сделать такую структуру, если в open cart предлагается, либо с колонкой либо без, а мне нужно как на скриншоте выше... Что бы первый блок на всю ширину, потом блок фильтр + товары, и после них опять блок во всю ширину....

Screenshot_2.png

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


Как можно реализовать что бы некоторые блоки были  с боковой колонкой (левой), и на этой же странице блоки без боковой колонки....

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


32 минуты назад, lexxkrt сказал:

отредактировать шаблон. {{ content_top }} и {{ content_bottom }} вынести за контейнер с колонками

как вариант, но тогда будет весь контент без боковых колонок, а мне нужно что бы возле товаров был фильтр, или проще самому написать этот блок(бутстрапом фильтр+ товары). то есть не юзать колонки, но можно еще вынести один из  {{ content_top }} и {{ content_bottom }}, за пределы колонки, но у меня что сверху, что снизу блоки во всю ширину.... Как вы считаете лучше добавить расширение в котором блок будет разделен?

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


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

как вариант, но тогда будет весь контент без боковых колонок, а мне нужно что бы возле товаров был фильтр, или проще самому написать этот блок(бутстрапом фильтр+ товары). то есть не юзать колонки, но можно еще вынести один из  {{ content_top }} и {{ content_bottom }}, за пределы колонки, но у меня что сверху, что снизу блоки во всю ширину.... Как вы считаете лучше добавить расширение в котором блок будет разделен?

дать например фильтру 3 колонки и товарам 9, и поместить это в {{ content_top }} и не париться... 

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


1 минуту назад, Archi4400 сказал:

но тогда будет весь контент без боковых колонок,

почему?

было так

{{ header }}
<div id="product-category" class="container">
  {% include('common/breadcrumb.twig') %}
  <div class="row">{{ column_left }}
    {% if column_left and column_right %}
      {% set class = 'col-sm-6' %}
    {% elseif column_left or column_right %}
      {% set class = 'col-sm-9' %}
    {% else %}
      {% set class = 'col-sm-12' %}
    {% endif %}
    <div id="content" class="{{ class }}">{{ content_top }}
      <h2>{{ heading_title }}</h2>
      <hr/>
      {% if categories %}...

 

перенести

{{ header }}
<div id="product-category" class="container">
  {% include('common/breadcrumb.twig') %}

<div class="row">

{{ content_top }}

</div>
  <div class="row">{{ column_left }}
    {% if column_left and column_right %}
      {% set class = 'col-sm-6' %}
    {% elseif column_left or column_right %}
      {% set class = 'col-sm-9' %}
    {% else %}
      {% set class = 'col-sm-12' %}
    {% endif %}
    <div id="content" class="{{ class }}">
      <h2>{{ heading_title }}</h2>
      <hr/>
      {% if categories %}...

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


29 минут назад, lexxkrt сказал:

почему?

было так

{{ header }}
<div id="product-category" class="container">
  {% include('common/breadcrumb.twig') %}
  <div class="row">{{ column_left }}
    {% if column_left and column_right %}
      {% set class = 'col-sm-6' %}
    {% elseif column_left or column_right %}
      {% set class = 'col-sm-9' %}
    {% else %}
      {% set class = 'col-sm-12' %}
    {% endif %}
    <div id="content" class="{{ class }}">{{ content_top }}
      <h2>{{ heading_title }}</h2>
      <hr/>
      {% if categories %}...

 

перенести

{{ header }}
<div id="product-category" class="container">
  {% include('common/breadcrumb.twig') %}

<div class="row">

{{ content_top }}

</div>
  <div class="row">{{ column_left }}
    {% if column_left and column_right %}
      {% set class = 'col-sm-6' %}
    {% elseif column_left or column_right %}
      {% set class = 'col-sm-9' %}
    {% else %}
      {% set class = 'col-sm-12' %}
    {% endif %}
    <div id="content" class="{{ class }}">
      <h2>{{ heading_title }}</h2>
      <hr/>
      {% if categories %}...

у мея на главной так

{{ header }}
<div id="common-home" class="container-fluid">
  <div class="row">{{ column_left }}
    {% if column_left and column_right %}
    {% set class = 'col-sm-6' %}
    {% elseif column_left or column_right %}
    {% set class = 'col-sm-9' %}
    {% else %}
    {% set class = 'col-sm-12' %}
    {% endif %}
    <div id="content" class="{{ class }}">{{ content_top }}{{ content_bottom }}</div>
    {{ column_right }}</div>
</div>
{{ footer }}

ты имеешь ввиду сделать так ?

{{ header }}
<div id="common-home" class="container-fluid">
    <div class="row">{{ content_top }}</div>
  <div class="row">{{ column_left }}
    {% if column_left and column_right %}
    {% set class = 'col-sm-6' %}
    {% elseif column_left or column_right %}
    {% set class = 'col-sm-9' %}
    {% else %}
    {% set class = 'col-sm-12' %}
    {% endif %}
    <div id="content" class="{{ class }}">{{ content_bottom }}</div>
    {{ column_right }}</div>
</div>
{{ footer }}

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


ну тогда под {{ content_bottom }} я не смогу сделать блок в полную ширину, так как будет колонка слева.... нужно же так (скрин)

Screenshot_1.png

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


12 минут назад, Archi4400 сказал:

ну тогда под {{ content_bottom }} я не смогу сделать блок в полную ширину, так как будет колонка слева.... нужно же так (скрин)

по аналогии с верхним контентом, сделать так же нижний. вынести его за div.row который с колонками в отдельный div.row

в home.twig будет

{{ header }}
<div id="common-home" class="container">

<div class="row">

{{ content_top }}

</div>
  <div class="row">{{ column_left }}
    {% if column_left and column_right %}
    {% set class = 'col-sm-6' %}
    {% elseif column_left or column_right %}
    {% set class = 'col-sm-9' %}
    {% else %}
    {% set class = 'col-sm-12' %}
    {% endif %}
    <div id="content" class="{{ class }}"></div>

{# на других страницах в данном месте сам контент страницы #}
    {{ column_right }}</div>

<div class="row">

{{ content_bottom }}

</div>
</div>
{{ footer }}

 

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


это не то, получается между верхним и нижним контентом просто левая и правая..... ЛЕВО/ПРАВО перепутал:shock:

Screenshot_3.png

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


18 минут назад, Archi4400 сказал:

это не то, получается между верхним и нижним контентом просто левая и правая..... ЛЕВО/ПРАВО перепутал:shock:

ну все правильно, правая и левая колонка sm-3, в центре пустота sm-6 и получится.

на вашем первом скрине страница категории показана, это для нее будет работать

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


9 минут назад, lexxkrt сказал:

ну все правильно, правая и левая колонка sm-3, в центре пустота sm-6 и получится.

на вашем первом скрине страница категории показана, это для нее будет работать

Это все главная, просто в начале выводиться такой блок, с  некоторыми категориями...

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


9 минут назад, Archi4400 сказал:

Это все главная, просто в начале выводиться такой блок, с  некоторыми категориями...

тогда по простому в шаблоне в правой колонке поставить размер sm-9. но это тогда ко всем правым колонкам применится.

иначе много где переделывать

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


13 минут назад, lexxkrt сказал:

можно сделать проверку на маршрут и если это common/home то принудительно классы ширины поставить, иначе стандартные

Если я просто боковые колонки не буду использовать, а все в центральных сделаю, просо один из рядов разобью, это сильно плохо будет?)))(и получиться ли тогда нормально сделать фильтр?)

 

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


в принципе все можно, но надо будет контроллер home переписывать, и вьюшку тоже. я бы так и сделал. в контроллере создал переменную в которую загрузил контроллер модуля который похож на каталог. а потом во вьюшке home вставил эту переменную. на словах как то так

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


В 24.05.2019 в 20:26, lexxkrt сказал:

в принципе все можно, но надо будет контроллер home переписывать, и вьюшку тоже. я бы так и сделал. в контроллере создал переменную в которую загрузил контроллер модуля который похож на каталог. а потом во вьюшке home вставил эту переменную. на словах как то так

Ничего не понял, аж страшно стало.... Пока его пропустил, думаю у меня будут вопросы еще...

 

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


  • 2 weeks later...

Нашел решение как сделать, может кому нужно будет!!!!

Правда не для 3.0.2, но зато все понятно... и не составит труда сделать на twig!!!

Добавление позиций в admin

 

Сначала вам нужно открыть файл языкового модуля, расположенный в; /admin/language/*/module/ и добавьте новую позицию.

$_['text_content_middle']       = 'Content Middle';

 

Во-вторых, вам нужно открыть файл шаблона администратора модуля, расположенный в; /admin/view/template/module/ и добавьте новый оператор "если позиция установлена" около строки 50.

<?php if ($module['position'] == 'content_middle') { ?>
<option value="content_middle" selected="selected"><?php echo $text_content_middle; ?></option>
<?php } else { ?>
<option value="content_middle"><?php echo $text_content_middle; ?></option>
 <?php } ?>

и в том же файле добавьте опцию функции javascript по строке 140:

html += '      <option value="content_middle"><?php echo $text_content_middle; ?></option>';

В-третьих, вам нужно открыть файл контроллера модуля, расположенный в; /admin/controller/module/ и добавьте новую строку в любом месте строки 35.

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

Теперь вы сможете увидеть новую позицию в настройках своих модулей. Также убедитесь, что для макета модуля установлено значение " Главная."

Добавление позиций к вашим шаблонам

Сначала вы должны добавить позицию в массив, расположенный в; /catalog/controller/common/home.php вокруг строки 20.

'common/content_middle',

Во-вторых, вам нужно создать соответствующий PHP файл в /catalog/controller/common/ (например: "content_middle.php" ). Добавьте следующий код, обратите внимание на строки 2, 50, 79, 80 и 82), так как вам нужно будет отразить ваше имя позиции:

<?php
class ControllerCommonHomeOne extends Controller {
    public function index() {
        $this->load->model('design/layout');
        $this->load->model('catalog/category');
        $this->load->model('catalog/product');
        $this->load->model('catalog/information');

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

        $layout_id = 0;

        if (substr($route, 0, 16) == 'product/category' && isset($this->request->get['path'])) {
            $path = explode('_', (string)$this->request->get['path']);

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

        if (substr($route, 0, 15) == 'product/product' && isset($this->request->get['product_id'])) {
            $layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
        }

        if (substr($route, 0, 23) == 'information/information' && isset($this->request->get['information_id'])) {
            $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');
        }

        $module_data = array();

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

        $extensions = $this->model_setting_extension->getExtensions('module');

        foreach ($extensions as $extension) {
            $modules = $this->config->get($extension['code'] . '_module');

            if ($modules) {
                foreach ($modules as $module) {
                    if ($module['layout_id'] == $layout_id && $module['position'] == 'home_one' && $module['status']) {
                        $module_data[] = array(
                            'code'       => $extension['code'],
                            'setting'    => $module,
                            'sort_order' => $module['sort_order']
                        );
                    }
                }
            }
        }

        $sort_order = array();

        foreach ($module_data as $key => $value) {
            $sort_order[$key] = $value['sort_order'];
        }

        array_multisort($sort_order, SORT_ASC, $module_data);

        $this->data['modules'] = array();

        foreach ($module_data as $module) {
            $module = $this->getChild('module/' . $module['code'], $module['setting']);

            if ($module) {
                $this->data['modules'][] = $module;
            }
        }

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/home_one.tpl')) {
            $this->template = $this->config->get('config_template') . '/template/common/home_one.tpl';
        } else {
            $this->template = 'default/template/common/home_one.tpl';
        }

        $this->render();
    }
}
?>

В-третьих, создайте соответствующий файл TPL в /view/theme/your-theme/template/common/ (например: " content_middle.tpl" ). Добавьте следующий код:

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

Теперь вы можете позвонить в свою позицию в любом месте своей темы home.tpl, нажав

<?php echo $content_middle; ?>

 

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


4 минуты назад, Archi4400 сказал:

вообще не ожиданно, а раньше чего не скинули его???))))

не заметил этой темы

4 минуты назад, Archi4400 сказал:

спасибо огромное вам

 

всегда пожалуйста

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


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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