Перейти к содержанию
kate1987

[Решено] Разное оформление для модуля

Рекомендуемые сообщения

Здравствуйте. Использую Opencart 1.5.4 Для фильтрации есть модуль - Автоматический фильтр товаров 1.1.0, в котором можно создавать разные группы фильтров. Фильтр на странице категории я опубликовываю 2 раза, в левой и в правой колонке. В левой колонке - опции, в правой - атрибуты. Так вот, как сделать разное оформление для фильтра которой в левой колонке и для фильтра который в правой. Возможно с выбором разных tpl ? Может кто знает?

Поделиться сообщением


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

По идее делаю проверку на позицию в tpl модуля

<?php <?php if($this->config->get('filter_'.$module.'_position')=='right'){ ?>
Одно оформление
<?php }else{  ?>
Другое оформление
<?php } ?>

, предварительно добавив в контроллере модуля

$this->data['module'] = $setting;

Но оно в любом случае пишет Другое оформление (

Поделиться сообщением


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

посмотрите код контроллера

    protected function index($setting) {

$setting - тут все настройки

Поделиться сообщением


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

В итоге получилось так) В контроллере

$this->data['setting'] = $setting;

В tpl файле

  <?php if (($setting['position'] == 'content_top') || ($setting['position'] == 'content_bottom')) { ?>
Одно оформление
<?php } else {  ?>
Другое оформление
<?php } ?>

Под разные версии по разному. Это решение для Opencart 1,5,4 подходит для любых Модулей. Для позиций 'content_bottom' и 'content_top' Спасибо всем за участие)

  • +1 1

Поделиться сообщением


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

Для правой позиции так

 <?php if (($setting['position'] == 'column_right')) { ?>
Одно Оформление
   <?php } else {  ?>
Другое
   <?php } ?>

Аналогично для левой

  • +1 1

Поделиться сообщением


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

Для правой позиции так

 <?php if (($setting['position'] == 'column_right')) { ?>
Одно Оформление
<?php } else {  ?>
Другое
<?php } ?>

Аналогично для левой

Как то слишком сложно.

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

Если только оформление, то в контроллере нужно определение класса вида

if (($setting['position'] == 'column_right')) {
$this->data['sitebar_css'] = "column_right";
}

ну а в шаблоне в div внешнего контейнера добавляется класс

<div... class="<?php echo $sitebar_css; ?>">

и в соответствии с классом описывается стиль.

Поделиться сообщением


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

Как то слишком сложно.

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

Предпологалось разное размещение содержимого блока фильтр. Доделаю пришлю скрин. Так будет виднее

Поделиться сообщением


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

Приветствую всех. Столкнулся с такой же задачей на Opencart 2.1, долго искал решение

1. В .tpl модуля прописываем условие:
 

<?php if ($module['position'] == 'content_bottom' || $module['position'] == 'content_top') { ?>
//add your code Here
<?php } ?>


2.В контроллере модуля .php пишем:
 

$data['module'] = $setting;


3.В контроллере позиции где предполагается выводить модуль catalog/controller/common/{content_bottom, content_top}

ищем строчку

$setting_info = $this->model_extension_module->getModule($part[1]);

добавляем после неё

$setting_info['position'] = basename(__FILE__, '.php');

Источник тут: http://stackoverflow.com/questions/27589492/check-module-position-in-opencart-2-0

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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