• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/hook/page/settings.php
  • Класс: BitrixLandingHookPageSettings
  • Вызов: Settings::getMap
protected function getMap()
{
	$fields = array();

	// set iblock_id to the map
	if (!Manager::isB24() && !Manager::isExtendedSMN())
	{
		$catalogs = array(
			'' => ''
		);
		$allowedCatalogs = array();
		$catalogIncluded = Loader::includeModule('catalog');

		if ($catalogIncluded)
		{
			$iterator = BitrixCatalogCatalogIblockTable::getList(array(
				'select' => array(
					'IBLOCK_ID', 'PRODUCT_IBLOCK_ID'
				)
			));
			while ($row = $iterator->fetch())
			{
				$row['IBLOCK_ID'] = (int)$row['IBLOCK_ID'];
				$row['PRODUCT_IBLOCK_ID'] = (int)$row['PRODUCT_IBLOCK_ID'];
				if ($row['PRODUCT_IBLOCK_ID'] > 0)
				{
					$allowedCatalogs[$row['PRODUCT_IBLOCK_ID']] = true;
				}
				else
				{
					$allowedCatalogs[$row['IBLOCK_ID']] = true;
				}
			}
			unset($row, $iterator);
		}
		if (Loader::includeModule('iblock'))
		{
			$res = CIblock::getList(
				[],
				[
					'SITE_ID' => Manager::getMainSiteId()
				]
			);
		}
		if (isset($res))
		{
			while ($row = $res->fetch())
			{
				$row['ID'] = (int)$row['ID'];
				if ($catalogIncluded && !isset($allowedCatalogs[$row['ID']]))
				{
					continue;
				}
				$catalogs[$row['ID']] = '[' . $row['ID'] . '] ' . $row['NAME'];
			}
		}
		$fields['IBLOCK_ID'] = self::getFieldByType(
			'LIST',
			'IBLOCK_ID',
			array(
				'NAME' => Loc::getMessage('LANDING_HOOK_SETTINGS_IBLOCK_ID'),
				'VALUES' => $catalogs
			)
		);
		unset($allowedCatalogs);
	}

	foreach (self::getComponentsParams() as $code => $params)
	{
		if (!isset($fields[$code]))
		{
			$fields[$code] = self::getFieldByType(
				$params['TYPE'],
				$code,
				$params
			);
		}
	}

	$fields['AGREEMENT_USE'] = self::getFieldByType(
		'CHECKBOX', 'AGREEMENT_USE'
	);
	$fields['AGREEMENT_ID'] = self::getFieldByType(
		null, 'AGREEMENT_ID'
	);

	// cart position
	$positions = array_fill_keys(
		['TC', 'TR', 'CR', 'BR', 'BC', 'BL', 'CL', 'TL'],
		''
	);
	foreach ($positions as $key => $val)
	{
		$positions[$key] = Loc::getMessage('LANDING_HOOK_SETTINGS_CART_POSITION_' . $key);
	}
	$fields['CART_POSITION'] = self::getFieldByType(
		'LIST',
		'CART_POSITION',
		array(
			'NAME' => Loc::getMessage('LANDING_HOOK_SETTINGS_CART_POSITION'),
			'VALUES' => $positions
		)
	);
	unset($positions, $key, $val);

	return $fields;
}