• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/component_ajax.php
  • Класс: CComponentAjax
  • Вызов: CComponentAjax::_PrepareAdditionalData
function _PrepareAdditionalData()
{
	/** @global CMain $APPLICATION */
	global $APPLICATION;

	// get CSS changes list
	if ($this->bStyle)
	{
		$arCSSList = $APPLICATION->sPath2css;
		$cnt_old = count($this->arCSSList);
		$cnt_new = count($arCSSList);
		$arCSSNew = array();

		if ($cnt_old != $cnt_new)
			for ($i = $cnt_old; $i<$cnt_new; $i++)
			{
				$css_path = $arCSSList[$i];
				if(mb_strtolower(mb_substr($css_path, 0, 7)) != 'http://' && mb_strtolower(mb_substr($css_path, 0, 8)) != 'https://')
				{
					if(($p = mb_strpos($css_path, "?"))>0)
						$css_file = mb_substr($css_path, 0, $p);
					else
						$css_file = $css_path;

					if(file_exists($_SERVER["DOCUMENT_ROOT"].$css_file))
						$arCSSNew[] = $arCSSList[$i];
				}
				else
					$arCSSNew[] = $arCSSList[$i];
			}
	}

	// get scripts changes list
	$arHeadScripts = $APPLICATION->arHeadScripts;

	$cnt_old = count($this->arHeadScripts);
	$cnt_new = count($arHeadScripts);
	$arHeadScriptsNew = array();


	if ($cnt_old != $cnt_new)
		for ($i = $cnt_old; $i<$cnt_new; $i++)
			$arHeadScriptsNew[] = $arHeadScripts[$i];

	if(!$APPLICATION->oAsset->optimizeJs())
	{
		$arHeadScriptsNew = array_merge(CJSCore::GetScriptsList(), $arHeadScriptsNew);
	}

	// prepare additional data
	$arAdditionalData = array();
	$arAdditionalData['TITLE'] = htmlspecialcharsback($APPLICATION->GetTitle());
	$arAdditionalData['WINDOW_TITLE'] = htmlspecialcharsback($APPLICATION->GetTitle('title'));

	$arAdditionalData['SCRIPTS'] = array();
	$arHeadScriptsNew = array_unique($arHeadScriptsNew);

	foreach($arHeadScriptsNew as $script)
	{
		$arAdditionalData['SCRIPTS'][] = CUtil::GetAdditionalFileURL($script);
	}

	if (null !== $this->__nav_params)
	{
		$arAdditionalData['NAV_CHAIN'] = $APPLICATION->GetNavChain($this->__nav_params[0], $this->__nav_params[1], $this->__nav_params[2], $this->__nav_params[3], $this->__nav_params[4]);
	}

	if ($this->bStyle)
	{
		$arAdditionalData["CSS"] = array();
		/** @noinspection PhpUndefinedVariableInspection */
		$arCSSNew = array_unique($arCSSNew);
		foreach($arCSSNew as $style)
		{
			$arAdditionalData['CSS'][] = CUtil::GetAdditionalFileURL($style);
		}
	}

	$additional_data = '';

	return $additional_data;
}