• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasknotifications.php
  • Класс: CTaskNotifications
  • Вызов: CTaskNotifications::sendExpiredSoonMessageForAccomplices
static function sendExpiredSoonMessageForAccomplices(array $taskData, array $parameters): void
{
	$createdBy = (int)$taskData['CREATED_BY'];
	$responsibleId = (int)$taskData['RESPONSIBLE_ID'];
	$accomplices = array_map('intval', $taskData['ACCOMPLICES']->export());

	if (empty($accomplices))
	{
		return;
	}

	$title = self::formatTaskName($taskData['ID'], $taskData['TITLE'], $taskData['GROUP_ID']);

	if ($index = array_search($responsibleId, $accomplices, true))
	{
		unset($accomplices[$index]);
	}

	if (in_array($createdBy, $accomplices, true))
	{
		/** @var BitrixTasksUtilTypeDateTime $deadline */
		$deadline = clone $taskData['DEADLINE'];
		$deadline->addSecond(CTimeZone::GetOffset($createdBy, true));
		$formattedDeadline = $deadline->format(UI::getHumanTimeFormat($deadline->getTimestamp()));

		$messageKey = 'TASKS_TASK_EXPIRED_SOON_RESPONSIBLE_SAME_CREATOR_MESSAGE';
		$messages = [
			'INSTANT' => str_replace(
				['#TASK_TITLE#', '#DEADLINE_TIME#'],
				[$title, $formattedDeadline],
				self::getGenderMessage(0, $messageKey)
			),
			'EMAIL' => str_replace(
				['#TASK_TITLE#', '#DEADLINE_TIME#'],
				[strip_tags($title), $formattedDeadline],
				self::getGenderMessage(0, $messageKey)
			),
			'PUSH' => self::makePushMessage($messageKey, $createdBy, $taskData),
		];
		self::sendMessageEx($taskData['ID'], $createdBy, [$createdBy], $messages, $parameters);

		unset($accomplices[array_search($createdBy, $accomplices, true)]);
	}

	foreach ($accomplices as $userId)
	{
		/** @var BitrixTasksUtilTypeDateTime $deadline */
		$deadline = clone $taskData['DEADLINE'];
		$deadline->addSecond(CTimeZone::GetOffset($userId, true));
		$formattedDeadline = $deadline->format(UI::getHumanTimeFormat($deadline->getTimestamp()));

		$messageKey = 'TASKS_TASK_EXPIRED_SOON_RESPONSIBLE_MESSAGE';
		$messages = [
			'INSTANT' => str_replace(
				['#TASK_TITLE#', '#DEADLINE_TIME#'],
				[$title, $formattedDeadline],
				self::getGenderMessage(0, $messageKey)
			),
			'EMAIL' => str_replace(
				['#TASK_TITLE#', '#DEADLINE_TIME#'],
				[strip_tags($title), $formattedDeadline],
				self::getGenderMessage(0, $messageKey)
			),
			'PUSH' => self::makePushMessage($messageKey, $createdBy, $taskData),
		];

		self::sendMessageEx($taskData['ID'], $createdBy, [$userId], $messages, $parameters);
	}
}