Ситуация: я написал несложный компонент: на странице выводится форма, пользователь ее заполняет и отправляет POST'ом. Компонент роется в БД и выводит результаты поиска в view. Все нормально и хорошо работает. В шаблоне присутствует следующий кусок кода: Код (PHP): <?php $user = &JFactory::getUser(); ?> <?php if ($user->guest == 0) : ?> <p>Добро пожаловать, <a href="<?php echo JRoute::_('index.php?option=com_comprofiler'); ?>"><?php echo $user->name; ?></a>. <a href="#" id="logoutLink">Выйти</a></p> <?php else : ?> <p><a href="#k2ModuleBox61" id="showLoginLink">Войти</a> на сайт или <a href="<?php echo JRoute::_('index.php?option=com_comprofiler&task=registers'); ?>">зарегистрироваться</a>.</p> <?php endif; ?> Дак вот. При входе в компонент и на всех остальных страницах сайта, в шаблоне нормально отображается $user (если залогинен), с правильными данными, все хорошо… А после отправки формы, $user в шаблоне чем-то затирается и var_dump($user); выдает следующее: Код (PHP): object(JUser)#144 (19) { ["id"]=> int(0) ["name"]=> NULL ["username"]=> NULL ["email"]=> NULL ["password"]=> NULL ["password_clear"]=> string(0) и так далее… Возможно проблема в том, что в компоненте, при отправке формы, я получаю пользователя аналогичным образом (во вспомогательном классе контроллера): Код (PHP): class searchOptions { public $user_id; public function __construct($task){ $this->user_id = &JFactory::getUser(); $this->user_id = $this->user_id->id; Причем в компоненте получаются верные параметры пользователя. Я не понимаю что делать. Вроде как и в шаблоне, и в компоненте я должен использовать один объект (в обоих случаях я получаю его по указателю &). Как быть?
Когда вы отправляете форму, ядро джумлы вызывает передает управление вашему компоненту и все начинается с начала controller - model - view - tmpl . Если вы используете несколько моделей то статик метод getUser(), Вам необходимо вызвать в каждой из них, а затем передавать данные в шаблон.