Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Помогите вывести пейджинг новостей

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

Ответов: 6
Просмотров: 1318
Последний ответ 25 Март 2015, 15:01:29
от aizul
Пейджинг страниц каталога

Автор BaceHРаздел Настройка системы и модулей

Ответов: 22
Просмотров: 8274
Последний ответ 11 Июль 2012, 07:33:30
от KTI

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

*

aizul

  • **
  • 90
  • +0/-0
    • Просмотр профиля
Пейджинг в фотоальбоме
« : 03 Октябрь 2016, 14:47:30 »
Подскажите как установить пейджинг в фотоальбоме?
Вот шаблон самого фотоальбома:
<xsl:template match="result[@module = 'photoalbum' and @method = 'album']">
<xsl:apply-templates select="document('udata://photoalbum/album')/udata" />
</xsl:template>
<xsl:template match="udata[@module = 'photoalbum' and @method = 'album']">
<xsl:apply-templates select="items/item" />
</xsl:template>

<xsl:template match="udata[@module = 'photoalbum' and @method = 'album']/items/item">
<xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
<xsl:variable name="photo" select="$item//property[@name = 'photo']/value" />
<img src="{$photo}" width="60%" umi:field-name="photo" umi:delete="delete" alt="" />
</xsl:template>

<xsl:template match="result[@module = 'photoalbum' and @method = 'photo']">
<xsl:variable name="photo" select="page//property[@name = 'photo']/value" />
<img src="{$photo}" width="150" umi:field-name="photo" umi:element-id="{page/@id}" />
</xsl:template>

Выводится через обычный:
<xsl:apply-templates select="result" />

*

aghigay

  • *****
  • 608
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Пейджинг в фотоальбоме
« Ответ #1 : 03 Октябрь 2016, 16:14:40 »
Воспользуйтесь функцией http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/virtualnyj_modul_system/system_numpages/
Примеры есть на вкладке XSLT
Мой блог http://umicms.me

*

aizul

  • **
  • 90
  • +0/-0
    • Просмотр профиля
Re: Пейджинг в фотоальбоме
« Ответ #2 : 04 Октябрь 2016, 10:20:37 »
Что-то я не нашел там примеров. Одни ответы udata.

*

aghigay

  • *****
  • 608
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Пейджинг в фотоальбоме
« Ответ #3 : 04 Октябрь 2016, 11:42:15 »
Ну тогда можно воспользоваться стандартным demodizzy
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://i18n/constants.dtd:file">

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="total" />
<xsl:template match="total[. &gt; ../per_page]">
<xsl:apply-templates select="document(concat('udata://system/numpages/', ., '/', ../per_page))" />
</xsl:template>

<xsl:template match="udata[@method = 'numpages']" />
<xsl:template match="udata[@method = 'numpages'][count(items)]">
<div class="numpages">
<div class="links">
<xsl:if test="toprev_link and not(tonext_link)">
<span>
<xsl:text>|</xsl:text>
</span>
</xsl:if>
<xsl:apply-templates select="toprev_link|tonext_link" />
</div>
<div class="pages">
<xsl:apply-templates select="items/item" mode="numpages" />
</div>
</div>
</xsl:template>

<xsl:template match="item" mode="numpages">
<a href="{@link}">
<xsl:value-of select="." />
</a>
</xsl:template>

<xsl:template match="item[@is-active = '1']" mode="numpages">
<span>
<xsl:value-of select="." />
</span>
</xsl:template>

<xsl:template match="toprev_link">
<a class="prev" href="{.}">
<xsl:text>&previous-page;</xsl:text>
</a>
</xsl:template>

<xsl:template match="tonext_link">
<span>
<xsl:text>|</xsl:text>
</span>
<a class="next" href="{.}">
<xsl:text>&next-page;</xsl:text>
</a>
</xsl:template>

<xsl:template match="item" mode="slider">
<xsl:apply-templates select="preceding-sibling::item[1]" mode="slider_back" />
<xsl:apply-templates select="following-sibling::item[1]" mode="slider_next" />
</xsl:template>

<xsl:template match="item" mode="slider_back">
<a href="{@link}" title="&previous-page;" class="back" />
</xsl:template>

<xsl:template match="item" mode="slider_next">
<a href="{@link}" title="&next-page;" class="next" />
</xsl:template>

</xsl:stylesheet>
Мой блог http://umicms.me

*

aizul

  • **
  • 90
  • +0/-0
    • Просмотр профиля
Re: Пейджинг в фотоальбоме
« Ответ #4 : 04 Октябрь 2016, 15:40:41 »
Сделал страницу paging.xsl и сохранил этот код. Подключил страницу через common.xsl. Сайт перестал открываться.
В самом файле common.xsl уже есть:
Цитировать
   <xsl:template name="numpages">
      <xsl:param name="limit" />
      <xsl:param name="total" />   
      <xsl:if test="$total > $limit">
         <xsl:apply-templates select="document(concat('udata://system/numpages/', $total, '/', $limit))/udata" />
      </xsl:if>
   </xsl:template>
   <xsl:template match="udata[@module = 'system' and @method = 'numpages']">
      <ul class="numpages">
         <xsl:apply-templates select="items/item" />
      </ul>
   </xsl:template>

У меня шаблон страницы и фотоальбома в одном файле. Может из-за этого не работает?

*

aghigay

  • *****
  • 608
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Пейджинг в фотоальбоме
« Ответ #5 : 04 Октябрь 2016, 16:52:53 »
Судя по всему проблема в непонимании того, как должен взаимодействовать XSLT с сайтом. Если просто подключить этот файл - в лучшем случае ничего не изменится, в худшем - сайт перестанет работать. Рекомендую вам для начала изучить базовые принципы работы с XSLT и только после этого заниматься внесением изменений в сайт.

Ну или доверьте работу тому, кто умеет.
Мой блог http://umicms.me