class BaseShopController extends lmbController
{
function performAction()
{
$this->view->set('user', $this->toolkit->getUser());
return parent :: performAction();
}
}
После этого в MACRO шаблоне объект пользователя будет доступен в корневом контейнере данных, то есть можно будет использовать такие выражения:
if($this->user()->is_logged_in) { ?>
Logged in as :{{$#user.name}}
} ?>
==== Использование php-вставок в MACRO-шаблоне ====
MACRO-позволяет использовать обычные php-вставки. Поэтому мы можем легко получить тулкит прямо в шаблоне и передать объект user в нужный нам контейнер данных, например:
[...]
- Profile
-
if(lmbToolkit :: instance()->getUser()->is_logged_in) { ?>
Logged in as :{{$#user.name}}
} ?>
[...]
Если ваш верстальщик нормально относится к подобным php-вставкам в шаблонах - можете смело воспользоваться таким методом.
==== Использование фильтра ====
Этот способ предусматривает добавление нескольких строк в фильтр:
class SampleFilter implements lmbInterceptingFilter
{
function run($filter_chain)
{
$toolkit = lmbToolkit :: instance();
$user = $toolkit->getUser();
[...]
$toolkit->getView()->set('user', $user);
[...]
}
}
Данная небольшая модификация позволит использовать user из корневого контейнера данных, как в способе с базовым контроллером.
==== Получение данных прямо в шаблоне через toolkit ====
Начиная с версии пакета WEB_APP 0.4 (соответствует релизу 2007.2) toolkit поддерживает получение данных через базовые методы get(), к кому же toolkit стал доступен в шаблоне в корневой контейнере данных. Все это позволяет даже не заботиться о передаче user-а в шаблон, а действовать в стиле %%PullView%%:
[...]
getUser();
if($user->is_logged_in) { ?>
- Profile
-
Logged in as :{$user.name}
email: {$user.email}
} ?>
[...]
На этом способе мы и остановимся.
Как видите, способов достаточно много. Начиная с релиза 2007.2, мы рекомендуем использовать способ получения данных в шаблоне через toolkit.
===== Предварительные итоги =====
Если вы модифицировали шаблон front_page_layout.phtml, то теперь после аутентификации на странице /login вы сможете увидеть данные своей учетной записи в левой части страницы.
{{limb3:ru:tutorials:shop:login_success.png|}}
===== Далее =====
[[step5|Шаг5. Отображение списка товаров для покупателей. Поиск товаров]]