Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
количество элекментов
« : 21 Сентября 2012, 11:42:17 »
Здравствуйте. Возникла такая проблема... надо посчитать сколько дочерних страниц имеет страница. И при их количестве меньше 4 вывести код №1, в ином случае код №2...
так вот.. как составить условие того, что страниц в узле меньше 4?

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:количество элекментов
« Ответ #1 : 21 Сентября 2012, 16:42:47 »
count(//item) количество узлов
<xsl:choose>
          <xsl:when test="count(//item) &gt; 4">
            <xsl:text>код №1</xsl:text>
          </xsl:when>
          <xsl:otherwise>
             <xsl:text>код №2</xsl:text>
          </xsl:otherwise>
     </xsl:choose>

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:количество элекментов
« Ответ #2 : 21 Сентября 2012, 20:41:28 »
ну то что каунт итем я поняла... а как указать на определенную страницу... мне надо чтоб на главной выводилось видео, только если видеороликов больше 4х...

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:количество элекментов
« Ответ #3 : 26 Сентября 2012, 17:16:52 »
опишите подробно задачу. какая структура хранения этих видеороликов?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:количество элекментов
« Ответ #4 : 29 Сентября 2012, 00:42:41 »
можете воспользоваться возможностями usel запросов

например:
создать файл /usels/test.xml , с  содержимым
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages count">
<category depth="1">{1}</category>
</target>

<!-- <limit page="0">5</limit> -->
<!-- можно раскомментировать строчку выше и задать сколько страниц вам нужно вывести -->
</selection>

и вызвав данный usel запрос http://ваш_сайт/usel/test/9
, где 9 это id страницы внутри которой будет производится выборка дочерних элементов.

в итоге вы получите xml

<?xml version="1.0" encoding="utf-8"?>
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="usel" method="test" generation-time="0.013000">
  <page id="25" parentId="9" link="/shop/dvd_tehnika/dvd_pleery/akai_apa206c/" is-active="1" object-id="429" type-id="117" update-time="1336197540" alt-name="akai_apa206c" xlink:href="upage://25">
    <basetype id="49" module="catalog" method="object">Объекты каталога</basetype>
    <name>Akai AP-A206C</name>
  </page>
  <page id="8" parentId="9" link="/shop/dvd_tehnika/dvd_pleery/sony_ps6750/" is-active="1" object-id="392" type-id="117" update-time="1329782003" alt-name="sony_ps6750" xlink:href="upage://8">
    <basetype id="49" module="catalog" method="object">Объекты каталога</basetype>

    <name>Sony PS-6750</name>
  </page>
  <page id="28" parentId="9" link="/shop/dvd_tehnika/dvd_pleery/toshiba_srq660/" is-active="1" object-id="437" type-id="117" update-time="1329782012" alt-name="toshiba_srq660" xlink:href="upage://28">
    <basetype id="49" module="catalog" method="object">Объекты каталога</basetype>
    <name>Toshiba SR-Q660</name>
  </page>
  <total>3</total>

</udata>


обрабатывая который вы сможете учитывая тег total вывести или не  вывести результат usel запроса

с вызовом и написанием шаблонов для usel запроса справитесь?

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:количество элекментов
« Ответ #5 : 08 Октября 2012, 10:17:12 »
сделала через макрос.. посчитала количество детей с помощью getChildsCount()