• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskfiles.php
  • Класс: CTaskFiles
  • Вызов: CTaskFiles::Add
public function Add($arFields, $arParams = array())
{
	/**
	 * @global CDatabase $DB
	 */
	global $DB;

	$userId = null;

	$bCheckRightsOnFiles = false;

	if (is_array($arParams))
	{
		if (isset($arParams['USER_ID']) && ($arParams['USER_ID'] > 0))
			$userId = (int) $arParams['USER_ID'];

		if (isset($arParams['CHECK_RIGHTS_ON_FILES']))
		{
			if ( ! in_array(
					$arParams['CHECK_RIGHTS_ON_FILES'],
					array(true, false, 'Y', 'N'),
					true
			))
			{
				throw new Exception();
			}

			if (
				($arParams['CHECK_RIGHTS_ON_FILES'] === false)
				|| ($arParams['CHECK_RIGHTS_ON_FILES'] === 'N')
			)
			{
				$bCheckRightsOnFiles = false;
			}
			else
				$bCheckRightsOnFiles = true;
		}
	}

	if ($userId === null)
	{
		$userId = User::getId();
		if(!$userId)
		{
			$userId = User::getAdminId();
		}
	}

	if ($this->CheckFields($arFields))
	{
		if ($bCheckRightsOnFiles)
		{
			if ( ! self::isFileAccessibleByUser( (int) $arFields['FILE_ID'], $userId) )
			{
				/**
				 * @global CMain $APPLICATION
				 */
				global $APPLICATION;
				$e = new CAdminException(array(array('text' => GetMessage('TASKS_BAD_FILE_ID_EX'), 'id' => 'ERROR_TASKS_BAD_FILE_ID_EX')));
				$APPLICATION->ThrowException($e);
				return false;
			}
		}

		$arFields["ID"] = 1;
		$ID = $DB->Add("b_tasks_file", $arFields, Array(), "tasks");

		// Mark that attached files is not temporary now, but permament (if it was temporary)
		if (self::isTemporaryFileRegistered($userId, $arFields['FILE_ID']))
			self::unregisterTemporaryFiles(array($arFields['FILE_ID']));

		return $ID;
	}

	return false;
}