GetPageNavStringEx
Описание и параметры
CMain::GetPageNavStringEx( navComponentObject, navigationTitle, templateName = "", showAlways=false, parentComponent=null, componentParams = array() )
Возвращает панель постраничной навигации в HTML виде. Формирует ее на основе параметров. Нестатический метод.
Параметры
Параметр | Описание | С версии |
---|---|---|
navComponentObject | Использовать обратную навигацию | |
navigationTitle | Название категорий | |
templateName | Название шаблона | |
showAlways | Выводить всегда | |
parentComponent | Время кеширования страниц для обратной навигации | 12.5.7 |
componentParams | Используется для подмены массива $arParams для компонента system.pagenavigation на основе которого работает метод. Например если делаем выборку результата по ajax с полученим на выходе пагинацию для той страницы, с которой уходил $_POST:
$res = CIBlockElement::GetList(Array("SORT"=>"ASC", "ID"=>"ASC"), $_POST["myFilter"], false, $arNavStartParams, $arSelect); $res->NAV_STRING = $res->GetPageNavStringEx($navComponentObject, "", "qp_korm", true, null, array("BASE_LINK"=>$_SERVER["HTTP_REFERER"]); | 15.5.0 |
Примеры использования
CModule::IncludeModule('iblock'); $arSort = array(); $arFilter = array('IBLOCK_ID'=> '1'); $arNavParams = array( "nPageSize" => '2', "bDescPageNumbering" => 'Описание', "bShowAll" => 'Y', ); $arSelect = array("ID", "NAME"); $rsElement = CIBlockElement::GetList($arSort, $arFilter, false, $arNavParams, $arSelect); $NAV_STRING = $rsElement->GetPageNavStringEx($navComponentObject, 'Заголовок', '', 'Y'); echo $NAV_STRING."
"; while($arElem = $rsElement->Fetch()) { echo $arElem['ID']."__".$arElem["NAME"]."
"; } echo $NAV_STRING;
Пример использования в компонентах 2.0
$rsElements = CIBlockElement::GetList($arSort, $arFilter, false, array("nPageSize" => $arParams["PAGE_COUNT"], "bShowAll" => false), $arSelect); .... $arResult["NAV_STRING"] = $rsElements->GetPageNavStringEx($navComponentObject, "", $arParams["PAGER_TEMPLATE"]);
Теперь в $arResult["NAV_STRING"] у нас полная постраничная навигация, обернутая в шаблон $arParams["PAGER_TEMPLATE"]. Если $arParams["PAGER_TEMPLATE"] пуст, то берется .default.
Иногда надо чтобы не выводилось много страниц (1....11, 12, 13, 14, 15, 16, 17...100) а, например 3 (1....14, 15, 16...100).
В примере выше перед вызовом GetPageNavStringEx надо поставить:
$rsElements->nPageWindow = 3;
Дмитрий Карих
|
bDescPageNumbering: флаг определяющий порядок навигации, обратная или прямая.
|
Игорь Шевчик
|
||||
Есть еще один интересный параметр
В шаблоне можно вывести якорь
| ||||
Алексей Казаков
|
||
Если на странице выводятся две выборки, например, по инфоблокам (3 компонента) и при этом постраничный контент для каждого блока загружается отдельно Аяксом, то возникает проблема с переменной PAGEN_(N), где (N) - номер постраничной навигации на общей странице. В первом случае это, ну скажем, - 3 (третий компонент на странице), а в частном случае - это 1 (первый и единственный компонент на отдельной странице).
Для решения этой задачи можно модифицировать глобальную переменную $GLOBALS["NavNum"]. Как один из вариантов, при условии что AJAX подгружается методом POST и на странице 2 компонента, в файле с вызовом второго компонента пишем:
| ||
Максим Месилов
|
Одноимённый метод реализован в возвращемом методом CIBlockElement::GetList объекте типа CIBlockResult
Сам метод описан в \bitrix\modules\main\classes\general\database.php 870 - 894 Происходит вызов компонента постраничной навигации (bitrix:system.pagenavigation), которому передаются аргументы метода. Шаблон используется дефолтный. Вывод буферизируется и возвращается. |
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.