• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/commentitem.php
  • Класс: CTaskCommentItem
  • Вызов: CTaskCommentItem::onEventFilter
static function onEventFilter($arParams, $arHandler)
{
	if ( ! isset($arHandler['EVENT_NAME']) )
	{
		$arHandler['EVENT_NAME'] = '$arHandler['EVENT_NAME'] is not set';
	}

	$commentId = 	(int) array_shift($arParams);
	$parameters = 	array_shift($arParams);
	$taskId =       intval($parameters['TASK_ID']);

	$arEventFields = array(
		'FIELDS_BEFORE'        => 'undefined',
		'FIELDS_AFTER'         => 'undefined',
		'IS_ACCESSIBLE_BEFORE' => 'undefined',
		'IS_ACCESSIBLE_AFTER'  => 'undefined'
	);

	CTaskAssert::assert($taskId >= 1);

	if(!$commentId)
	{
		return;
	}

	switch(mb_strtolower($arHandler['EVENT_NAME']))
	{
		case 'ontaskcommentadd':
			$arEventFields['FIELDS_AFTER'] = array('ID' => $commentId, 'TASK_ID' => $taskId);
			$arEventFields['IS_ACCESSIBLE_BEFORE'] = 'N';
			break;

		case 'ontaskcommentupdate':
			$arEventFields['FIELDS_BEFORE'] = array('ID' => $commentId, 'TASK_ID' => $taskId);
			$arEventFields['FIELDS_AFTER'] = array('ID' => $commentId, 'TASK_ID' => $taskId, 'ACTION' => 'EDIT');
			break;

		case 'ontaskcommentdelete':
			$arEventFields['FIELDS_BEFORE'] = array('ID' => $commentId, 'TASK_ID' => $taskId);
			$arEventFields['FIELDS_AFTER'] = array('ID' => $commentId, 'TASK_ID' => $taskId, 'ACTION' => 'DEL');
			break;

		default:
			throw new Exception(
				'tasks' RPC event handler: onEventFilter: '
				.'not allowed $arHandler['EVENT_NAME']: '
				.$arHandler['EVENT_NAME']
			);
			break;
	}

	return ($arEventFields);
}