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

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

Ответов: 9
Просмотров: 2966
Последний ответ 18 Декабря 2013, 23:48:27
от Axiomateria
Пагинация в объекте каталога

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

Ответов: 9
Просмотров: 1928
Последний ответ 10 Ноября 2014, 09:46:41
от Axiomateria
Пагинация страниц каталога с 1

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

Ответов: 18
Просмотров: 833
Последний ответ 21 Апреля 2016, 13:11:29
от aghigay
пагинация без перезагрузки

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

Ответов: 6
Просмотров: 2970
Последний ответ 14 Января 2013, 16:48:18
от niakriss
Длинная пагинация

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

Ответов: 9
Просмотров: 3580
Последний ответ 31 Января 2013, 10:30:56
от admin

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

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Пагинация постов блога
« : 15 Ноября 2012, 15:12:23 »
делаю все тоже самое что и раньше.. не могу понять почему не получается( может кто увидит у меня ошибку?
у меня создано 11 постов. должно выводить 10 и на 2 странице 1... а выводит 11 и на 2 странице 10 причем со 2 по 11 посты...
вот мой шаблон:

<!-- Переменные для постр навигации -->
  <xsl:variable name="doc-postslist" select="document(concat('udata://blogs20/postsList/', /result/@pageId))" />
  <xsl:variable name="doc-postslist-numpages" select="document(concat('udata://system/numpages/', $doc-postslist/udata/total, '/', $doc-postslist/udata/per_page, '/notemplate/p/10'))" /> 

<xsl:template match="result[@module = 'blogs20'][@method = 'blog']">

<xsl:variable name="path" select="//property[@name='fotografiya']/value" />
<h1><xsl:value-of select="//property[@name='h1']/value" /></h1>
<div><xsl:value-of select="//property[@name='familiya']/value"/></div>
<div><xsl:value-of select="//property[@name='imya_otchestvo']/value"/></div>
<div><xsl:value-of select="//property[@name='dolzhnost_zvanie']/value"/></div>
<div><img src="{document(concat('udata://system/makeThumbnailFull/(.', $path, ')/201/140'))//udata/src}" width="201" height="140" alt="" /></div>
<xsl:apply-templates select="document(concat('udata://blogs20/postsList/', /result/@pageId))/udata/items/item"  mode="blogs_list"/>

<!-- Постраничная навигация -->
<div class="pagination"><xsl:apply-templates select="$doc-postslist-numpages" mode="paging" /></div>
</xsl:template>

<xsl:template match="item"  mode="blogs_list" >
<div><a href="{post_link}"><xsl:value-of select="document(concat('upage://',@id,'.h1'))//value" /></a></div>
<div><xsl:value-of select="document(concat('upage://',@id,'.content'))//value" disable-output-escaping="yes"/></div>

 
 </xsl:template>

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #1 : 16 Ноября 2012, 10:37:09 »
закинул ваши шаблоны в demodizzy все выводит правильно, но по характеру ошибки создается такое впечатление что пагинация работает не по принципу: "указать количество объектов на странице и текущую страницу", а по принципу: "указать количество объектов на странице, плюс смещение от начала списка объектов"

второй принцип (со смещеие) есть в системе, но он по идее никакого отношению к макросу  udata://blogs20/postsList/ не имеет.

Плюс, у вас не приведены шаблоны вашей пагинации, может там чего интересного. Плюс, вы не уточнили, где именно вы указываете, что на странице надо выводить по 10 элементов (возможно в админке, в настройке модуля "блоги"). Еще я бы взглянуть на код макроса udata://blogs20/postsList/, может у вас самая свежая версия и там что-то поменялось (эта функция лежит в файле classes/modules/blogs20/class.php)

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #2 : 16 Ноября 2012, 10:42:04 »
да.. точно.. версию только вчера обновила до последний.. возможно и в этомпроблема... в новостях и фотках и в каталоге все нормально по этому же принципу работает.. с этой же пагинацией... Сейчас изучу class.php

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #3 : 16 Ноября 2012, 10:53:14 »
если выборка делается через такую строчку

$sel = new umiSelection;

то это первый вариант механизма, а вот если что-то типа
$sel = new selector('pages');

то это уже второй вариант который работает со смещением, тогда особое внимание обратите на строчки типа
$sel->limit($offset, $limit);

первая переменная $offset - это смещение. Если туда просто ставиться значение параметра p, который берется из адресной строки, то тогда это ошибка кода, пишите в umi. Если нет, то пишите сюда, будем дальше копать

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #4 : 16 Ноября 2012, 11:04:47 »
дааа... я уже заметила это отличае))) спасибо)

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #5 : 16 Ноября 2012, 11:12:15 »
такого как вы написали нет... но есть

if($limit) {
$sel->limit($page, $limit);
} else {
$sel->limit($page, $this->comments_per_page);
}

где $page:

$page = (int)getRequest('p');

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #6 : 16 Ноября 2012, 11:51:07 »
a выборка такая $sel = new umiSelection;?

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #7 : 16 Ноября 2012, 12:00:23 »
нет...
$sel = new selector('pages');

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #8 : 16 Ноября 2012, 12:10:17 »
тогда это ошибка umi? можете им писать что в таком то макрсое неправильно сделан механизм пагинации при использовании select в функции такой-то

Если говорить о текущем решении, то исправте код
if($limit) {
$sel->limit($page, $limit);
} else {
$sel->limit($page, $this->comments_per_page);
}

на
if($limit) {
$ofset = $page*$limit;
$sel->limit($ofset, $limit);
} else {
$ofset = $page*$this->comments_per_page;
$sel->limit($ofset, $this->comments_per_page);
}

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #9 : 16 Ноября 2012, 14:20:09 »
нуу меня пока неособо горит проект.. подожду ответа юми))) спасибо за ответы)

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #10 : 19 Ноября 2012, 11:07:24 »
и точно их баг... они признались...))) сказали что как только поступит решение из отдела разработки, они нам сообщат)

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #11 : 20 Ноября 2012, 00:13:25 »
ну или попробовать то решение  что написал я. выше)

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:Пагинация постов блога
« Ответ #12 : 20 Ноября 2012, 09:17:38 »
тоже верно... но пока занялась другим сайтом)