- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/provider/templateprovider.php
- Класс: BitrixTasksProviderTemplateProvider
- Вызов: TemplateProvider::getList
public function getList($arOrder = [], $arFilter = [], $arSelect = [], $arParams = [], $arNavParams = []): CDBResult
{
$this->configure($arOrder, $arFilter, $arSelect, $arParams, $arNavParams);
$this
->makeUserFields()
->makeArSqlSearch()
->makeArFields()
->makeArSelect()
->makeFrom()
->makeOrder()
->makeSelect()
->makeAccessSql()
->makeWhere();
$query = $this->buildQuery();
$result = $this->executeQuery($query);
$rows = [];
while ($row = $result->Fetch())
{
$rows[] = $row;
}
if (empty($rows))
{
return $result;
}
$templateIds = array_column($rows, 'ID');
$members = $this->getMembers($templateIds);
foreach ($rows as $k => $row)
{
$row['RESPONSIBLES'] = (isset($members[$row['ID']][MemberTable::MEMBER_TYPE_RESPONSIBLE]))
? serialize($members[$row['ID']][MemberTable::MEMBER_TYPE_RESPONSIBLE])
: serialize([]);
$row['ACCOMPLICES'] = (isset($members[$row['ID']][MemberTable::MEMBER_TYPE_ACCOMPLICE]))
? serialize($members[$row['ID']][MemberTable::MEMBER_TYPE_ACCOMPLICE])
: serialize([]);
$row['AUDITORS'] = (isset($members[$row['ID']][MemberTable::MEMBER_TYPE_AUDITOR]))
? serialize($members[$row['ID']][MemberTable::MEMBER_TYPE_AUDITOR])
: serialize([]);
$rows[$k] = $row;
}
$cdbResult = new CDBResult($result);
$cdbResult->InitFromArray($rows);
return $cdbResult;
}