• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/source/selector.php
  • Класс: BitrixLandingSourceSelector
  • Вызов: Selector::initSourceList
protected function initSourceList()
{
	if ($this->sourceList !== null)
	{
		return;
	}
	$this->sourceList = [];

	$event = new MainEvent(
		'landing',
		$this->config['SOURCE_EVENT_ID'],
		[
			'SELECTOR' => $this,
			'RESTRICTIONS' => $this->restrictions // TODO: remove this key after stable socialnetwork update
		]
	);
	$event->send();
	$resultList = $event->getResults();
	if (!empty($resultList))
	{
		foreach ($resultList as $eventResult)
		{
			if ($eventResult->getType() != MainEventResult::SUCCESS)
			{
				continue;
			}
			$module = (string)$eventResult->getModuleId();
			$list = $eventResult->getParameters();
			if (empty($list) || !is_array($list))
			{
				continue;
			}
			foreach ($list as $row)
			{
				$source = $this->prepareSourceParameters(
					$module,
					$row
				);
				if (empty($source))
				{
					continue;
				}
				$this->sourceList[$source['INDEX']] = $source;
			}
		}
		unset($source, $row, $list, $module);
		unset($eventResult, $resultList);

		if (!empty($this->sourceList))
		{
			MainTypeCollection::sortByColumn(
				$this->sourceList,
				['TYPE' => SORT_ASC, 'TITLE' => SORT_ASC],
				'',
				null,
				true
			);
		}
	}
	unset($event);
}