В итоге должен получиться файл dispatches.xsl
следующего содержания:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " ">]>
<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>
<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>