Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Добавление пагинации, как?

00 голосов
3
Есть у меня инфоблок с разделами, нужно на странице вывести разделы и по n элементов из него. Делаю так:
Код
CModule::IncludeModule('iblock');
$arFilter = Array('IBLOCK_ID'=>8, 'DEPTH_LEVEL' => 1);
$db_list = CIBlockSection::GetList(Array("NAME"=>"DESC"), $arFilter, true);
while($ar_result=$db_list->GetNext())
{

   $arSelect = Array("ID", "NAME", "PREVIEW_PICTURE", "DETAIL_PAGE_URL");
   $arFilter = Array("IBLOCK_ID"=>8, "ACTIVE"=>"Y", "SECTION_ID" => $ar_result['ID']);
   $db_list2 = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, false, Array("nPageSize"=>8), $arSelect);   
   while($ar_result2 = $db_list2->GetNext())
   {
      //сам вывод
   }   
}


Если я правильно понял мануал, то количество элементов выбираемых из каждой категории задается в nPageSize"=>8, но вот как мне добавить пагинацию? т.е. что бы можно было вывести из каждого раздела сначала c первого по 8-й, потом с 9-го по 17-й и т.д.?
спросил 19 Фев, 14 от Snezhka (2,240 баллов)

3 Ответы

00 голосов
Код
$navString =  $db_list2->GetPageNavStringEx($navComponentObject, "подпись пагинатора", "шаблон пагинатора", "флаг показывать всегда");

echo $navString;



Код
Array("nPageSize"=>8, "iNumPage"=>"номер сраницы")) 


номер страницы например
Код
htmlspecialchars($_REQUEST["PAGEN_1"])
ответил 15 Июль, 14 от Poleolog (1,240 баллов)
00 голосов
Спасибо, а то тут ничего что-то нету %)
ответил 15 Ноя, 14 от Snezhka (2,240 баллов)
00 голосов
В довесок: При таком выводе пагинации наблюдается один "косяк".
Имеем мы допустим 22 новости, указываем в фильтре параметр "nPageSize"=>5, например, и ожидаем увидеть на выходе пять (!) страниц 1-5, 6-10, 11-15, 16-20, 21-22, но каким то странным образом мы получаем всего четыре страницы 1-5, 6-10, 11-15, 16-22, то есть на четвертой странице у нас 7 новостей. При том если то же самое делать через стандартный компонент (news, news.list) то все отображается как надо.

Вопрос: как это лечится?
ответил 12 Март, 15 от Blodrayne (220 баллов)

Похожие вопросы

0 голосов
1 ответ
спросил 09 Июнь, 16 от wagwan (120 баллов)
0 голосов
0 ответов
0 голосов
1 ответ
спросил 04 Сен, 13 от Snezhka (2,240 баллов)
0 голосов
1 ответ