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

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

Как сделать проверку переменной 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

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


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

Хорош... Но жаль индекса нет.

Но работает, если  требуется вызвать модуль через роутер.

  • +1 1

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


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

Главное, что задачу решает! :-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

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


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

<offtop>

Та понимаю... но иногда... хочется биться головой об стену.

</offtop>

  • +1 1

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


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

Спасибо за направление, буду пробовать. Всем плюсы

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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