Логотип

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

В итоге должен получиться файл dispatches.xsl следующего содержания:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet  [<!ENTITY nbsp "&#160;">]>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">



 <xsl:template match="user" mode="dispatches">
   <form name="subscribe_guest" id="subscribe_guest" method="post"  action="/dispatches/subscribe_do/">

     <h2>Подписка на новости</h2>
  
     <span>
       <input name="sbs_mail" value="Введите E-mail" onfocus="(this.value == 'Введите E-mail' ? this.value='' : void(0))" onblur="(!this.value.length ? this.value='Введите E-mail' : void(0))" type="text" />
     </span>
  
       <input type="submit" value="Отправить" />

   </form>
 </xsl:template>





 <xsl:template match="user[@status = 'auth']" mode="dispatches">
    <xsl:apply-templates select="document('udata://dispatches/subscribe/notemplate/')/udata" mode="dispatches.for-auth"/>
 </xsl:template>

 <xsl:template match="subscriber_dispatches" mode="dispatches.for-auth">
    
   <h2>Вы подписаны на рассылки:</h2>

   <form method="post" name="sbs_frm" enctype="multipart/form-data" action="/dispatches/subscribe_do/">

     <ul class="dispatches">
       
     </ul>

     <input type="submit" value="Отправить" class="submit-send" />
   </form>

 </xsl:template>

 <xsl:template match="items" mode="dispatches.for-auth">
   <li>

     <input name="subscriber_dispatches[]" value="{./@id}" type="checkbox">

      <xsl:if test="./@is_checked">
        <xsl:attribute name="checked">checked</xsl:attribute>
      </xsl:if>

     </input>
      &nbsp;

     <span>
       <xsl:value-of select="." />
     </span>

   </li>
 </xsl:template>





 <xsl:template match="result[@module='dispatches'][@method='subscribe_do']">
    Вы подписались на рассылки.
 </xsl:template>

 <xsl:template match="result[@module='dispatches'][@method='subscribe_do'][user[@status='auth']]">
   <xsl:apply-templates select="document('udata://dispatches/subscribe/notemplate/')/udata" mode="dispatches.list" />
 </xsl:template>

 <xsl:template match="subscriber_dispatches"  mode="dispatches.list">
      Вы не подписаны ни на одну рассылку.
 </xsl:template>

 <xsl:template match="subscriber_dispatches[items[@is_checked = '1']]" mode="dispatches.list">

   <h2>Вы подписаны на рассылки:</h2>

   <ul>
     <xsl:apply-templates select="items[@is_checked = '1']" mode="dispatches.list" />
   </ul>

 </xsl:template>
 
 <xsl:template match="items" mode="dispatches.list">
   <li>
     <span><xsl:value-of select="." /></span>
   </li>
 </xsl:template>



</xsl:stylesheet>