• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/wizard_site.php
  • Класс: CWizard
  • Вызов: CWizard::GetStructure
function GetStructure($arFilter = Array())
{
	$arResult = Array();

	if (!isset($this->arStructure["STRUCTURE"]) || !is_array($this->arStructure["STRUCTURE"]))
		return $arResult;

	$serviceID = (array_key_exists("SERVICE_ID", $arFilter) ? $arFilter["SERVICE_ID"] : null);
	$siteID = (array_key_exists("SITE_ID", $arFilter) ? $arFilter["SITE_ID"] : null);

	if (empty($arFilter) || ($serviceID == null && $siteID == null))
		return $this->arStructure["STRUCTURE"];

	if (!is_array($serviceID) && $serviceID !== null)
		$serviceID = Array($serviceID);

	if (!is_array($siteID) && $siteID !== null)
		$siteID = Array($siteID);

	foreach ($this->arStructure["STRUCTURE"] as $pageID => $arPage)
	{
		if (array_key_exists("SERVICE_ID",$arPage) && $serviceID !== null)
		{
			$result = array_intersect(!is_array($arPage["SERVICE_ID"]) ? Array($arPage["SERVICE_ID"]) : $arPage["SERVICE_ID"], $serviceID);
			if (!empty($result))
			{
				$arResult[$pageID] = $arPage;
				continue;
			}
		}

		if (array_key_exists("SITE_ID",$arPage) && $siteID !== null)
		{
			$result = array_intersect(!is_array($arPage["SITE_ID"]) ? Array($arPage["SITE_ID"]) : $arPage["SITE_ID"], $siteID);
			if (!empty($result))
			{
				$arResult[$pageID] = $arPage;
				continue;
			}
		}
	}

	return $arResult;
}