• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblocksocnetevent.php
  • Класс: CWebDavSocNetEvent
  • Вызов: CWebDavSocNetEvent::SocnetNotify
public function SocnetNotify($arParams, $file = null)
{
	if(!class_exists('CSocNetSubscription'))
		return;

	if (
		!array_key_exists("group_id", $arParams["OBJECT"]["ATTRIBUTES"])
		|| intval($arParams["OBJECT"]["ATTRIBUTES"]["group_id"]) <= 0
	)
		return;

	if (
		array_key_exists("dropped", $arParams["ELEMENT"])
		&& $arParams["ELEMENT"]["dropped"]
	)
		return;

	$arReaders = CWebDavIblock::GetReaders($arParams["ELEMENT"]["id"], $arParams["OBJECT"]["IBLOCK_ID"]);
	if (!in_array("SG".intval($arParams["OBJECT"]["ATTRIBUTES"]["group_id"])."_".SONET_ROLES_USER, $arReaders))
		return;

	$url = $this->arPath["PATH_TO_GROUP_FILES_ELEMENT"];
	if (IsModuleInstalled("extranet") && $this->arPath["SEF_FOLDER"] <> '' && mb_strpos($url, $this->arPath["SEF_FOLDER"]) === 0)
		$url = str_replace($this->arPath["SEF_FOLDER"], "#GROUPS_PATH#", $url);

	$urlParams = array(
		"SECTION_ID" => isset($arParams["OBJECT"]["SECTION_ID"])? $arParams["OBJECT"]["SECTION_ID"]: $arParams["section_id"],
		"ELEMENT_ID" => $arParams["ELEMENT"]["id"],
		"element_id" => $arParams["ELEMENT"]["id"],
		"ID" => $arParams["ELEMENT"]["id"],
		"group_id" => intval($arParams["OBJECT"]["ATTRIBUTES"]["group_id"]),
		"GROUP_ID" => intval($arParams["OBJECT"]["ATTRIBUTES"]["group_id"])
	);

	if (
		(mb_strpos($url, "#PATH#") !== false)
		&& ($this->object != null)
	)
		$urlParams["PATH"] = $this->object->GetObjectPath($this->object->GetObject(array("element_id" => $arParams["ELEMENT"]["id"])));

	$arNotifyParams = array(
		"LOG_ID" => false,
		"GROUP_ID" => array(intval($arParams["OBJECT"]["ATTRIBUTES"]["group_id"])),
		"NOTIFY_MESSAGE" => "",
		"FROM_USER_ID" => intval($arParams["ELEMENT"]["element"]["element_array"]["CREATED_BY"]),
		"URL" => str_replace(array('///','//'), '/', CComponentEngine::MakePathFromTemplate($url, $urlParams)),
		"MESSAGE" => GetMessage("SONET_IM_NEW_FILE", Array(
			"#title#" => "".$arParams["ELEMENT"]["name"]."",
		)),
		"MESSAGE_OUT" => GetMessage("SONET_IM_NEW_FILE", Array(
			"#title#" => $arParams["ELEMENT"]["name"]
		))." (#URL#)",
		"EXCLUDE_USERS" => array(intval($arParams["ELEMENT"]["element"]["element_array"]["CREATED_BY"]))
	);

	CSocNetSubscription::NotifyGroup($arNotifyParams);

	return true;
}