Пример использования
Выведем приветственное сообщение "Здравствуйте, %имя%!"
<?php $userWelcomeData = $this->macros('users', 'welcome', array());?>
Здравствуйте, <?=$userWelcomeData['user_name']?>!
Не используется.
Вы можете вывести все необходимые данные о пользователе, получив id пользователя из ответа UMIData (см. «Формат UMI Data») и воспользовавшись протоколом UObject (см. «Объекты: протокол UObject»).
Например, так:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.01" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
<html>
<head>...</head>
<body>
<div class="greeting">
<xsl:apply-templates select="result/user"/>
</div>
<div class="content">
</div>
</body>
</html>
</xsl:template>
<xsl:template match="user">
<p>Здравствуйте, гость!</p>
</xsl:template>
<xsl:template match="user[@status = 'auth']">
<xsl:apply-templates select="document(concat('uobject://', @id))/udata/object"/>
</xsl:template>
<xsl:template match="object">
<p>Здравствуйте,
<xsl:value-of select=".//property[@name = 'fname']/value"/>
<xsl:text> </xsl:text>
<xsl:value-of select=".//property[@name = 'lname']/value"/>!
</p>
<p>Ваш логин:
<xsl:value-of select=".//property[@name = 'login']/value"/>
</p>
<p>Последний раз вы были здесь:
<xsl:value-of select="document(concat('udata://system/convertDate/',
.//property[@name = 'last_request_time']/value, '/(d.m.Y%20(H:i))'))"/>
</p>
</xsl:template>
</xsl:stylesheet>
В этом примере мы используем сведения, находящиеся в элементе user
ответа UMIData, для того, чтобы понять какой пользователь открыл страницу (в данном случае мы различаем только авторизованных пользователей и гостя, однако, при необходимости можно добавить шаблоны даже для отдельных групп пользователей).
После этого шаблон с match="user"
(меннее точный) будет выбран для гостя, а шаблон с match="user[@status = 'auth']"
— для авторизованных пользователей.
Во втором шаблоне мы вызваем сведения об объекте "пользователь" по протоколу UObject, передав его id, и обрабатываем по третьему шаблону полученные данные.
Используемые шаблоны
Макрос оперирует шаблонами, находящимися в каталоге /tpls/users/
.
Примеры использования
Простой вывод информации: %users welcome()%.
Вывод информации по пользовательскому шаблону: %users welcome('sample')%.
<?php
$FORMS = Array();
$FORMS['logged'] = <<<END
<div id="auth_default">
<p>
<b>
%users_welcome% %user_name% (%user_login%)
</b>
</p>
<p>
<a href="%pre_lang%/users/logout/" class="blue">Выйти</a> <br />
<a href="%pre_lang%/users/settings/" class="blue">Перейти в персональный раздел</a>
</p>
</div>
END;
?>
Название
%users welcome()% — Выводит информацию об авторизованном пользователе.
Параметры: users welcome( [template = 'default'])
- template
-
Имя шаблона, по которому выводится информация о пользователе.
Описание
Устаревший макрос. Выводит информацию об авторизованном пользователе по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — /tpls/users/default.tpl
. Фактически, выводит макрос %users auth()% , если пользователь авторизован, либо ничего, если он не авторизован.