- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/manager/task/template.php
- Класс: Bitrix\Tasks\Manager\Task\Template
- Вызов: Template::getList
static function getList($userId, array $listParameters = [], array $parameters = []) { $userId = (int) $userId; $errors = static::ensureHaveErrorCollection($parameters); // todo: get rid of LIST_PARAMETERS, if can. Move limit, filter, sort, etc.. to the first level if (array_key_exists('NAV_PARAMS', $listParameters) && !empty($listParameters['NAV_PARAMS'])) { $params = ['NAV_PARAMS' => $listParameters['NAV_PARAMS']]; } else { $navParams = static::prepareNav( ($listParameters['limit'] ?? null), ($listParameters['offset'] ?? null), ($parameters['PUBLIC_MODE'] ?? null) ); $params = false; if (!empty($navParams)) { $params = array('NAV_PARAMS' => $navParams); } } if ( array_key_exists('SORTING', (array)($listParameters['order'] ?? null)) && array_key_exists('GROUP_ID', ($listParameters['legacyFilter'] ?? null)) ) { // need for sorting in group $params['SORTING_GROUP_ID'] = $listParameters['legacyFilter']['GROUP_ID']; } // an exception about sql error may fall here $res = \CTaskTemplates::GetList( ($listParameters['order'] ?? null), ($listParameters['filter'] ?? null), $params, [ 'USER_ID' => $userId, // check permissions for current user 'USER_IS_ADMIN' => SocialNetwork\User::isAdmin(), ], ($listParameters['select'] ?? null) ); $accessController = new TemplateAccessController((int) $userId); $items = []; while ($row = $res->Fetch()) { $templateId = (int) $row['ID']; $templateModel = TemplateModel::createFromId($templateId); $accessRequest = [ ActionDictionary::ACTION_TEMPLATE_READ => null, ActionDictionary::ACTION_TEMPLATE_CREATE => null, ActionDictionary::ACTION_TEMPLATE_REMOVE => null, ActionDictionary::ACTION_TEMPLATE_EDIT => null, ]; $row['ACCOMPLICES'] = unserialize($row['ACCOMPLICES'], ['allowed_classes' => false]); $row['AUDITORS'] = unserialize($row['AUDITORS'], ['allowed_classes' => false]); $row['RESPONSIBLES'] = unserialize($row['RESPONSIBLES'], ['allowed_classes' => false]); $row['TAGS'] = unserialize(($row['TAGS'] ?? ''), ['allowed_classes' => false]); $row['DEPENDS_ON'] = unserialize(($row['DEPENDS_ON'] ?? ''), ['allowed_classes' => false]); $row['REPLICATE_PARAMS'] = unserialize(($row['REPLICATE_PARAMS'] ?? ''), ['allowed_classes' => false]); $row['ALLOWED_ACTIONS'] = $accessController->batchCheck($accessRequest, $templateModel); $items[$templateId] = $row; } $childCounts = \Bitrix\Tasks\Internals\Helper\Task\Template\Dependence::getDirectChildCount( array_keys($items), array( 'USER_ID' => $userId ) ); foreach ($childCounts as $itemId => $count) { $items[$itemId]['CHILDS_COUNT'] = (int) $count; } return [ 'DATA' => $items, 'ERRORS' => $errors, 'OBJ_RES' => $res ]; }