обратно передать не получится, можно из компонента передать в шаблон, но из шаблона в компонент нет, я не представлю ни одного случая когда может понадобиться это.. опишите вашу задачу, может есть более простое и изящное решение!
Мне нужно на основании URL назначить переменные:
$app = JFactory::getApplication();
$menu = $app->getMenu()->getActive();
if ( strpos($menu, '/test1')!==false) {
$modcolor = " myclass1 ";
$somevariable = 'somevalue1';
}
elseif ( strpos($menu, '/test2')!==false) {
$modcolor = " myclass2 ";
$somevariable = 'somevalue2';
}
else $modcolor = false;
$option = $app->input->getCmd('option');
$app->setUserState( $option . '.modcolor' , $modcolor);
$app->setUserState( $option . '.somevariable' , $somevariable);
Затем получить эти данные
в шаблоне компонента,
в шаблоне плагина компонента,
в шаблонах модулей.
$app = JFactory::getApplication();
$option = $app->input->getCmd('option');
$modcolor = $app->getUserState( $option . '.modcolor');
$somevariable = $app->getUserState( $option . '.somevariable');
Я конечно могу вставить этот код во всех указанных шаблонах:
$app = JFactory::getApplication();
$menu = $app->getMenu()->getActive();
if ( strpos($menu, '/test1')!==false) {
$modcolor = " myclass1 ";
$somevariable = 'somevalue1';
}
elseif ( strpos($menu, '/test2')!==false) {
$modcolor = " myclass2 ";
$somevariable = 'somevalue2';
}
else $modcolor = false;
Но на одной странице создавать одно и тоже условие 5-6 раз как-то не хочется.
Хочу один раз назначить переменные и передать их во все нужные места.
PS Для чего?
В зависимости от урла в модули подгружается особый класс css, на странице компонента к некоторым ссылкам добавляется специальный суффикс, тоже самое делается в плагине. Кроме того, на странице компонента исходя из урла формируется вывод некоторых элементов.