• Модуль: tasksmobile
  • Путь к файлу: ~/bitrix/modules/tasksmobile/lib/Controller/Project.php
  • Класс: BitrixTasksMobileControllerProject
  • Вызов: Project::listAction
public function listAction(
	array $filter = [],
	array $select = [],
	array $order = [],
	array $params = [],
	PageNavigation $pageNavigation = null
): ?ResponseDataTypePage
{
	$projects = [];

	$provider = new Provider(CurrentUser::get()->getId(), $params['mode']);

	$query = $provider->getPrimaryProjectsQuery($select);
	$query = $provider->getQueryWithFilter($query, $filter, ($params['siftThroughFilter']['presetId'] ?? ''));
	$query
		->setOrder($order)
		->setOffset($pageNavigation->getOffset())
		->setLimit($pageNavigation->getLimit())
		->countTotal(true)
	;
	$res = $query->exec();
	while ($project = $res->fetch())
	{
		$projects[$project['ID']] = $project;
	}

	if (!empty($projects))
	{
		$projects = $provider->fillIsExtranet($projects);
		$projects = $provider->fillActions($projects);
		$projects = $provider->fillTabsData($projects);
		$projects = $provider->fillAvatars($projects);
		$projects = $provider->fillMembers($projects);
		$projects = $provider->fillCounters($projects);

		$projects = $this->convertKeysToCamelCase($projects);
	}

	return new ResponseDataTypePage('projects', array_values($projects), $res->getCount());
}