UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: nunucbku от 14 Марта 2014, 15:43:01

Название: Вывести дополнительные поля в личном кабинете.
Отправлено: nunucbku от 14 Марта 2014, 15:43:01
Здравствуйте. Подскажите, как с помощью xslt вывести любое поле (которое я укажу), для текущего пользователя.

Пробовал через uobject

<xsl:value-of select="document('uobject://@id.moe_svoictvo')//value" />


Но работает, только если указываю конкретный @id пользователя (например 22).
Название: Re:Вывести дополнительные поля в личном кабинете.
Отправлено: NOIRMAN от 15 Марта 2014, 00:19:53
/result/user/@id - покажет Вам идентификатор пользователя.
Название: Re:Вывести дополнительные поля в личном каб&#
Отправлено: ilyar от 15 Марта 2014, 22:35:57
Здравствуйте. Подскажите, как с помощью xslt вывести любое поле (которое я укажу), для текущего пользователя.

Пробовал через uobject

<xsl:value-of select="document('uobject://@id.moe_svoictvo')//value" />


Но работает, только если указываю конкретный @id пользователя (например 22).

В приведенный код не будет работать потому что это uobject://@id.moe_svoictvo не существующий стрим, надо собирать подобные запросы через concat(param1, param2, ...), приведенный код будет работать если его записать так:

Код: XSL [Выделить]

<xsl:value-of select="document(concat('uobject://', @id, '.moe_svoictvo'))//value" />


в результате собранный стрим будет uobject://123.moe_svoictvo.

Для того что бы получать идентификатор текущего пользователя, как сказал NOIRMAN, его надо брать из /result/user/@id, для удобства можно определить глобальную переменную в общем шаблоне:

Код: XSL [Выделить]

<xsl:variable name="userId" select="/result/user/@id"/>


и тогда будет возможность получить идентификатор текущего пользователя где нам это потребуется, пример использования:

Код: XSL [Выделить]

<xsl:value-of select="document(concat('uobject://', $userId, '.moe_svoictvo'))//value" />