• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/component_util.php
  • Класс: CComponentUtil
  • Вызов: CComponentUtil::PrepareVariables
static function PrepareVariables(&$arData)
{
	unset($arData["NEW_COMPONENT_TEMPLATE"]);

	if ($arData["SEF_MODE"] == "Y")
	{
		unset($arData["VARIABLE_ALIASES"]);
		unset($arData["SEF_URL_TEMPLATES"]);

		foreach ($arData as $dataKey => $dataValue)
		{
			if (mb_substr($dataKey, 0, mb_strlen("SEF_URL_TEMPLATES_")) == "SEF_URL_TEMPLATES_")
			{
				$arData["SEF_URL_TEMPLATES"][mb_substr($dataKey, mb_strlen("SEF_URL_TEMPLATES_"))] = $dataValue;
				unset($arData[$dataKey]);

				if (preg_match_all("'(\?|&)(.+?)=#([^#]+?)#'is", $dataValue, $arMatches, PREG_SET_ORDER))
				{
					foreach ($arMatches as $arMatch)
						$arData["VARIABLE_ALIASES"][mb_substr($dataKey, mb_strlen("SEF_URL_TEMPLATES_"))][$arMatch[3]] = $arMatch[2];
				}
			}
			elseif (mb_substr($dataKey, 0, mb_strlen("VARIABLE_ALIASES_")) == "VARIABLE_ALIASES_")
			{
				unset($arData[$dataKey]);
			}
		}
	}
	else
	{
		unset($arData["VARIABLE_ALIASES"]);
		unset($arData["SEF_URL_TEMPLATES"]);

		foreach ($arData as $dataKey => $dataValue)
		{
			if (mb_substr($dataKey, 0, mb_strlen("SEF_URL_TEMPLATES_")) == "SEF_URL_TEMPLATES_")
			{
				unset($arData[$dataKey]);
			}
			elseif (mb_substr($dataKey, 0, mb_strlen("VARIABLE_ALIASES_")) == "VARIABLE_ALIASES_")
			{
				$arData["VARIABLE_ALIASES"][mb_substr($dataKey, mb_strlen("VARIABLE_ALIASES_"))] = $dataValue;
				unset($arData[$dataKey]);
			}
		}
	}
}