예제 #1
0
 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") && strlen($this->arPath["SEF_FOLDER"]) > 0 && 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 (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#" => "<a href=\"#URL#\" class=\"bx-notifier-item-action\">" . $arParams["ELEMENT"]["name"] . "</a>")), "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;
 }