Здравствуйте!
Через вызов <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 тоже выводилась пагинация ?
<limit page="0">{limit}</limit>
Вот тут вот задается все по пагинации в самом запросе. Соответственно параметр нужно вызывать в запросе. Ну и прикрутить путешествие по нумерации страниц.
http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#limit
1. Запрос в чистом виде usel://ConfHotels/?limit=10&page=3 выдает результаты ?
Может попробовать "&" ?
Если вопрос про вывод через адресную строку, то да (если включаем usel.http.allow = "1") - выводиться xml-документ, то есть все 10 объектов, как и установлено, НО без пагинации...
Может попробовать "&" ?
Попробовал <xsl:apply-templates select="document('usel://ConfHotels/?limit=10&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&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" выводится на странице (справа под табло с бронированием) - это как раз значение общего количества объектов.
<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>
Но он не работает, если я правильно всё понял, то есть по прежнему ситуация такая же - пагинация не появилась...
Попробовал даже ещё и вот так:
<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>
Но при таком раскладе вообще объекты не выводятся... А ведь как-то ж просто оно всё должно здесь решаться...
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()%..