• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_notify.php
  • Класс: CTimeManNotify
  • Вызов: CTimeManNotify::AddCommentToIM
static function AddCommentToIM($arFields)
{
	if (
		CModule::IncludeModule("im")
		&& intval($arFields["USER_ID"]) > 0
		&& intval($arFields["ENTRY_ID"]) > 0
	)
	{
		$date_text = "";

		$dbEntry = CTimeManEntry::GetList(array(), array("ID" => $arFields["ENTRY_ID"]));
		if ($arEntry = $dbEntry->Fetch())
		{
			$date_text = FormatDate("j F", MakeTimeStamp($arEntry["DATE_START"], FORMAT_DATETIME));

			$arMessageFields = array(
				"MESSAGE_TYPE" => IM_MESSAGE_SYSTEM,
				"FROM_USER_ID" => $arFields["USER_ID"],
				"NOTIFY_TYPE" => IM_NOTIFY_FROM,
				"NOTIFY_MODULE" => "timeman",
				"NOTIFY_EVENT" => "entry_comment",
				"NOTIFY_TAG" => "TIMEMAN|ENTRY|".$arFields["ENTRY_ID"],
			);

			$arUserIDToSend = array(
				$arEntry["USER_ID"]
			);

			$gender_suffix = "";
			$dbUser = CUser::GetByID($arFields["USER_ID"]);
			if ($arUser = $dbUser->Fetch())
			{
				switch ($arUser["PERSONAL_GENDER"])
				{
					case "M":
						$gender_suffix = "_M";
						break;
					case "F":
						$gender_suffix = "_F";
							break;
					default:
						$gender_suffix = "";
				}
			}

			$arManagers = CTimeMan::GetUserManagers($arEntry["USER_ID"]);
			if (is_array($arManagers))
				$arUserIDToSend = array_merge($arUserIDToSend, $arManagers);

			$reports_page = COption::GetOptionString("timeman", "TIMEMAN_REPORT_PATH", "/timeman/timeman.php");

			$arUnFollowers = array();

			$rsUnFollower = CSocNetLogFollow::GetList(
				array(
					"USER_ID" => $arUserIDToSend,
					"CODE" => "L".$arFields["LOG_ID"],
					"TYPE" => "N"
				),
				array("USER_ID")
			);
			while ($arUnFollower = $rsUnFollower->Fetch())
				$arUnFollowers[] = $arUnFollower["USER_ID"];

			$arUserIDToSend = array_diff($arUserIDToSend, $arUnFollowers);

			foreach($arUserIDToSend as $user_id)
			{
				if ($arFields["USER_ID"] == $user_id)
					continue;

				$arMessageFields["TO_USER_ID"] = $user_id;
				$arTmp = CSocNetLogTools::ProcessPath(array("REPORTS_PAGE" => $reports_page), $user_id);

				$sender_type = ($arEntry["USER_ID"] == $user_id ? "1" : ($arEntry["USER_ID"] == $arFields["USER_ID"] ? "2" : "3"));

				$arMessageFields["NOTIFY_MESSAGE"] = GetMessage("TIMEMAN_ENTRY_IM_COMMENT_".$sender_type.$gender_suffix, Array(
					"#period#" => "".htmlspecialcharsbx($date_text)."",
				));

				$arMessageFields["NOTIFY_MESSAGE_OUT"] = GetMessage("TIMEMAN_ENTRY_IM_COMMENT_".$sender_type.$gender_suffix, Array(
					"#period#" => htmlspecialcharsbx($date_text),
				))." (".$arTmp["SERVER_NAME"].$arTmp["URLS"]["REPORTS_PAGE"].")#BR##BR#".$arFields["MESSAGE"];

				CIMNotify::Add($arMessageFields);
			}
		}
	}
}