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