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

Вопрос гуру Opencart'а


Recommended Posts

Как сделать проверку переменной position в модулях без вмешательства в контроллеры модуля

 

Пример реализации через контроллеры:

 

1. в контроллер добавляется

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

2. в tpl файл добавляется

<?php if ($position == 'content_top' or $position == 'content_bottom') { ?>.......<?php } else if ($position == 'column_left' or $position == 'column_right') { ?>......<?php } ?>

Вопрос: Как это все реализовать в tpl файле без вмешательства в контроллер модуля. Перепробовал различные комбинации, но пока ничего не нашел. Надеюсь кто поделиться своим знанием, или хотя бы догадками )))

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

К сожалению, никак.

Есть один хитрый ход

 

 

но он, к сожалению, не совсем честный

$settings = $this->config->get('имя модуля');

 

вы получите массив настроек модулей, но, к сожалению, не известен индекс активного

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

Хак на примере модуля "Рекомендуем" (он же Featured):

<?php	$settings = $this->config->get('featured_module');	foreach ($settings as $setting)	{		if ($setting['position'] == 'content_top')		{			echo $setting['position'];		}	}?>
  • +1 2
Надіслати
Поділитися на інших сайтах


Главное, что задачу решает! :-D

Но это все же хак, хотя виной всему непродуманность архитектуры движка, очень уж вольное представление об MVC у Даниеля. :ugeek:

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


Хак на примере модуля "Рекомендуем" (он же Featured):

<?php	$settings = $this->config->get('featured_module');	foreach ($settings as $setting)	{		if ($setting['position'] == 'content_top')		{			echo $setting['position'];		}	}?>

тогда уж

<?php    $settings = $this->config->get('featured_module');    foreach ($settings as $index=>$setting)    {        if ($setting['position'] == 'content_top')        {            echo $setting['position'];// и делаем все для этой позиции        }        if ($setting['position'] == 'column_left' or $setting['position'] == 'column_right'{// и делаем все для этой позиции        }    }?>
  • +1 1
Надіслати
Поділитися на інших сайтах

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

P.S. На всякий случай, echo можно убрать. :-D

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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