Exemple #1
0
 public static function getList($userId, array $parameters)
 {
     $data = array();
     $can = array();
     $aux = array('GROUP_IDS' => array(), 'USER_IDS' => array());
     $errors = static::ensureHaveErrorCollection($parameters);
     $navParams = static::prepareNav(isset($parameters['LIST_PARAMETERS']['limit']) ? $parameters['LIST_PARAMETERS']['limit'] : false, isset($parameters['LIST_PARAMETERS']['offset']) ? $parameters['LIST_PARAMETERS']['offset'] : false, $parameters['PUBLIC_MODE']);
     $params = false;
     if (!empty($navParams)) {
         $params = array('NAV_PARAMS' => $navParams);
     }
     // an exception about sql error may fall here
     // dont use CTaskItem::fetchList() here, its slower than the following
     list($items, $res) = \CTaskItem::fetchListArray($userId, $parameters['LIST_PARAMETERS']['order'], $parameters['LIST_PARAMETERS']['legacyFilter'], $params, $parameters['LIST_PARAMETERS']['select']);
     if (is_array($items)) {
         foreach ($items as $taskData) {
             if ((int) $taskData['GROUP_ID']) {
                 $aux['GROUP_IDS'][(int) $taskData['GROUP_ID']] = true;
             }
             $data[$taskData['ID']] = $taskData;
             $can[$taskData['ID']]['ACTION'] = static::translateAllowedActionNames(\CTaskItem::getAllowedActionsArray($userId, $taskData, true));
         }
     }
     $aux['GROUP_IDS'] = array_keys($aux['GROUP_IDS']);
     $aux['OBJ_RES'] = $res;
     static::injectTimemanFields($userId, $parameters, $data, $can);
     return array('DATA' => $data, 'CAN' => $can, 'ERRORS' => $errors, 'AUX' => $aux);
 }