- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/search/searchaction.php
- Класс: BitrixMainSearchSearchAction
- Вызов: SearchAction::run
public function run($searchQuery, array $options = null, PageNavigation $pageNavigation = null)
{
$searchQuery = $this->prepareSearchQuery($searchQuery);
if (!$searchQuery)
{
return [
'items' => [],
'limits' => [],
];
}
$resultItems = $this->provideData($searchQuery, $options, $pageNavigation);
if (!is_array($resultItems) && !($resultItems instanceof Traversable))
{
throw new ArgumentTypeException('The method ::provideData() has to return iterable data');
}
foreach ($resultItems as $item)
{
$this->adjustResultItem($item);
}
$limits = $this->provideLimits($searchQuery, $options);
if (!is_array($limits) && !($limits instanceof Traversable))
{
throw new ArgumentTypeException('The method ::provideLimits() has to return iterable data');
}
return [
'items' => $resultItems,
'limits' => $limits,
];
}