Логотип

Документация по макросам и шаблонам UMI.CMS

Пример использования

Выведем приветственное сообщение "Здравствуйте, %имя%!"

<?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/.

Используемые блоки шаблона

logged

Блок для вывода информации о авторизованном пользователе.

%user_id%

Id пользователя.

%user_name%

Логин пользователя.

%user_login%

Фамилия и имя пользователя.

Примеры использования

Простой вывод информации: %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()% , если пользователь авторизован, либо ничего, если он не авторизован.

Дополнительные сведения