/** * 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; }