зарегистрирован ли пользователь <xslt:if...

#
зарегистрирован ли пользователь <xslt:if...
Данный вопрос реализованный на php:
<?php

   $SiteUsers = & singleton ('SiteUsers');
   $iSiteUserId = $SiteUsers->GetCurrentSiteUser();
   if ($iSiteUserId == 0) {
?>
   <a href="/users/" title="Войти">Войти</a> или <a href="/users/registration/" title="Зарегистрироваться">зарегистрироваться</a>
<?php
   }
   else {
?>
   Перейти в <a href="/users/" title="Личный кабинет">личный кабинет</a> или <a href="/users/?action=exit" title="Выйти">выйти</a>

<?php
   }
?>

Необходимо тоже самое, только с перламутровыми пуговицами на xslt. Так как этот код не вставить в xslt шаблон.
И еще вопрос, как проверить на принадлежность пользователя к определенной группе пользователей с id=x?

И вопрос пользуясь случаем, не по теме: в xslt у if есть else?
#
Re: зарегистрирован ли пользователь <xslt:if...
wbrz писал(а):
в xslt у if есть else?

Есть xsl:choose с условиями xsl:when и else-частью в виде xsl:otherwise

<xsl:choose>
   <xsl:when test="a=1">а равно 1</xsl:when>
   <xsl:when test="a=2">а равно 2</xsl:when>
   ...
   <xsl:when test="a=10">а равно 10</xsl:when>
   <xsl:otherwise>а не равно ни 1 ни 2 ... ни 10</xsl:otherwise>
<xsl:choose>
Заказов не беру. Консультирую редко.
#
Re: зарегистрирован ли пользователь <xslt:if...
wbrz писал(а):
тоже самое, только с перламутровыми пуговицами


php:
<?php
   
   $SiteUsers = & singleton ('SiteUsers');
   $iSiteUserId = $SiteUsers->GetCurrentSiteUser();
   
   $xmlData = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
   $xmlData .= '<document>' . "\n";
   $xmlData .= '<site_user_id>' . $iSiteUserId . '<site_user_id>' . "\n";
   $xmlData .= '</document>' . "\n";
   
   $xsl = & singleton ('xsl');
   
   $xsl_name = 'Логинка';
   echo $xsl->build($xmlData, $xsl_name);
?>


+ XSL:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>

<xsl:template match="/document">

   <xsl:choose>
      <xsl:when test="site_user_id > 0">
         Перейти в <a href="/users/" title="Личный кабинет">личный кабинет</a> или <a href="/users/?action=exit" title="Выйти">выйти</a>
      </xsl:when>
      <xsl:otherwise>
         <a href="/users/" title="Войти">Войти</a> или <a href="/users/registration/" title="Зарегистрироваться">зарегистрироваться</a>
      </xsl:otherwise>
   </xsl:choose>
   
</xsl:template>

</xsl:stylesheet>
Заказов не беру. Консультирую редко.
#
Re: зарегистрирован ли пользователь <xslt:if...
Большое спасибо, но почему-то в моих руках это не заработало...

В доске объявлений есть "Добавить объявление в этот раздел".
Мне нужно чтобы эту ссылку мог увидеть только зарегистрированный пользователь.
В темплэйт бросил php код и в шаблоне каталога товаров добавил

<xsl:choose>
   <xsl:when test="site_user_id > 0">
      <div id="ShowAddComment">
         <a onclick="if (document.getElementById('AddItemForm').innerHTML == '') sendBackgroundRequest('{/shop/path}?action=show_form_add_item&amp;group_id={$parent_group_id}', 'get', callbackfunction_showFormAddItem); else cr('AddItemForm'); return false;" href="javascript:void(0)">Добавить объявление в этот раздел</a>
      </div>
   </xsl:when>
   <xsl:otherwise>
      <h3>hello</h3>
   </xsl:otherwise>
</xsl:choose>

Видимо что-то делаю не так...
#
Re: зарегистрирован ли пользователь <xslt:if...
wbrz писал(а):
и в шаблоне каталога товаров добавил
а при чем тут шаблон каталога товаров?
У приведенного кода - свой шаблон.

А для доски объявлений этот php код не нужен, достаточно проверять /document/site_user_id в XSL шаблоне.
Если такого узла в XML нет то нужно передать его через $external_propertys в соответствующий show-метод.
Заказов не беру. Консультирую редко.
#
Re: зарегистрирован ли пользователь <xslt:if...
Kotoff,
возможно ли поработать с вами по этому и ряду других вопросов за деньги?
У меня к сожалению нет достаточного количества времени осваивать xslt.
erak7erak[собака]gmail.com
#
Re: зарегистрирован ли пользователь <xslt:if...
wbrz, потенциально возможно. А по факту я завтра после с обеда ухожу в отпуск до середины октября
Так что вам быстрее будет разобраться самому.
Заказов не беру. Консультирую редко.
Авторизация