Документация для разработчиков

GetPageNavStringEx

CMain::GetPageNavStringEx(
 navComponentObject,
 navigationTitle, 
 templateName = "",
 showAlways=false,
 parentComponent=nul
componentParams
 )

Возвращает панель постраничной навигации в 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;


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Дмитрий Карих
bDescPageNumbering: флаг определяющий порядок навигации, обратная или прямая.
2
Игорь Шевчик
Есть еще один интересный параметр
Код
$rsElements->add_anchor = '#anchor';


В шаблоне можно вывести якорь
Код
<?=$arResult["add_anchor"]?>
0
Алексей Казаков
Если на странице выводятся две выборки, например, по инфоблокам (3 компонента) и при этом постраничный контент для каждого блока загружается отдельно Аяксом, то возникает проблема с переменной PAGEN_(N), где (N) - номер постраничной навигации на общей странице. В первом случае это, ну скажем, - 3 (третий компонент на странице), а в частном случае - это 1 (первый и единственный компонент на отдельной странице).

Для решения этой задачи можно модифицировать глобальную переменную $GLOBALS["NavNum"]. Как один из вариантов, при условии что AJAX подгружается методом POST и на странице 2 компонента, в файле с вызовом второго компонента пишем:

Код
if ($_SERVER['REQUEST_METHOD'] == "POST") {
   $GLOBALS["NavNum"]++;
}
4
Максим Месилов
Одноимённый метод реализован в возвращемом методом CIBlockElement::GetList объекте типа CIBlockResult

Сам метод описан в \bitrix\modules\main\classes\general\database.php 870 - 894

Происходит вызов компонента постраничной навигации (bitrix:system.pagenavigation), которому передаются аргументы метода. Шаблон используется дефолтный.

Вывод буферизируется и возвращается.
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх