Example #1
0
 /**
  * Get task data (read from DB on demand)
  */
 public function getData($returnEscapedData = true, array $parameters = array())
 {
     // Preload data, if it isn't in cache
     if ($this->arTaskData === null) {
         $this->markCacheAsDirty();
         // Load task data
         $bCheckPermissions = true;
         $arParams = array('USER_ID' => $this->executiveUserId, 'returnAsArray' => true, 'bSkipExtraData' => true);
         /** @noinspection PhpDeprecationInspection */
         $arTask = CTasks::getById($this->taskId, $bCheckPermissions, $arParams);
         if (!(is_array($arTask) && isset($arTask['ID']))) {
             $this->throwExceptionNotAccessible();
         }
         $this->arTaskData = $arTask;
     }
     $returnData = array();
     if ($returnEscapedData) {
         // Prepare escaped data on-demand
         if ($this->arTaskDataEscaped === null) {
             foreach ($this->arTaskData as $field => $value) {
                 $this->arTaskDataEscaped['~' . $field] = $value;
                 if ($field === 'DESCRIPTION') {
                     $this->arTaskDataEscaped[$field] = $this->getDescription();
                 } elseif (is_numeric($value) || !is_string($value)) {
                     $this->arTaskDataEscaped[$field] = $value;
                 } else {
                     $this->arTaskDataEscaped[$field] = htmlspecialcharsex($value);
                 }
             }
         }
         $returnData = $this->arTaskDataEscaped;
     } else {
         $returnData = $this->arTaskData;
     }
     return $returnData;
 }