%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/main/install/components/bitrix/system.pagenavigation/ |
Current File : //home/bitrix/www/bitrix/modules/main/install/components/bitrix/system.pagenavigation/component.php |
<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /** * @var array $arParams */ if (is_object($arParams["NAV_RESULT"]) && is_subclass_of($arParams["NAV_RESULT"], "CAllDBResult")) { $dbresult =& $arParams["NAV_RESULT"]; if(intval($dbresult->NavPageSize) <= 0) $dbresult->NavPageSize = 10; $arResult = Array(); $arResult["NavShowAlways"] = $arParams["SHOW_ALWAYS"]; $arResult["NavTitle"] = $arParams["NAV_TITLE"]; $arResult["NavRecordCount"] = $dbresult->NavRecordCount; $arResult["NavPageCount"] = $dbresult->NavPageCount; $arResult["NavPageNomer"] = $dbresult->NavPageNomer; $arResult["NavPageSize"] = $dbresult->NavPageSize; $arResult["bShowAll"] = $dbresult->bShowAll; $arResult["NavShowAll"] = $dbresult->NavShowAll; $arResult["NavNum"] = $dbresult->NavNum; $arResult["bDescPageNumbering"] = $dbresult->bDescPageNumbering; $arResult["add_anchor"] = $dbresult->add_anchor; $arResult["nPageWindow"] = $nPageWindow = $dbresult->nPageWindow; $arResult["bSavePage"] = (CPageOption::GetOptionString("main", "nav_page_in_session", "Y")=="Y"); if($arParams["BASE_LINK"] <> '') { if(($pos = strpos($arParams["BASE_LINK"], "?")) !== false) { $arResult["sUrlPath"] = substr($arParams["BASE_LINK"], 0, $pos); $arResult["NavQueryString"] = substr($arParams["BASE_LINK"], $pos+1); } else { $arResult["sUrlPath"] = $arParams["BASE_LINK"]; $arResult["NavQueryString"] = ""; } } else { $arResult["sUrlPath"] = GetPagePath(false, false); $delParam = array_merge( array( "PAGEN_".$dbresult->NavNum, "SIZEN_".$dbresult->NavNum, "SHOWALL_".$dbresult->NavNum, "PHPSESSID", ), \Bitrix\Main\HttpRequest::getSystemParameters() ); $arResult["NavQueryString"] = htmlspecialcharsbx(DeleteParam($delParam)); } $arResult['sUrlPathParams'] = $arResult['sUrlPath'].'?'.($arResult['NavQueryString'] <> ''? $arResult['NavQueryString'].'&' : ''); if ($dbresult->bDescPageNumbering === true) { if ($dbresult->NavPageNomer + floor($nPageWindow/2) >= $dbresult->NavPageCount) $nStartPage = $dbresult->NavPageCount; else { if ($dbresult->NavPageNomer + floor($nPageWindow/2) >= $nPageWindow) $nStartPage = $dbresult->NavPageNomer + floor($nPageWindow/2); else { if($dbresult->NavPageCount >= $nPageWindow) $nStartPage = $nPageWindow; else $nStartPage = $dbresult->NavPageCount; } } if ($nStartPage - $nPageWindow >= 0) $nEndPage = $nStartPage - $nPageWindow + 1; else $nEndPage = 1; } else { if ($dbresult->NavPageNomer > floor($nPageWindow/2) + 1 && $dbresult->NavPageCount > $nPageWindow) $nStartPage = $dbresult->NavPageNomer - floor($nPageWindow/2); else $nStartPage = 1; if ($dbresult->NavPageNomer <= $dbresult->NavPageCount - floor($nPageWindow/2) && $nStartPage + $nPageWindow-1 <= $dbresult->NavPageCount) $nEndPage = $nStartPage + $nPageWindow - 1; else { $nEndPage = $dbresult->NavPageCount; if($nEndPage - $nPageWindow + 1 >= 1) $nStartPage = $nEndPage - $nPageWindow + 1; } } $arResult["nStartPage"] = $dbresult->nStartPage = $nStartPage; $arResult["nEndPage"] = $dbresult->nEndPage = $nEndPage; if ($dbresult->bDescPageNumbering === true) { $makeweight = ($dbresult->NavRecordCount % $dbresult->NavPageSize); $NavFirstRecordShow = 0; if($dbresult->NavPageNomer != $dbresult->NavPageCount) $NavFirstRecordShow += $makeweight; $NavFirstRecordShow += ($dbresult->NavPageCount - $dbresult->NavPageNomer) * $dbresult->NavPageSize + 1; if ($dbresult->NavPageCount == 1) $NavLastRecordShow = $dbresult->NavRecordCount; else $NavLastRecordShow = $makeweight + ($dbresult->NavPageCount - $dbresult->NavPageNomer + 1) * $dbresult->NavPageSize; } else { $NavFirstRecordShow = ($dbresult->NavPageNomer-1)*$dbresult->NavPageSize+1; if ($dbresult->NavPageNomer != $dbresult->NavPageCount) $NavLastRecordShow = $dbresult->NavPageNomer * $dbresult->NavPageSize; else $NavLastRecordShow = $dbresult->NavRecordCount; } $arResult["NavFirstRecordShow"] = $NavFirstRecordShow; $arResult["NavLastRecordShow"] = $NavLastRecordShow; $this->IncludeComponentTemplate(); return $this; }