Список рассылок текущего пользователя — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
 
[[Категория: Верстка в XSLT]][[Категория: Модуль Рассылки]]
 
[[Категория: Верстка в XSLT]][[Категория: Модуль Рассылки]]
 
'''Актуально для версии 2.9.6'''<br/><br/>
 
'''Актуально для версии 2.9.6'''<br/><br/>
'''Задача:''' <br/><br/>
+
'''Задача:''' Средствами XSLT-шаблонизатора вывести список рассылок, на которые подписан текущий пользователь.<br/><br/>
 
'''Реализация:'''  
 
'''Реализация:'''  
  
Как сделать XSLT-шаблон, выводящий список рассылок, на которые подписан текущий пользователь?
+
Добавим следующую строку вызова макроса dispatches subscribe() в любой шаблон:
 
+
<source lang="xml">
Вот этот шаблон:
+
<xsl:apply-templates select="document('udata://dispatches/subscribe')/udata/subscriber_dispatches" mode="subs" />
 +
</source>
 +
Также, добавим шаблоны для обработки результатов работы описанного выше макроса:
 
<source lang="xml">
 
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
 
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
 
 
<xsl:template match="/">
 
      <html>
 
          <head>
 
              <title><xsl:value-of select="/result/@title" /></title>
 
          </head>
 
      <body>                 
 
        <div id="content">
 
        <h1><xsl:value-of select="//property[@name = 'h1']/value" /></h1>
 
        <xsl:value-of select="//property[@name = 'content']/value" disable-output-escaping="yes"/>
 
        </div>
 
 
        <div id="subs">
 
        <xsl:apply-templates select="document('udata://dispatches/subscribe')/udata" mode="subs" />
 
        </div>
 
      </body>
 
      </html>
 
</xsl:template>
 
 
 
<xsl:template match="subscriber_dispatches" mode="subs">         
 
<xsl:template match="subscriber_dispatches" mode="subs">         
Вы подписаны на рассылки: <br/>
+
    <h3>Вы подписаны на рассылки: </h3>
<xsl:apply-templates select="//items" mode="subs"/>
+
    <br />
 +
    <ul>
 +
        <xsl:apply-templates select="items[@is_checked = '1']" mode="subs"/>
 +
    </ul>
 
</xsl:template>
 
</xsl:template>
+
 
 
<xsl:template match="items" mode="subs">
 
<xsl:template match="items" mode="subs">
<xsl:value-of select="."/>
+
    <li>
 +
        <xsl:value-of select="."/>
 +
    </li>
 
</xsl:template>
 
</xsl:template>
 
</xsl:stylesheet>
 
 
</source>
 
</source>
 +
В итоге будет выведен список рассылок ( тегом &lt;ul&gt; ), на которые подписан текущий пользователь.

Текущая версия на 08:07, 11 апреля 2014

Актуально для версии 2.9.6

Задача: Средствами XSLT-шаблонизатора вывести список рассылок, на которые подписан текущий пользователь.

Реализация:

Добавим следующую строку вызова макроса dispatches subscribe() в любой шаблон:

<xsl:apply-templates select="document('udata://dispatches/subscribe')/udata/subscriber_dispatches" mode="subs" />

Также, добавим шаблоны для обработки результатов работы описанного выше макроса:

<xsl:template match="subscriber_dispatches" mode="subs">        
    <h3>Вы подписаны на рассылки: </h3>
    <br />
    <ul>
        <xsl:apply-templates select="items[@is_checked = '1']" mode="subs"/>
    </ul>
</xsl:template>

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

В итоге будет выведен список рассылок ( тегом <ul> ), на которые подписан текущий пользователь.