• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/main.php
  • Класс: CAllMain
  • Вызов: CAllMain::_mkchain
public function _mkchain($arChain, $strChainTemplate, $bIncludeOnce=false, $bShowIcons = true)
{
	$strChain = $sChainProlog = $sChainEpilog = "";
	if(file_exists($strChainTemplate))
	{
		$ITEM_COUNT = count($arChain);
		$arCHAIN = $arChain;
		$arCHAIN_LINK = &$arChain;
		$arResult = &$arChain; // for component 2.0
		if($bIncludeOnce)
		{
			$strChain = include($strChainTemplate);
		}
		else
		{
			foreach($arChain as $i => $arChainItem)
			{
				$ITEM_INDEX = $i;
				$TITLE = $arChainItem["TITLE"];
				$LINK = $arChainItem["LINK"];
				$sChainBody = "";
				include($strChainTemplate);
				$strChain .= $sChainBody;
				if($i==0)
					$strChain = $sChainProlog . $strChain;
			}
			if(!empty($arChain))
				$strChain .= $sChainEpilog;
		}
	}

	/** @global CMain $APPLICATION */
	global $USER;
	if($this->GetShowIncludeAreas() && $USER->CanDoOperation('edit_php') && $bShowIcons)
	{
		$site = CSite::GetSiteByFullPath($strChainTemplate);
		$DOC_ROOT = CSite::GetSiteDocRoot($site);

		if(mb_strpos($strChainTemplate, $DOC_ROOT) === 0)
		{
			$path = mb_substr($strChainTemplate, mb_strlen($DOC_ROOT));

			$templ_perm = $this->GetFileAccessPermission($path);
			if((!defined("ADMIN_SECTION") || ADMIN_SECTION!==true) && $templ_perm>="W")
			{
				$arIcons = array();
				$arIcons[] = array(
					"URL"=>"/bitrix/admin/fileman_file_edit.php?lang=".LANGUAGE_ID."&site=".$site."&back_url=".urlencode($_SERVER["REQUEST_URI"])."&full_src=Y&path=".urlencode($path),
					"ICON"=>"nav-template",
					"TITLE"=>GetMessage("MAIN_INC_ED_NAV")
				);

				$strChain = $this->IncludeString($strChain, $arIcons);
			}
		}
	}
	return $strChain;
}