Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Как сделать ссылками элементы справочника из типа "Выпадающий список"

Автор AxiomateriaРаздел Шаблоны XSLT

Ответов: 1
Просмотров: 2368
Последний ответ 08 Ноября 2014, 01:11:45
от admin
Дочерние элементы

Автор niakrissРаздел Шаблоны XSLT

Ответов: 1
Просмотров: 1582
Последний ответ 11 Сентября 2013, 12:27:07
от niakriss

0 Пользователей и 1 Гость просматривают эту тему.

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Как выделить ленту новостей, четные новости имеют класс - i1, а нечетные без класса.
            <xsl:choose>
            <xsl:when test="item[position() mod 1 = 0]">
<div id="anons_{@id}_{generate-id()}" class="news_anons text i1" umi:field-name="anons" umi:field-type="wysiwyg" umi:empty="&empty-page-anons;">
<xsl:value-of select="$item//property[@name = 'anons']/value" disable-output-escaping="yes" />
</div>
            </xsl:when>
            <xsl:otherwise>
            <div id="anons_{@id}_{generate-id()}" class="news_anons text" umi:field-name="anons" umi:field-type="wysiwyg" umi:empty="&empty-page-anons;">
<xsl:value-of select="$item//property[@name = 'anons']/value" disable-output-escaping="yes" />
</div>
            </xsl:otherwise>
            </xsl:choose>
Как правильно должно выглядеть условие?
Спасибо.

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Попробуйте mod 2 = 0.

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
К сожалению, не помогло. Выполняется второе условие.

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
А покажите полностью данный шаблон ...

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Файл news/lastlist.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:umi="http://www.umi-cms.ru/TR/umi">

<!--Обертка списка новостей-->
<xsl:template match="udata[@module = 'news'][@method = 'lastlist']">
<xsl:param name="id" select="category_id"/>
<xsl:param name="noPages" select="0"/>
<xsl:variable name="newsItemPageTypeId" select="document('utype://news~item')/udata/type/@id" />
<div class="news" umi:element-id="{$id}" umi:add-text="&add-text-news;" umi:module="news" umi:method="lastlist" umi:region="list" umi:type-id="{$newsItemPageTypeId}" umi:button-position="top right">
<xsl:if test="(count(items/item) = 0) and ($isAdmin = 1)">
<xsl:attribute name="umi:sortable" select="'none'"/>
<div class="hidden no-style">
<div class="hidden-text">
<p>&empty-news;</p>
</div>
</div>
<div class="news_item blank_item" umi:region="row" umi:element-id="void" umi:delete="delete">
<div class="news_title" >
<div class="top_date news_date" umi:field-name="publish_time" umi:field-type="date" umi:empty="&empty-page-date;" />
<a class="news_headline" href="{@link}" umi:field-name="name" umi:field-type="string" umi:empty="&empty-page-name;"/>
<div class="bottom_date news_date" umi:field-name="publish_time" umi:field-type="date" umi:empty="&empty-page-date;" />
</div>
<div class="news_anons text" umi:field-name="anons" umi:field-type="wysiwyg" umi:empty="&empty-page-anons;"/>
</div>
</xsl:if>
<xsl:apply-templates select="items/item" />
</div>
<xsl:if test="not($noPages)">
<xsl:apply-templates select="document(concat('udata://system/numpages/',total,'/',per_page,'/'))/udata" />
</xsl:if>
</xsl:template>

<!--Эллемент списка новостей-->
<xsl:template match="udata[@method = 'lastlist']/items/item">
<xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
<xsl:variable name="publish_time">
<xsl:apply-templates select="@publish_time">
<xsl:with-param name="date_format" select="$newsDateFormat" />
</xsl:apply-templates>
</xsl:variable>
<div class="news_item" umi:region="row" umi:element-id="{@id}" umi:delete-text="&delete-text-news;" umi:delete="delete">
<div class="news_title" >
<a class="news_headline" href="{@link}" umi:field-name="name" umi:field-type="string" umi:empty="&empty-page-name;" umi:url-attribute="href">
<xsl:value-of select="." disable-output-escaping="yes" />
</a>
<div class="bottom_date news_date" umi:field-name="publish_time" umi:field-type="date" umi:empty="&empty-page-date;" >
<xsl:value-of select="$publish_time" disable-output-escaping="yes" />
</div>
</div>
            
            <xsl:choose>
            <xsl:when test="item[position() mod 2 = 0]">
<div id="anons_{@id}_{generate-id()}" class="news_anons text i1" umi:field-name="anons" umi:field-type="wysiwyg" umi:empty="&empty-page-anons;">
<xsl:value-of select="$item//property[@name = 'anons']/value" disable-output-escaping="yes" />
</div>
            </xsl:when>
            <xsl:otherwise>
            <div id="anons_{@id}_{generate-id()}" class="news_anons text" umi:field-name="anons" umi:field-type="wysiwyg" umi:empty="&empty-page-anons;">
<xsl:value-of select="$item//property[@name = 'anons']/value" disable-output-escaping="yes" />
</div>
            </xsl:otherwise>
            </xsl:choose>
          
</div>
</xsl:template>

</xsl:stylesheet>

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
А, ну так мы и так уже в узле item находимся...
<xsl:when test="position() mod 2 = 0">
Так попробуйте.

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Спасибо. Заработало.