• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/comp_parameters.php
  • Класс: CIBlockParameters
  • Вызов: CIBlockParameters::AddPagerSettings
static function AddPagerSettings(&$arComponentParameters, $pager_title, $bDescNumbering=true, $bShowAllParam=false, $bBaseLink=false, $bBaseLinkEnabled=false)
{
	$arHiddenTemplates = array(
		'js' => true
	);
	if (!isset($arComponentParameters['GROUPS']))
		$arComponentParameters['GROUPS'] = array();
	$arComponentParameters["GROUPS"]["PAGER_SETTINGS"] = array(
		"NAME" => Loc::getMessage("T_IBLOCK_DESC_PAGER_SETTINGS"),
	);

	$arTemplateInfo = CComponentUtil::GetTemplatesList('bitrix:system.pagenavigation');
	if (empty($arTemplateInfo))
	{
		$arComponentParameters["PARAMETERS"]["PAGER_TEMPLATE"] = Array(
			"PARENT" => "PAGER_SETTINGS",
			"NAME" => Loc::getMessage("T_IBLOCK_DESC_PAGER_TEMPLATE"),
			"TYPE" => "STRING",
			"DEFAULT" => "",
		);
	}
	else
	{
		sortByColumn($arTemplateInfo, array('TEMPLATE' => SORT_ASC, 'NAME' => SORT_ASC));
		$arTemplateList = array();
		$arSiteTemplateList = array(
			'.default' => Loc::getMessage('T_IBLOCK_DESC_PAGER_TEMPLATE_SITE_DEFAULT')
		);
		$arTemplateID = array();
		foreach ($arTemplateInfo as &$template)
		{
			if ('' != $template["TEMPLATE"] && '.default' != $template["TEMPLATE"])
				$arTemplateID[] = $template["TEMPLATE"];
			if (!isset($template['TITLE']))
				$template['TITLE'] = $template['NAME'];
		}
		unset($template);

		if (!empty($arTemplateID))
		{
			$rsSiteTemplates = CSiteTemplate::GetList(
				array(),
				array("ID"=>$arTemplateID),
				array()
			);
			while ($arSitetemplate = $rsSiteTemplates->Fetch())
			{
				$arSiteTemplateList[$arSitetemplate['ID']] = $arSitetemplate['NAME'];
			}
		}

		foreach ($arTemplateInfo as &$template)
		{
			if (isset($arHiddenTemplates[$template['NAME']]))
				continue;
			$strDescr = $template["TITLE"].' ('.('' != $template["TEMPLATE"] && '' != $arSiteTemplateList[$template["TEMPLATE"]] ? $arSiteTemplateList[$template["TEMPLATE"]] : Loc::getMessage("T_IBLOCK_DESC_PAGER_TEMPLATE_SYSTEM")).')';
			$arTemplateList[$template['NAME']] = $strDescr;
		}
		unset($template);
		$arComponentParameters["PARAMETERS"]["PAGER_TEMPLATE"] = array(
			"PARENT" => "PAGER_SETTINGS",
			"NAME" => Loc::getMessage("T_IBLOCK_DESC_PAGER_TEMPLATE_EXT"),
			"TYPE" => "LIST",
			"VALUES" => $arTemplateList,
			"DEFAULT" => ".default",
			"ADDITIONAL_VALUES" => "Y"
		);
	}

	$arComponentParameters["PARAMETERS"]["DISPLAY_TOP_PAGER"] = Array(
		"PARENT" => "PAGER_SETTINGS",
		"NAME" => Loc::getMessage("T_IBLOCK_DESC_TOP_PAGER"),
		"TYPE" => "CHECKBOX",
		"DEFAULT" => "N",
	);
	$arComponentParameters["PARAMETERS"]["DISPLAY_BOTTOM_PAGER"] = Array(
		"PARENT" => "PAGER_SETTINGS",
		"NAME" => Loc::getMessage("T_IBLOCK_DESC_BOTTOM_PAGER"),
		"TYPE" => "CHECKBOX",
		"DEFAULT" => "Y",
	);
	$arComponentParameters["PARAMETERS"]["PAGER_TITLE"] = Array(
		"PARENT" => "PAGER_SETTINGS",
		"NAME" => Loc::getMessage("T_IBLOCK_DESC_PAGER_TITLE"),
		"TYPE" => "STRING",
		"DEFAULT" => $pager_title,
	);
	$arComponentParameters["PARAMETERS"]["PAGER_SHOW_ALWAYS"] = Array(
		"PARENT" => "PAGER_SETTINGS",
		"NAME" => Loc::getMessage("T_IBLOCK_DESC_PAGER_SHOW_ALWAYS"),
		"TYPE" => "CHECKBOX",
		"DEFAULT" => "N",
	);

	if($bDescNumbering)
	{
		$arComponentParameters["PARAMETERS"]["PAGER_DESC_NUMBERING"] = Array(
			"PARENT" => "PAGER_SETTINGS",
			"NAME" => Loc::getMessage("T_IBLOCK_DESC_PAGER_DESC_NUMBERING"),
			"TYPE" => "CHECKBOX",
			"DEFAULT" => "N",
		);
		$arComponentParameters["PARAMETERS"]["PAGER_DESC_NUMBERING_CACHE_TIME"] = Array(
			"PARENT" => "PAGER_SETTINGS",
			"NAME" => Loc::getMessage("T_IBLOCK_DESC_PAGER_DESC_NUMBERING_CACHE_TIME"),
			"TYPE" => "STRING",
			"DEFAULT" => "36000",
		);
	}

	if($bShowAllParam)
	{
		$arComponentParameters["PARAMETERS"]["PAGER_SHOW_ALL"] = Array(
			"PARENT" => "PAGER_SETTINGS",
			"NAME" => Loc::getMessage("T_IBLOCK_DESC_SHOW_ALL"),
			"TYPE" => "CHECKBOX",
			"DEFAULT" => "N"
		);
	}

	if($bBaseLink)
	{
		$arComponentParameters["PARAMETERS"]["PAGER_BASE_LINK_ENABLE"] = Array(
			"PARENT" => "PAGER_SETTINGS",
			"NAME" => Loc::getMessage("T_IBLOCK_DESC_BASE_LINK_ENABLE"),
			"TYPE" => "CHECKBOX",
			"REFRESH" => "Y",
			"DEFAULT" => "N",
		);
		if($bBaseLinkEnabled)
		{
			$arComponentParameters["PARAMETERS"]["PAGER_BASE_LINK"] = Array(
				"PARENT" => "PAGER_SETTINGS",
				"NAME" => Loc::getMessage("T_IBLOCK_DESC_BASE_LINK"),
				"TYPE" => "STRING",
				"DEFAULT" => ""
			);
			$arComponentParameters["PARAMETERS"]["PAGER_PARAMS_NAME"] = Array(
				"PARENT" => "PAGER_SETTINGS",
				"NAME" => Loc::getMessage("T_IBLOCK_DESC_PARAMS_NAME"),
				"TYPE" => "STRING",
				"DEFAULT" => "arrPager"
			);
		}
	}
}