- Модуль: 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);
}