• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskcomments.php
  • Класс: CTaskComments
  • Вызов: CTaskComments::Remove
static function Remove($taskId, $commentId, $userId, $arParams)
{
	global $DB;

	if (self::CanRemoveComment($taskId, $commentId, $userId, $arParams) !== true)
		throw new TasksException('', TasksException::TE_ACCESS_DENIED);

	$strErrorMessage = $strOKMessage = '';
	$result = ForumDeleteMessage($commentId, $strErrorMessage, $strOKMessage, array('PERMISSION' => 'Y'));

	if($result)
	{
		if (CModule::IncludeModule("socialnetwork"))
		{
			try
			{
				$oTask = CTaskItem::getInstance($taskId, CTasksTools::GetCommanderInChief());
				$arTask = $oTask->getData();
			}
			catch (TasksException $e)
			{
				throw new TasksException('', TasksException::TE_ACTION_FAILED_TO_BE_PROCESSED);
			}

			$bCrmTask = (
				isset($arTask["UF_CRM_TASK"])
				&& (
					(
						is_array($arTask["UF_CRM_TASK"])
						&& (
							isset($arTask["UF_CRM_TASK"][0])
							&& $arTask["UF_CRM_TASK"][0] <> ''
						)
					)
					||
					(
						!is_array($arTask["UF_CRM_TASK"])
						&& $arTask["UF_CRM_TASK"] <> ''
					)
				)
			);

			$dbRes = CSocNetLogComments::GetList(
				array(),
				array(
					'EVENT_ID'	=> ($bCrmTask ? array('crm_activity_add_comment') : array('tasks_comment')),
					'SOURCE_ID' => $commentId
				),
				false,
				false,
				array('ID')
			);

			if ($arRes = $dbRes->Fetch())
			{
				CSocNetLogComments::Delete($arRes['ID']);
			}
		}

		$occurAsUserId = CTasksTools::getOccurAsUserId();
		if ( ! $occurAsUserId )
			$occurAsUserId = ($userId ? $userId : 1);

		// Tasks log
		$arLogFields = array(
			'TASK_ID'       =>  $taskId,
			'USER_ID'       =>  $occurAsUserId,
			'~CREATED_DATE' =>  $DB->CurrentTimeFunction(),
			'FIELD'         => 'COMMENT_REMOVE'
		);

		$log = new CTaskLog();
		$log->Add($arLogFields);

	}

	return $result;
}