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

Автор BaceHРаздел Custom макросы

Ответов: 5
Просмотров: 4228
Последний ответ 11 Января 2013, 19:48:58
от admin
Добавление данных из объекта в форму "Заказ в 1 клик"

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

Ответов: 4
Просмотров: 4003
Последний ответ 11 Ноября 2014, 11:14:45
от Axiomateria
Выборка активных и не активных страниц через Selector

Автор atachРаздел Custom макросы

Ответов: 2
Просмотров: 2136
Последний ответ 24 Апреля 2016, 13:02:38
от atach
Прошу помощи с usel - необходимо отфильтровать новости по кастомному полю

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

Ответов: 11
Просмотров: 6547
Последний ответ 05 Марта 2012, 23:01:29
от Aksuk
Выборка USEL с несколькими параметрами для одного поля

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

Ответов: 3
Просмотров: 3179
Последний ответ 29 Ноября 2012, 11:05:03
от niakriss

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

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Здравствуйте!

Через вызов <xsl:apply-templates select="document('usel://ConfHotels/')/udata" mode="table-view-groups-conf" />  на странице с типом данных "Страница контента" (назовём её условно "Мажорные отели") выводятся превью объектов каталога по таком уже шаблону, что и превью этих же объектов на странице раздела каталога с типом данных "Раздел каталога".
На странице "Мажорные отели" выводятся превью объектов через usel все сразу, то есть полное количество (102 штуки) с длинной прокруткой на одной странице.
Вот этот самый файл:
<?xml version="1.0" encoding="utf-8"?>
<selection>
   <target expected-result="pages">
 <type module="catalog" method="object" />
 <type id="145"/>
   </target>
   <property name="detailed_description_hotel">
   </property>
   <extended>
      <properties>h1,title-hotel-photo,stars,location,detailed_description_hotel,price_special_offers</properties>
   </extended>
<sort>rand()</sort>
<limit page="0">{limit}</limit>    
</selection>
В настройках модуля "Каталог" указано значение "10" для количества выводимых объектов на одной странице и в разделе каталога на сайте пагинация выводиться успешно.
Что сделать надо, что бы и на странице, где объекты каталога выводятся через usel тоже выводилась пагинация ?
 

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:Пагинация при выводе данных через usel
« Ответ #1 : 13 Декабря 2013, 18:56:01 »
<limit page="0">{limit}</limit>
Вот тут вот задается все по пагинации в самом запросе. Соответственно параметр нужно вызывать в запросе. Ну и прикрутить путешествие по нумерации страниц.
http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#limit

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Пагинация при выводе данных через usel
« Ответ #2 : 13 Декабря 2013, 19:47:16 »
<limit page="0">{limit}</limit>
http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#limit
Конечно я читал инструкцию и вот это место в ней даже пробовал:
(цитирую)
Именованные параметры
Именованные параметры передаются как параметры запроса наподобие GET-параметров:
usel://someSelection/?limit=10&page=3
Для подстановки их в шаблон выборки нужно писать {limit}, {page}. Например:
<limit page="{page}">{limit}</limit>
(конец цитаты)

Но вот не задача - на практике если применять такой вариант вызова, как:
<xsl:apply-templates select="document('usel://ConfHotels/?limit=10&page=3')/udata" mode="table-view-groups-conf" />
- то сайт сразу ложиться...
А такой вариант вызова, как
<xsl:apply-templates select="document('usel://ConfHotels/10/?limit=10')/udata" mode="table-view-groups-conf" />
не срабатывает - пагинации нет, но хотя уже срабатывает ограничение, на вывод десяти превью объектов...

И снова здравствуйте!   :)

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:Пагинация при выводе данных через usel
« Ответ #3 : 14 Декабря 2013, 15:00:10 »
1. Запрос в чистом виде usel://ConfHotels/?limit=10&page=3 выдает результаты ?
Еще мне очень не нравится (самому то еще на практике не приходилось использовать такого вида запросы) использование "&" в чистом виде в коде шаблона. Может попробовать "&amp;" ?
2. Для usel://ConfHotels/10/?limit=10 - что в тексте самого usel отвечает за параметр {1}? В верхнем примере не увидел этого параметра.
« Последнее редактирование: 14 Декабря 2013, 15:10:54 от NOIRMAN »

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Пагинация при выводе данных через usel
« Ответ #4 : 17 Декабря 2013, 16:32:20 »
1. Запрос в чистом виде usel://ConfHotels/?limit=10&page=3 выдает результаты ?
Может попробовать "&amp;" ?
Если вопрос про вывод через адресную строку, то да (если включаем usel.http.allow = "1") - выводиться xml-документ, то есть все 10 объектов, как и установлено, НО без пагинации...

Может попробовать "&amp;" ?
Попробовал <xsl:apply-templates select="document('usel://ConfHotels/?limit=10&amp;page=3')/udata" mode="table-view-groups-conf" />
Но нет пагианции опять-таки...

Для usel://ConfHotels/10/?limit=10 - что в тексте самого usel отвечает за параметр {1}? В верхнем примере не увидел этого параметра.
Не очень понял про какой пример... Уточните, пожалуйста, что вы хотели сказать?

Вот сейчас на странице выводятся 10 объектов:
http://www.glavtouroperator.ru/main/services/conference_halls.html
по выводу:
<xsl:apply-templates select="document('usel://ConfHotels/?limit=10&amp;page=3')/udata" mode="table-view-groups-conf" />
Есть такое подозрение, что пагинация не работает из-за не настроенного вызова в шаблоне
    <xsl:template match="udata[@method = 'getObjectsList'][total]" mode="table-view-groups-conf-conf">      
         <xsl:apply-templates select="lines/item" mode="table-view-groups-conf" />
         <xsl:apply-templates select="total" />                      
    </xsl:template>

И именно по этому циферка "102" выводится на странице (справа под табло с бронированием) - это как раз значение общего количества объектов.
« Последнее редактирование: 17 Декабря 2013, 16:55:49 от Axiomateria »

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:Пагинация при выводе данных через usel
« Ответ #5 : 17 Декабря 2013, 22:18:50 »
<xsl:template match="udata[@method = 'getObjectsList'][total]" mode="table-view-groups-conf-conf">     

Вот тут вот, вроде как, идет обработка макроса getObjectsList. И не имеет никакого отношения к Вашему usel. Попробуйте изменить значение @method на Ваш ConfHotels

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Пагинация при выводе данных через usel
« Ответ #6 : 18 Декабря 2013, 14:16:39 »
<xsl:template match="udata[@method = 'getObjectsList'][total]" mode="table-view-groups-conf-conf">      
Вот тут вот, вроде как, идет обработка макроса getObjectsList. И не имеет никакого отношения к Вашему usel. Попробуйте изменить значение @method на Ваш ConfHotels
Вы имеете ввиду такой вариант:
    <xsl:template match="udata[@method = 'usel://ConfHotels/'][total]" mode="table-view-groups-conf">      
         <xsl:apply-templates select="lines/item" mode="table-view-groups-conf" />
         <xsl:apply-templates select="total" />                      
    </xsl:template>

Но он не работает, если я правильно всё понял, то есть по прежнему ситуация такая же - пагинация не появилась...

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Пагинация при выводе данных через usel
« Ответ #7 : 18 Декабря 2013, 14:26:28 »
Попробовал даже ещё и вот так:
	
<xsl:template match="/result[@method = 'category' and page/@type-id=145]">
        <xsl:apply-templates select="document(concat('usel://ConfHotels/', page/@id, '////0/?extProps=h1,title-hotel-photo,stars,location,detailed_description_hotel,price_special_offers'))/udata" mode="table-view-groups-conf" />
</xsl:template>
    <xsl:template match="udata[@method = 'ConfHotels'][total]" mode="table-view-groups-conf">     
         <xsl:apply-templates select="lines/item" mode="table-view-groups-conf" />
         <xsl:apply-templates select="total" />                       
    </xsl:template>
Но при таком раскладе вообще объекты не выводятся... А ведь как-то ж просто оно всё должно здесь решаться...

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:Пагинация при выводе данных через usel
« Ответ #8 : 18 Декабря 2013, 14:38:32 »
Последний пример больше похож на правду. С массой оговорок ))

1. usel запрос скорее всего собирает для Вас page. Вы же пытаетесь вызвать lines/item.
2. Что такое select='total' для меня лично остается загадкой. В лучшем случае оно выведет общее количество записей (120 вроде в Вашем случае).
3. Где запрос макроса  %system numpages()%, который собственно и отвечает за пагинацию объектов?

http://dev.docs.umi-cms.ru/prakticheskie_primery/postranichnyj_vyvod_pejdzhing_stredstvami_xslt-shablonizatora/verstka_shablonov/ очень подробно тут про пагинацию.

P.S. личное )) Смотрю в скайпе Вы не частый гость ;)

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Пагинация при выводе данных через usel
« Ответ #9 : 18 Декабря 2013, 23:48:27 »
1. usel запрос скорее всего собирает для Вас page. Вы же пытаетесь вызвать lines/item.
Да, действительно - исправил эту часть и циферка "102" (общее количество объектов) перестала выводится..
    <xsl:template match="udata" mode="table-view-groups-conf">      
        <xsl:apply-templates select="page" mode="table-view-groups-conf" />
        <xsl:apply-templates select="total" />                   
    </xsl:template>
Но проблема думаю в другом месте - пагинация не выводится, как я думаю с самого начала, из-за типа страницы "Страница контента", так как например в разделе каталога с типом данных "Раздел каталога"
она (пагинация) выводится успешно: http://glavtouroperator.ru/main/services/booking_of_hotels/hotels_spb.html
2. Что такое select='total' для меня лично остается загадкой. В лучшем случае оно выведет общее количество записей...
Как показывает "метод научного тыка" этот самый  select='total' отвечает не только за вывод значения общего количества объектов каталога, но и за подключение пагинации (проверено в разделе каталога с типом данных страницы "Раздел каталога")., то есть отвечает за вывод макроса %system numpages()%..

« Последнее редактирование: 18 Декабря 2013, 23:50:24 от Axiomateria »