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

Расширение модульных позиций


ampersand

Recommended Posts

Всем доброго времени суток!

Сделал небольшое расширение движка для модулей, что бы их можно было расставлять не только по правой и левой стороне сайта, но так же можно было ставить вверх, в низ, хидер и футер.

Вот хотел узнать: нужен ли кому то такой функционал кроме меня? Если да, то могу опубликовать.

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


Рад, что нужная модификация, выкладываю :) :

Advanced module positions (v. 0.1)

Сделано и протестировано на ocStore v0.1.7 (OpenCart 1.4.9.3).

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

V0.1 - Нуждается в тестировании. Адаптация для ocStore v0.1.7, а в частности: только русский язык, расстановка стандартных модулей из сборки ocStore, так что если используете нестандартные модули или другие языки - пишите, добавлю в следующую версию модификации или же напишу небольшой мануал как это всё допилить. :)

Скриншоты:

Изображение

Изображение

Установка:

(для стандартного шаблона)

Содержимое архива залить в папку с установленным Opencart или ocStore, на вопросы о замене ответить утвердительно.

Затем в папке /catalog/view/theme/default/template/common в файлы footer.tpl, header.tpl, home.tpl и success.tpl добавить следующий код (в то место, где требуется отображение модулей):

в footer.tpl:

<?php echo $column_footer; ?>
в header.tpl:
<?php echo $column_header; ?>
в home.tpl и success.tpl:
<?php echo $column_top; ?>	<?php echo $column_bottom; ?>

Блочные позиции почти что установлены.

Что бы позиции "Верх" и "Низ" отображались на остальных страницах, нужно в шаблоне в каждый файл, который начинается со строки

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>

добавить код (в то место, где требуется отображение модулей):

<?php echo $column_top; ?>	<?php echo $column_bottom; ?>

(для нестандартного шаблона)

Содержимое архива залить в папку с установленным Opencart или ocStore, на вопросы о замене ответить утвердительно.

В папку /catalog/view/theme/Ваш_шаблон/template/common залить файлы column_bottom.tpl, column_footer.tpl, column_header.tpl, column_top.tpl из папки в архиве /catalog/view/theme/default/template/common.

А дальше как для стандартного шаблона. :)

Лицензия: GNU GPL, версию не помню. В общем пользуйте на здоровье, изменяйте, исправляйте, дополняйте и тп. :)

Жду рецензий! :)

advanced module positions.tar.gz

  • +1 6
Надіслати
Поділитися на інших сайтах


Рад, что нужная модификация, выкладываю :) :

Advanced module positions (v. 0.1)

Сделано и протестировано на ocStore v0.1.7 (OpenCart 1.4.9.3).

Жду рецензий! :)

Ух ты. Спасибо огромное ampersand! Вот это вещь. Пойду тестить.

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


ну... как. Типа модуля. Мол, хочу MyHTML_module выводить над футером. Както так... В админке-ж можно выставить где "последние_товары" выводятся, правильно?

С уважением.

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

ну... как. Типа модуля. Мол, хочу MyHTML_module выводить над футером. Както так...

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

В админке-ж можно выставить где "последние_товары" выводятся, правильно?

Ну ведь "последние_товары" это ж модуль и его позиция выставляется в админке по адресу Дополнения - Модули - "Последнее" - изменить.

Моя доработка по такому принципу и работает. :)

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


  • 2 weeks later...

У нас работает. Правда, для данной площадки оказалось неактуально и решили отказаться, а для новых проектов аккуратненько в архивчике присутствует. Объединить данную доработку с вот этой темой (спасибо очередное tim21701) - будет бомба. Я к тому, что "шаблоны" можно будет создавать невероятной гибкости ;)

Автору риспект плюс плюс ;)

С уважением.

UPD: Тестил на 1.4.8Б - стало с первого раза и журнал ошибок чист.

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

  • 2 weeks later...

А можно уточнить по поводу этого момента

Блочные позиции почти что установлены.

Что бы позиции "Верх" и "Низ" отображались на остальных страницах, нужно в шаблоне в каждый файл, который начинается со строки

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>

добавить код (в то место, где требуется отображение модулей):

<?php echo $column_top; ?> <?php echo $column_bottom; ?>

в поиске нашло 175 файлов которые начинаются со строки <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>

это во весх файлах вручную чтоли нужно добавлять строки?

<?php echo $column_top; ?> <?php echo $column_bottom; ?>

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


  • 2 weeks later...

Нет, их должно быть намного меньше.

Вставлять их нужно в следующие *.tpl файлы (если нужно отображение блочной позиции на этих страницах):

.../catalog/view/theme/default - папка шаблона:

/account - внешний вид страниц управления учетной записью (12 файлов)

/checkout - внешний вид страниц оформления заказа (7 файлов)

/common - тут только в home.tpl, success.tpl, ну и если надо в maintenance.tpl

/error - тоже если надо (1 файл)

/information - внешний вид контактов, карты сайта, страниц с текстовым контентом (3 файла)

/mail - тут ничего не надо

/module - тут так же ничего не требуется изменять

/payment - и сюда не лезем. :)

/product - внешний вид страниц товаров, категории товаров, поиск товаров (6 файлов)

Вроде ничего не забыл.

Итого ~31 файл.

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


класс!! спасибо!

все работает кроме одного - у моего собственного модуля отсутствует выбор новых позиций. Как было "слева, справа, главная" так и осталось.

в чем беда?

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


вот этот модуль не видит новых позиций

Не надо выкладывать модуль, который есть в разделе "Дополнения".

Достаточно дать на него ссылку.

afwollis

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


спасибо за конструктивное замечание я каюсь )

итак никто не в курсе как может у всех модулей быть выбор позиции а у одного нет?

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


Выбор позиций для модуля дописывается в сам модуль. Я работал со стандартной комплектацией, по этому то, что дополнительно - надо дописывать.

Чуть позже отпишусь что где дописать или же сам добавлю (с пояснениями как это делается).

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


алилуйя, спасибо =) а то я уже всю голову сломал... уже даже в БД залез.. подумал может там хранятся позиции.. но не увидел ничего похожего... буду ждать.

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


Выбор позиций для модуля дописывается в сам модуль. Я работал со стандартной комплектацией, по этому то, что дополнительно - надо дописывать.

Чуть позже отпишусь что где дописать или же сам добавлю (с пояснениями как это делается).

тоже очень жду вашего решения! :)

Спасибо!

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


спасибо за разъяснения

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

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


  • 4 weeks later...

Выбор позиций для модуля дописывается в сам модуль. Я работал со стандартной комплектацией, по этому то, что дополнительно - надо дописывать.

Чуть позже отпишусь что где дописать или же сам добавлю (с пояснениями как это делается).

Как раз искал такое решение и наткнулся на эту тему. Мне в хидер надо вставить не стандартный модуль "Cлайдер последних товаров". Опишите куда и чего прописывать. И достаточно ли мне будет закинуть файлы только для хидера? Мой сайт находится здесь

В хидере место для слайдера.

Очень нужное решение потому как в стандартном скрипте почему то это не предусмотрено.

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


  • 2 weeks later...

алилуйя, спасибо =) а то я уже всю голову сломал... уже даже в БД залез.. подумал может там хранятся позиции.. но не увидел ничего похожего... буду ждать.

Извините, что пропал, совсем запарился...

И так, как сделать, что бы дополнительные модульные позиции действовали и на нестандартные модули:

Дело в том, что доп. позиции для модуля должны быть прописаны в самом модуле, по этому нестандартные модули допиливаем сами. :)

При чем при создании этого расширения я заметил, что выбор позиций люди реализовывают по разному (двумя способами).

Способ первый:

Идем admin/controller/module/нужный_модуль.php

Находим строки:

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

после них добавляем:

$this->data['text_top'] = $this->language->get('text_top');
$this->data['text_bottom'] = $this->language->get('text_bottom');
$this->data['text_header'] = $this->language->get('text_header');
$this->data['text_footer'] = $this->language->get('text_footer');

Это язык. :)

Далее находим:

$this->data['positions'] = array();
		
		$this->data['positions'][] = array(
			'position' => 'left',
			'title'    => $this->language->get('text_left'),
		);
		
		$this->data['positions'][] = array(
			'position' => 'right',
			'title'    => $this->language->get('text_right'),
		);

и после этого добавляем:

$this->data['positions'][] = array(
			'position' => 'top',
			'title'    => $this->language->get('text_top'),
		);
		$this->data['positions'][] = array(
			'position' => 'bottom',
			'title'    => $this->language->get('text_bottom'),
		);
		$this->data['positions'][] = array(
			'position' => 'header',
			'title'    => $this->language->get('text_header'),
		);
		$this->data['positions'][] = array(
			'position' => 'footer',
			'title'    => $this->language->get('text_footer'),
		);
...соответственно.

Всё, по идее всё должно работать. :)

Иногда бывает, что второй блок кода найти не удается, по этому нужен второй способ.

Способ 2:

Тут: admin/controller/module/нужный_модуль.php так же вставляем язык (первый блок кода).

Далее идем: /admin/view/template/module/нужный_модуль.tpl

И после кода:

              <?php if ($google_talk_position == 'left') { ?>
              <option value="left" selected="selected"><?php echo $text_left; ?></option>
              <?php } else { ?>
              <option value="left"><?php echo $text_left; ?></option>
              <?php } ?>
              <?php if ($google_talk_position == 'right') { ?>
              <option value="right" selected="selected"><?php echo $text_right; ?></option>
              <?php } else { ?>
              <option value="right"><?php echo $text_right; ?></option>
              <?php } ?>
( Внимание! $google_talk - это название модуля, так что будьте внимательны. Самое лучшее найти этот блок кода в модуле, скопировать его и вставить просто заменив text_left на top/bottom/header/footer. :) )

добавляем:

<?php if ($category_position == 'top') { ?>
              <option value="top" selected="selected"><?php echo $text_top; ?></option>
              <?php } else { ?>
              <option value="top"><?php echo $text_top; ?></option>
              <?php } ?>
              <?php if ($category_position == 'bottom') { ?>
              <option value="bottom" selected="selected"><?php echo $text_bottom; ?></option>
              <?php } else { ?>
              <option value="bottom"><?php echo $text_bottom; ?></option>
              <?php } ?>
              <?php if ($category_position == 'header') { ?>
              <option value="header" selected="selected"><?php echo $text_header; ?></option>
              <?php } else { ?>
              <option value="header"><?php echo $text_header; ?></option>
              <?php } ?>
              <?php if ($category_position == 'footer') { ?>
              <option value="footer" selected="selected"><?php echo $text_footer; ?></option>
              <?php } else { ?>
              <option value="footer"><?php echo $text_footer; ?></option>
              <?php } ?>

( опять же не путаемся с переменными )

Всё, по идее всё должно работать.

  • +1 2
Надіслати
Поділитися на інших сайтах


Красавчег. Спасибо, правда я за это время уже сам допёр что и куда но для других будет полезно. Прими +1 от меня.

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


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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