%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.log.entry/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.log.entry/include.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); /** @var CBitrixComponent $this */ /** @var array $arParams */ /** @var array $arResult */ /** @var string $componentPath */ /** @var string $componentName */ /** @var string $componentTemplate */ /** @global CDatabase $DB */ /** @global CUser $USER */ /** @global CMain $APPLICATION */ if (!isset($GLOBALS["CurUserCanAddComments"])) $GLOBALS["CurUserCanAddComments"] = array(); if (!function_exists('__SLGetUFMeta')) { function __SLGetUFMeta() { global $USER_FIELD_MANAGER; static $arUFMeta; if (!$arUFMeta) { $arUFMeta = $USER_FIELD_MANAGER->GetUserFields("SONET_COMMENT", 0, LANGUAGE_ID); } return $arUFMeta; } } if (!function_exists('__SLTransportSort')) { function __SLTransportSort($a, $b) { $arPattern = array("M", "X", "D", "E"); $a_key = array_search($a, $arPattern); $b_key = array_search($b, $arPattern); if ($a_key == $b_key) return 0; return ($a_key < $b_key) ? -1 : 1; } } if (!function_exists('__SLEGetTransport')) { function __SLEGetTransport($arFields, $arCurrentUserSubscribe) { $arTransport = array(); if (array_key_exists($arFields["ENTITY_TYPE"]."_".$arFields["ENTITY_ID"]."_".$arFields["EVENT_ID"]."_N_N", $arCurrentUserSubscribe["TRANSPORT"])) $arTransport[] = $arCurrentUserSubscribe["TRANSPORT"][$arFields["ENTITY_TYPE"]."_".$arFields["ENTITY_ID"]."_".$arFields["EVENT_ID"]."_N_N"]; if (array_key_exists($arFields["ENTITY_TYPE"]."_".$arFields["ENTITY_ID"]."_all_N_N", $arCurrentUserSubscribe["TRANSPORT"])) $arTransport[] = $arCurrentUserSubscribe["TRANSPORT"][$arFields["ENTITY_TYPE"]."_".$arFields["ENTITY_ID"]."_all_N_N"]; $bHasLogEventCreatedBy = CSocNetLogTools::HasLogEventCreatedBy($arFields["EVENT_ID"]); if ($bHasLogEventCreatedBy) { if ($arFields["EVENT_ID"]) { if (array_key_exists("U_".$arFields["USER_ID"]."_all_N_Y", $arCurrentUserSubscribe["TRANSPORT"])) $arTransport[] = $arCurrentUserSubscribe["TRANSPORT"]["U_".$arFields["USER_ID"]."_all_N_Y"]; elseif (array_key_exists("U_".$arFields["USER_ID"]."_all_Y_Y", $arCurrentUserSubscribe["TRANSPORT"])) $arTransport[] = $arCurrentUserSubscribe["TRANSPORT"]["U_".$arFields["USER_ID"]."_all_Y_Y"]; } } if ( !array_key_exists($arFields["ENTITY_TYPE"]."_".$arFields["ENTITY_ID"]."_".$arFields["EVENT_ID"]."_N_N", $arCurrentUserSubscribe["TRANSPORT"]) && !array_key_exists($arFields["ENTITY_TYPE"]."_".$arFields["ENTITY_ID"]."_all_N_N", $arCurrentUserSubscribe["TRANSPORT"]) ) { if (array_key_exists($arFields["ENTITY_TYPE"]."_0_".$arFields["EVENT_ID"]."_N_N", $arCurrentUserSubscribe["TRANSPORT"])) $arTransport[] = $arCurrentUserSubscribe["TRANSPORT"][$arFields["ENTITY_TYPE"]."_0_".$arFields["EVENT_ID"]."_N_N"]; elseif (array_key_exists($arFields["ENTITY_TYPE"]."_0_all_N_N", $arCurrentUserSubscribe["TRANSPORT"])) $arTransport[] = $arCurrentUserSubscribe["TRANSPORT"][$arFields["ENTITY_TYPE"]."_0_all_N_N"]; else $arTransport[] = "N"; } $arTransport = array_unique($arTransport); usort($arTransport, "__SLTransportSort"); return $arTransport; } } if (!function_exists('__SLEGetLogRecord')) { function __SLEGetLogRecord($logID, $arParams, $arCurrentUserSubscribe, $current_page_date) { global $APPLICATION, $CACHE_MANAGER, $USER_FIELD_MANAGER, $DB, $USER; static $isExtranetInstalled, $isExtranetUser, $arUserIdVisible, $arAvailableExtranetUserID, $bCurrentUserIsAdmin, $arSocNetFeaturesSettings; if (!$isExtranetInstalled) { $isExtranetInstalled = (CModule::IncludeModule("extranet") ? "Y" : "N"); $isExtranetUser = ($isExtranetInstalled == "Y" && !CExtranet::IsIntranetUser() ? "Y" : "N"); $isExtranetAdmin = ($isExtranetInstalled == "Y" && CExtranet::IsExtranetAdmin() ? "Y" : "N"); $bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin(); $arSocNetFeaturesSettings = CSocNetAllowed::GetAllowedFeatures(); if ($isExtranetUser == "Y") { $arUserIdVisible = CExtranet::GetMyGroupsUsersSimple(SITE_ID); } elseif ( $isExtranetInstalled == "Y" && $isExtranetUser != "Y" ) { if ( $isExtranetAdmin == "Y" && $bCurrentUserIsAdmin ) { $arAvailableExtranetUserID = CExtranet::GetMyGroupsUsers(SITE_ID); } else { $arAvailableExtranetUserID = CExtranet::GetMyGroupsUsersSimple(CExtranet::GetExtranetSiteID()); } } } $cache_time = 31536000; $arEvent = array(); $bEmpty = false; $cache = new CPHPCache; $arCacheID = array(); $arKeys = array( "AVATAR_SIZE", "DESTINATION_LIMIT", "CHECK_PERMISSIONS_DEST", "NAME_TEMPLATE", "NAME_TEMPLATE_WO_NOBR", "SHOW_LOGIN", "DATE_TIME_FORMAT", "PATH_TO_USER", "PATH_TO_GROUP", "PATH_TO_CONPANY_DEPARTMENT" ); foreach($arKeys as $param_key) { if (array_key_exists($param_key, $arParams)) $arCacheID[$param_key] = $arParams[$param_key]; else $arCacheID[$param_key] = false; } $cache_id = "log_post_".$logID."_".md5(serialize($arCacheID))."_".SITE_TEMPLATE_ID."_".SITE_ID."_".LANGUAGE_ID."_".FORMAT_DATETIME."_".CTimeZone::GetOffset(); $cache_path = "/sonet/log/".intval(intval($logID) / 1000)."/".$logID."/entry/"; if ( is_object($cache) && $cache->InitCache($cache_time, $cache_id, $cache_path) ) { $arCacheVars = $cache->GetVars(); $arEvent["FIELDS_FORMATTED"] = $arCacheVars["FIELDS_FORMATTED"]; if (array_key_exists("CACHED_CSS_PATH", $arEvent["FIELDS_FORMATTED"])) { if ( !is_array($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"]) && strlen($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"]) > 0 ) { $APPLICATION->SetAdditionalCSS($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"]); } elseif(is_array($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"])) { foreach($arEvent["FIELDS_FORMATTED"]["CACHED_CSS_PATH"] as $css_path) { $APPLICATION->SetAdditionalCSS($css_path); } } } if (array_key_exists("CACHED_JS_PATH", $arEvent["FIELDS_FORMATTED"])) { if ( !is_array($arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"]) && $arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"] !== '' ) { $APPLICATION->AddHeadScript($arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"]); } elseif(is_array($arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"])) { foreach($arEvent["FIELDS_FORMATTED"]["CACHED_JS_PATH"] as $js_path) { $APPLICATION->AddHeadScript($js_path); } } } } else { if (is_object($cache)) { $cache->StartDataCache($cache_time, $cache_id, $cache_path); } $arFilter = array( "ID" => $logID ); $arListParams = array( "CHECK_RIGHTS" => "N", "USE_FOLLOW" => "N", "USE_SUBSCRIBE" => "N" ); $arSelect = array( "ID", "TMP_ID", "ENTITY_TYPE", "ENTITY_ID", "USER_ID", "EVENT_ID", "LOG_DATE", "LOG_UPDATE", "TITLE_TEMPLATE", "TITLE", "MESSAGE", "TEXT_MESSAGE", "URL", "MODULE_ID", "CALLBACK_FUNC", "EXTERNAL_ID", "SITE_ID", "PARAMS", "COMMENTS_COUNT", "ENABLE_COMMENTS", "SOURCE_ID", "GROUP_NAME", "GROUP_OWNER_ID", "GROUP_INITIATE_PERMS", "GROUP_VISIBLE", "GROUP_OPENED", "GROUP_IMAGE_ID", "USER_NAME", "USER_LAST_NAME", "USER_SECOND_NAME", "USER_LOGIN", "USER_PERSONAL_PHOTO", "USER_PERSONAL_GENDER", "CREATED_BY_NAME", "CREATED_BY_LAST_NAME", "CREATED_BY_SECOND_NAME", "CREATED_BY_LOGIN", "CREATED_BY_PERSONAL_PHOTO", "CREATED_BY_PERSONAL_GENDER", "RATING_TYPE_ID", "RATING_ENTITY_ID", "SOURCE_TYPE" ); $dbEvent = CSocNetLog::GetList( array(), $arFilter, false, false, $arSelect, $arListParams ); if ($arEvent = $dbEvent->GetNext()) { if (defined("BX_COMP_MANAGED_CACHE")) { $CACHE_MANAGER->StartTagCache($cache_path); $CACHE_MANAGER->RegisterTag("USER_NAME_".intval($arEvent["USER_ID"])); $CACHE_MANAGER->RegisterTag("SONET_LOG_".intval($arEvent["ID"])); if ($arEvent["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { $CACHE_MANAGER->RegisterTag("sonet_group_".$arEvent["ENTITY_ID"]); } } $arEvent["EVENT_ID_FULLSET"] = CSocNetLogTools::FindFullSetEventIDByEventID($arEvent["EVENT_ID"]); if ($arEvent["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { static $arSiteWorkgroupsPage; if ( !$arSiteWorkgroupsPage && ( IsModuleInstalled("extranet") || ( is_set($arEvent["URL"]) && (strpos($arEvent["URL"], "#GROUPS_PATH#") !== false) ) ) ) { $rsSite = CSite::GetList($by="sort", $order="desc", Array("ACTIVE" => "Y")); while($arSite = $rsSite->Fetch()) { $arSiteWorkgroupsPage[$arSite["ID"]] = COption::GetOptionString("socialnetwork", "workgroups_page", $arSite["DIR"]."workgroups/", $arSite["ID"]); } } if ( is_set($arEvent["URL"]) && isset($arSiteWorkgroupsPage[SITE_ID]) ) { $arEvent["URL"] = str_replace("#GROUPS_PATH#", $arSiteWorkgroupsPage[SITE_ID], $arEvent["URL"]); } } $arEventTmp = CSocNetLogTools::FindLogEventByID($arEvent["EVENT_ID"]); if ( $arEventTmp && isset($arEventTmp["CLASS_FORMAT"]) && isset($arEventTmp["METHOD_FORMAT"]) ) { $contentId = \Bitrix\Socialnetwork\Livefeed\Provider::getContentId($arEvent); if (!empty($contentId['ENTITY_TYPE'])) { if ($postProvider = \Bitrix\Socialnetwork\Livefeed\Provider::getProvider($contentId['ENTITY_TYPE'])) { $sourceAdditonalData = $postProvider->getAdditionalData(array( 'id' => array($arEvent["SOURCE_ID"]) )); if ( !empty($sourceAdditonalData) && isset($sourceAdditonalData[$arEvent["SOURCE_ID"]]) ) { $arEvent['ADDITIONAL_DATA'] = $sourceAdditonalData[$arEvent["SOURCE_ID"]]; } } } $arEvent["UF"] = $USER_FIELD_MANAGER->GetUserFields("SONET_LOG", $arEvent["ID"], LANGUAGE_ID); $arEvent["FIELDS_FORMATTED"] = call_user_func(array($arEventTmp["CLASS_FORMAT"], $arEventTmp["METHOD_FORMAT"]), $arEvent, $arParams); if (is_array($arEvent["FIELDS_FORMATTED"])) { if ( isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"]) ) { if (in_array($arEvent["EVENT_ID"], array('calendar'))) { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"] = htmlspecialcharsback($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"]); } else { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"] = CSocNetTextParser::closetags(htmlspecialcharsback($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"])); } } if ( isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) ) { $arFields2Cache = array( "URL", "STYLE", "DESTINATION", "DESTINATION_MORE", "TITLE_24", "TITLE_24_2", "TITLE_24_2_STYLE", "IS_IMPORTANT", "MESSAGE", "FOOTER_MESSAGE", "MESSAGE_TITLE_24", "DATETIME_FORMATTED", "LOG_DATE_FORMAT", "MENU", "COMMENT_URL" ); foreach ($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"][$field]); } } } if ( isset($arEvent["FIELDS_FORMATTED"]["EVENT"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT"]) ) { $arFields2Cache = array( "ID", "URL", "USER_ID", "ENTITY_TYPE", "ENTITY_ID", "EVENT_ID", "EVENT_ID_FULLSET", "TITLE", "MESSAGE", "SOURCE_ID", "PARAMS", "RATING_TYPE_ID", "RATING_ENTITY_ID" ); foreach ($arEvent["FIELDS_FORMATTED"]["EVENT"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["EVENT"][$field]); } } } if ( isset($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]) && is_array($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]) ) { $arFields2Cache = array( "TOOLTIP_FIELDS", "FORMATTED", "URL", "IS_EXTRANET" ); foreach ($arEvent["FIELDS_FORMATTED"]["CREATED_BY"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["CREATED_BY"][$field]); } } if ( isset($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]["TOOLTIP_FIELDS"]) && is_array($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]["TOOLTIP_FIELDS"]) ) { $arFields2Cache = array( "ID", "PATH_TO_SONET_USER_PROFILE", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN", "EMAIL", "PERSONAL_GENDER" ); foreach ($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]["TOOLTIP_FIELDS"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["CREATED_BY"]["TOOLTIP_FIELDS"][$field]); } } } } if ( isset($arEvent["FIELDS_FORMATTED"]["ENTITY"]) && is_array($arEvent["FIELDS_FORMATTED"]["ENTITY"]) ) { $arFields2Cache = array( "TOOLTIP_FIELDS", "FORMATTED", "URL" ); foreach ($arEvent["FIELDS_FORMATTED"]["ENTITY"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["ENTITY"][$field]); } } if ( isset($arEvent["FIELDS_FORMATTED"]["ENTITY"]["TOOLTIP_FIELDS"]) && is_array($arEvent["FIELDS_FORMATTED"]["ENTITY"]["TOOLTIP_FIELDS"]) ) { $arFields2Cache = array( "ID", "PATH_TO_SONET_USER_PROFILE", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN", "EMAIL", "PERSONAL_GENDER" ); foreach ($arEvent["FIELDS_FORMATTED"]["ENTITY"]["TOOLTIP_FIELDS"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arEvent["FIELDS_FORMATTED"]["ENTITY"]["TOOLTIP_FIELDS"][$field]); } } } } $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["UF"] = $arEvent["UF"]; } else { $bEmpty = true; } } if (!$bEmpty) { $dateFormated = FormatDate( $DB->DateFormatToPHP(FORMAT_DATE), MakeTimeStamp ( isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"]) ? $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"] : ( array_key_exists("LOG_DATE_FORMAT", $arEvent) ? $arEvent["LOG_DATE_FORMAT"] : $arEvent["LOG_DATE"] ) ) ); $timeFormated = FormatDateFromDB( ( isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"]) ? $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"] : ( array_key_exists("LOG_DATE_FORMAT", $arEvent) ? $arEvent["LOG_DATE_FORMAT"] : $arEvent["LOG_DATE"] ) ), ( stripos($arParams["DATE_TIME_FORMAT"], 'a') || ( $arParams["DATE_TIME_FORMAT"] == 'FULL' && IsAmPmMode() ) !== false ? (strpos(FORMAT_DATETIME, 'TT')!==false ? 'H:MI TT' : 'H:MI T') : 'HH:MI' ) ); $dateTimeFormated = FormatDate( ( !empty($arParams["DATE_TIME_FORMAT"]) ? ($arParams["DATE_TIME_FORMAT"] == "FULL" ? $DB->DateFormatToPHP(str_replace(":SS", "", FORMAT_DATETIME)) : $arParams["DATE_TIME_FORMAT"] ) : $DB->DateFormatToPHP(FORMAT_DATETIME) ), MakeTimeStamp( isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && isset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"]) ? $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["LOG_DATE_FORMAT"] : ( array_key_exists("LOG_DATE_FORMAT", $arEvent) ? $arEvent["LOG_DATE_FORMAT"] : $arEvent["LOG_DATE"] ) ) ); if (strcasecmp(LANGUAGE_ID, 'EN') !== 0 && strcasecmp(LANGUAGE_ID, 'DE') !== 0) { $dateTimeFormated = ToLower($dateTimeFormated); $dateFormated = ToLower($dateFormated); $timeFormated = ToLower($timeFormated); } // strip current year if (!empty($arParams['DATE_TIME_FORMAT']) && ($arParams['DATE_TIME_FORMAT'] == 'j F Y G:i' || $arParams['DATE_TIME_FORMAT'] == 'j F Y g:i a')) { $dateTimeFormated = ltrim($dateTimeFormated, '0'); $curYear = date('Y'); $dateTimeFormated = str_replace(array('-'.$curYear, '/'.$curYear, ' '.$curYear, '.'.$curYear), '', $dateTimeFormated); } $arEvent["MESSAGE_FORMAT"] = htmlspecialcharsback($arEvent["MESSAGE"]); if (StrLen($arEvent["CALLBACK_FUNC"]) > 0) { if (StrLen($arEvent["MODULE_ID"]) > 0) CModule::IncludeModule($arEvent["MODULE_ID"]); $arEvent["MESSAGE_FORMAT"] = call_user_func($arEvent["CALLBACK_FUNC"], $arEvent); } $arEvent["FIELDS_FORMATTED"]["LOG_TIME_FORMAT"] = $timeFormated; $arEvent["FIELDS_FORMATTED"]["LOG_UPDATE_TS"] = MakeTimeStamp($arEvent["LOG_UPDATE"]); $arEvent["FIELDS_FORMATTED"]["LOG_DATE_TS"] = MakeTimeStamp($arEvent["LOG_DATE"]); $arEvent["FIELDS_FORMATTED"]["LOG_DATE_DAY"] = ConvertTimeStamp(MakeTimeStamp($arEvent["LOG_DATE"]), "SHORT"); $arEvent["FIELDS_FORMATTED"]["LOG_UPDATE_DAY"] = ConvertTimeStamp(MakeTimeStamp($arEvent["LOG_UPDATE"]), "SHORT"); $arEvent["FIELDS_FORMATTED"]["COMMENTS_COUNT"] = $arEvent["COMMENTS_COUNT"]; $arEvent["FIELDS_FORMATTED"]["TMP_ID"] = $arEvent["TMP_ID"]; $arEvent["FIELDS_FORMATTED"]["DATETIME_FORMATTED"] = $dateTimeFormated; $arCommentEvent = CSocNetLogTools::FindLogCommentEventByLogEventID($arEvent["EVENT_ID"]); if ( !array_key_exists("HAS_COMMENTS", $arEvent["FIELDS_FORMATTED"]) || $arEvent["FIELDS_FORMATTED"]["HAS_COMMENTS"] != "N" ) { $arEvent["FIELDS_FORMATTED"]["HAS_COMMENTS"] = ( $arCommentEvent && ( !array_key_exists("ENABLE_COMMENTS", $arEvent) || $arEvent["ENABLE_COMMENTS"] != "N" ) ? "Y" : "N" ); } } } if (is_object($cache)) { $arCacheData = Array( "FIELDS_FORMATTED" => $arEvent["FIELDS_FORMATTED"] ); $cache->EndDataCache($arCacheData); if(defined("BX_COMP_MANAGED_CACHE")) { $CACHE_MANAGER->EndTagCache(); } } } if ($bEmpty) { return false; } $feature = CSocNetLogTools::FindFeatureByEventID($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]); if ( $feature && ( !array_key_exists($feature, $arSocNetFeaturesSettings) || ( array_key_exists("allowed", $arSocNetFeaturesSettings[$feature]) && is_array($arSocNetFeaturesSettings[$feature]["allowed"]) && !in_array($arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_TYPE"], $arSocNetFeaturesSettings[$feature]["allowed"]) ) ) ) { return false; } if (!array_key_exists("COMMENTS_PARAMS", $arEvent["FIELDS_FORMATTED"])) { $arForumMetaData = CSocNetLogTools::GetForumCommentMetaData($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]); if ( $arForumMetaData && $arEvent["FIELDS_FORMATTED"]["EVENT"]["SOURCE_ID"] > 0 ) { $arEvent["FIELDS_FORMATTED"]["COMMENTS_PARAMS"] = array( "ENTITY_TYPE" => $arForumMetaData[1], "ENTITY_XML_ID" => $arForumMetaData[0]."_".$arEvent["FIELDS_FORMATTED"]["EVENT"]["SOURCE_ID"], "NOTIFY_TAGS" => $arForumMetaData[2] ); // Calendar events could generate different livefeed entries with same SOURCE_ID // That's why we should add entry ID to make comment interface work if ( $arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"] == 'calendar' && !empty($arEvent["FIELDS_FORMATTED"]["EVENT"]["PARAMS"]) && ($calendarEventParams = unserialize(htmlspecialcharsback($arEvent["FIELDS_FORMATTED"]["EVENT"]["PARAMS"]))) && !empty($calendarEventParams['COMMENT_XML_ID']) ) { $arEvent["FIELDS_FORMATTED"]["COMMENTS_PARAMS"]["ENTITY_XML_ID"] = $calendarEventParams['COMMENT_XML_ID']; } } else { $arEvent["FIELDS_FORMATTED"]["COMMENTS_PARAMS"] = array( "ENTITY_TYPE" => substr(strtoupper($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"])."_".$arEvent["FIELDS_FORMATTED"]["EVENT"]["ID"], 0, 2), "ENTITY_XML_ID" => strtoupper($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"])."_".$arEvent["FIELDS_FORMATTED"]["EVENT"]["ID"], "NOTIFY_TAGS" => "" ); } } foreach (GetModuleEvents("socialnetwork", "OnSonetLogEntryMenuCreate", true) as $arModuleEvent) // add menu items { if (!array_key_exists("FIELDS_FORMATTED", $arEvent)) { $arEvent["FIELDS_FORMATTED"] = array(); } if (!array_key_exists("MENU", $arEvent["FIELDS_FORMATTED"])) { $arEvent["FIELDS_FORMATTED"]["MENU"] = array(); } $arMenuItems = ExecuteModuleEventEx($arModuleEvent, array($arEvent)); if (!empty($arMenuItems)) { $arEvent["FIELDS_FORMATTED"]["MENU"] = array_merge($arEvent["FIELDS_FORMATTED"]["MENU"], $arMenuItems); } } if (is_array($arCurrentUserSubscribe)) { $arEvent["FIELDS_FORMATTED"]["TRANSPORT"] = __SLEGetTransport($arEvent, $arCurrentUserSubscribe); } $arCommentEvent = CSocNetLogTools::FindLogCommentEventByLogEventID($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]); if (!$USER->IsAuthorized()) { $arEvent["FIELDS_FORMATTED"]["CAN_ADD_COMMENTS"] = "N"; } elseif ( $arCommentEvent && array_key_exists("OPERATION_ADD", $arCommentEvent) && $arCommentEvent["OPERATION_ADD"] == "log_rights" ) { $arEvent["FIELDS_FORMATTED"]["CAN_ADD_COMMENTS"] = (CSocNetLogRights::CheckForUser($arEvent["FIELDS_FORMATTED"]["EVENT"]["ID"], $USER->GetID()) ? "Y" : "N"); } else { $array_key = $arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_TYPE"]."_".$arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_ID"]."_".$arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"]; if (array_key_exists($array_key, $GLOBALS["CurUserCanAddComments"])) { $arEvent["FIELDS_FORMATTED"]["CAN_ADD_COMMENTS"] = ($GLOBALS["CurUserCanAddComments"][$array_key] == "Y" && $arEvent["FIELDS_FORMATTED"]["HAS_COMMENTS"] == "Y" ? "Y" : "N"); } else { if ( $feature && $arCommentEvent && array_key_exists("OPERATION_ADD", $arCommentEvent) && strlen($arCommentEvent["OPERATION_ADD"]) > 0 ) { $GLOBALS["CurUserCanAddComments"][$array_key] = ( CSocNetFeaturesPerms::CanPerformOperation( $USER->GetID(), $arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_TYPE"], $arEvent["FIELDS_FORMATTED"]["EVENT"]["ENTITY_ID"], ($feature == "microblog" ? "blog" : $feature), $arCommentEvent["OPERATION_ADD"], $bCurrentUserIsAdmin ) ? "Y" : "N" ); } else { $GLOBALS["CurUserCanAddComments"][$array_key] = "Y"; } $arEvent["FIELDS_FORMATTED"]["CAN_ADD_COMMENTS"] = ( $GLOBALS["CurUserCanAddComments"][$array_key] == "Y" && $arEvent["FIELDS_FORMATTED"]["HAS_COMMENTS"] == "Y" ? "Y" : "N" ); } } $arEvent["FIELDS_FORMATTED"]["FAVORITES"] = $arParams["EVENT"]["FAVORITES"]; if ($arParams["USE_FOLLOW"] == "Y") { $arEvent["FIELDS_FORMATTED"]["EVENT"]["FOLLOW"] = $arParams["EVENT"]["FOLLOW"]; $arEvent["FIELDS_FORMATTED"]["EVENT"]["DATE_FOLLOW_X1"] = $arParams["EVENT"]["DATE_FOLLOW_X1"]; $arEvent["FIELDS_FORMATTED"]["EVENT"]["DATE_FOLLOW"] = $arParams["EVENT"]["DATE_FOLLOW"]; } if ( $arParams["CHECK_PERMISSIONS_DEST"] == "N" && !$bCurrentUserIsAdmin && is_object($GLOBALS["USER"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && ( ( array_key_exists("DESTINATION", $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"]) ) || ( array_key_exists("DESTINATION_CODE", $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_CODE"]) ) ) ) { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_HIDDEN"] = 0; $arGroupID = CSocNetLogTools::GetAvailableGroups(); if ( array_key_exists("DESTINATION", $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"]) ) { foreach($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"] as $key => $arDestination) { if ( array_key_exists("TYPE", $arDestination) && array_key_exists("ID", $arDestination) && ( ( $arDestination["TYPE"] == "SG" && !in_array(intval($arDestination["ID"]), $arGroupID) ) || ( in_array($arDestination["TYPE"], array("CRMCOMPANY", "CRMLEAD", "CRMCONTACT", "CRMDEAL")) && ( !isset($arDestination["CRM_USER_ID"]) || $arDestination["CRM_USER_ID"] != $USER->GetId() ) && ( !CModule::IncludeModule("crm") || ( in_array($arDestination["TYPE"], array("CRMCOMPANY", "CRMLEAD", "CRMCONTACT")) && !\Bitrix\Crm\Security\EntityAuthorization::checkReadPermission( CCrmLiveFeedEntity::ResolveEntityTypeID($arDestination["TYPE"]), $arDestination["ID"] ) ) || ( $arDestination["TYPE"] == "CRMDEAL" && !CCrmDeal::CheckReadPermission($arDestination["ID"]) ) ) ) || ( in_array($arDestination["TYPE"], array("DR", "D")) && $isExtranetUser == "Y" ) || ( $arDestination["TYPE"] == "U" && $arDestination["ID"] != $USER->GetId() && isset($arUserIdVisible) && is_array($arUserIdVisible) && !in_array(intval($arDestination["ID"]), $arUserIdVisible) ) || ( $arDestination["TYPE"] == "U" && $arDestination["ID"] != $USER->GetId() && isset($arDestination["IS_EXTRANET"]) && $arDestination["IS_EXTRANET"] == "Y" && isset($arAvailableExtranetUserID) && is_array($arAvailableExtranetUserID) && !in_array(intval($arDestination["ID"]), $arAvailableExtranetUserID) ) ) ) { unset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"][$key]); $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_HIDDEN"]++; } elseif ( isset($arParams["PUBLIC_MODE"]) && $arParams["PUBLIC_MODE"] == "Y" && !empty($arDestination["URL"]) ) { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"][$key]["URL"] = ""; } } if ( intval($arParams["DESTINATION_LIMIT_SHOW"]) > 0 && count($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"]) > $arParams["DESTINATION_LIMIT_SHOW"] ) { $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_MORE"] = count($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"]) - $arParams["DESTINATION_LIMIT_SHOW"]; $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"] = array_slice($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION"], 0, $arParams["DESTINATION_LIMIT_SHOW"]); } } elseif ( array_key_exists("DESTINATION_CODE", $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]) && is_array($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_CODE"]) ) { foreach($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_CODE"] as $key => $right_tmp) { if ( preg_match('/^SG(\d+)$/', $right_tmp, $matches) && !in_array(intval($matches[1]), $arGroupID) ) { unset($arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_CODE"][$key]); $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["DESTINATION_HIDDEN"]++; } } } } if ( $arParams["SHOW_RATING"] == "Y" && strlen($arEvent["FIELDS_FORMATTED"]["EVENT"]["RATING_TYPE_ID"]) > 0 && intval($arEvent["FIELDS_FORMATTED"]["EVENT"]["RATING_ENTITY_ID"]) > 0 ) { $arEvent["FIELDS_FORMATTED"]["RATING"] = CRatings::GetRatingVoteResult($arEvent["FIELDS_FORMATTED"]["EVENT"]["RATING_TYPE_ID"], $arEvent["FIELDS_FORMATTED"]["EVENT"]["RATING_ENTITY_ID"]); } if ( in_array($arEvent["FIELDS_FORMATTED"]["EVENT"]["EVENT_ID"], array("tasks", "crm_activity_add")) && CModule::IncludeModule('tasks') ) { $url = CTaskNotifications::getNotificationPath( array('ID' => $USER->GetId()), $arEvent["FIELDS_FORMATTED"]["EVENT"]['SOURCE_ID'], false ); $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"] = preg_replace('/(<a href=")#USER_PERSONAL_TASK_URL#(">)/', '$1'.$url.'$2', $arEvent["FIELDS_FORMATTED"]["EVENT_FORMATTED"]["MESSAGE"]); } return $arEvent["FIELDS_FORMATTED"]; } } if (!function_exists('__SLEGetLogCommentRecord')) { function __SLEGetLogCommentRecord($arComment, $arParams, &$arAssets) { global $DB, $APPLICATION; static $arUserCache = array(); // for the same post log_update - time only, if not - date and time $timestamp = MakeTimeStamp(array_key_exists("LOG_DATE_FORMAT", $arComment) ? $arComment["LOG_DATE_FORMAT"] : $arComment["LOG_DATE"] ); $timeFormated = FormatDateFromDB($arComment["LOG_DATE"], ( stripos($arParams["DATE_TIME_FORMAT"], 'a') || ( $arParams["DATE_TIME_FORMAT"] == 'FULL' && IsAmPmMode() ) !== false ? (strpos(FORMAT_DATETIME, 'TT')!==false ? 'G:MI TT' : 'G:MI T') : 'HH:MI' ) ); $dateTimeFormated = FormatDate( (!empty($arParams['DATE_TIME_FORMAT']) ? ($arParams['DATE_TIME_FORMAT'] == 'FULL' ? $DB->DateFormatToPHP(str_replace(':SS', '', FORMAT_DATETIME)) : $arParams['DATE_TIME_FORMAT'] ) : $DB->DateFormatToPHP(FORMAT_DATETIME) ), $timestamp ); if ( strcasecmp(LANGUAGE_ID, 'EN') !== 0 && strcasecmp(LANGUAGE_ID, 'DE') !== 0 ) { $dateTimeFormated = ToLower($dateTimeFormated); } // strip current year if ( !empty($arParams['DATE_TIME_FORMAT']) && ( $arParams['DATE_TIME_FORMAT'] == 'j F Y G:i' || $arParams['DATE_TIME_FORMAT'] == 'j F Y g:i a' ) ) { $dateTimeFormated = ltrim($dateTimeFormated, '0'); $curYear = date('Y'); $dateTimeFormated = str_replace(array('-'.$curYear, '/'.$curYear, ' '.$curYear, '.'.$curYear), '', $dateTimeFormated); } $path2Entity = ( $arComment["ENTITY_TYPE"] == SONET_ENTITY_GROUP ? CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arComment["ENTITY_ID"])) : CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arComment["ENTITY_ID"])) ); if (intval($arComment["USER_ID"]) > 0) { $suffix = ( is_array($GLOBALS["arExtranetUserID"]) && in_array($arComment["USER_ID"], $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "" ); $arTmpUser = array( "NAME" => $arComment["~CREATED_BY_NAME"], "LAST_NAME" => $arComment["~CREATED_BY_LAST_NAME"], "SECOND_NAME" => $arComment["~CREATED_BY_SECOND_NAME"], "LOGIN" => $arComment["~CREATED_BY_LOGIN"] ); $bUseLogin = $arParams["SHOW_LOGIN"] != "N" ? true : false; $arCreatedBy = array( "FORMATTED" => CUser::FormatName($arParams["NAME_TEMPLATE"], $arTmpUser, $bUseLogin).$suffix, "URL" => CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array("user_id" => $arComment["USER_ID"], "id" => $arComment["USER_ID"])) ); $arCreatedBy["TOOLTIP_FIELDS"] = array( "ID" => $arComment["USER_ID"], "NAME" => $arComment["~CREATED_BY_NAME"], "LAST_NAME" => $arComment["~CREATED_BY_LAST_NAME"], "SECOND_NAME" => $arComment["~CREATED_BY_SECOND_NAME"], "LOGIN" => $arComment["~CREATED_BY_LOGIN"], "PERSONAL_GENDER" => $arComment["~CREATED_BY_PERSONAL_GENDER"], "USE_THUMBNAIL_LIST" => "N", "PATH_TO_SONET_MESSAGES_CHAT" => $arParams["PATH_TO_MESSAGES_CHAT"], "PATH_TO_SONET_USER_PROFILE" => $arParams["PATH_TO_USER"], "PATH_TO_VIDEO_CALL" => $arParams["PATH_TO_VIDEO_CALL"], "DATE_TIME_FORMAT" => $arParams["DATE_TIME_FORMAT"], "SHOW_YEAR" => $arParams["SHOW_YEAR"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"], "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"].$suffix, "SHOW_LOGIN" => $arParams["SHOW_LOGIN"], "PATH_TO_CONPANY_DEPARTMENT" => $arParams["PATH_TO_CONPANY_DEPARTMENT"], "INLINE" => "Y", "EXTERNAL_AUTH_ID" => $arComment["~CREATED_BY_EXTERNAL_AUTH_ID"] ); if ( isset($arParams["ENTRY_HAS_CRM_USER"]) && $arParams["ENTRY_HAS_CRM_USER"] && IsModuleInstalled('crm') ) { $ar = array(); if (isset($arUserCache[$arComment["USER_ID"]])) { $ar = $arUserCache[$arComment["USER_ID"]]; } else { $arSelectParams = array( "FIELDS" => array("ID"), "SELECT" => array("UF_USER_CRM_ENTITY") ); $res = CUser::getList( ($by="id"), ($order="asc"), array("ID_EQUAL_EXACT" => intval($arComment["USER_ID"])), $arSelectParams ); if ($ar = $res->fetch()) { $arUserCache[$ar["ID"]] = $ar; } } if (!empty($ar)) { $arCreatedBy["TOOLTIP_FIELDS"] = array_merge($arCreatedBy["TOOLTIP_FIELDS"], $ar); } } } else { $arCreatedBy = array("FORMATTED" => GetMessage("SONET_C73_CREATED_BY_ANONYMOUS")); } $arTmpUser = array( "NAME" => $arComment["~USER_NAME"], "LAST_NAME" => $arComment["~USER_LAST_NAME"], "SECOND_NAME" => $arComment["~USER_SECOND_NAME"], "LOGIN" => $arComment["~USER_LOGIN"] ); $arParamsTmp = $arParams; $arParamsTmp["AVATAR_SIZE"] = (isset($arParams["AVATAR_SIZE_COMMON"]) ? $arParams["AVATAR_SIZE_COMMON"] : $arParams["AVATAR_SIZE"]); $arTmpCommentEvent = array( "EVENT" => $arComment, "LOG_DATE" => $arComment["LOG_DATE"], "LOG_DATE_TS" => MakeTimeStamp($arComment["LOG_DATE"]), "LOG_DATE_DAY" => ConvertTimeStamp(MakeTimeStamp($arComment["LOG_DATE"]), "SHORT"), "LOG_TIME_FORMAT" => $timeFormated, "LOG_DATETIME_FORMAT" => $dateTimeFormated, "TITLE_TEMPLATE" => "", "TITLE" => "", "TITLE_FORMAT" => "", // need to use url here "ENTITY_NAME" => (($arComment["ENTITY_TYPE"] == SONET_ENTITY_GROUP) ? $arComment["GROUP_NAME"] : CUser::FormatName($arParams['NAME_TEMPLATE'], $arTmpUser, $bUseLogin)), "ENTITY_PATH" => $path2Entity, "CREATED_BY" => $arCreatedBy, "AVATAR_SRC" => CSocNetLogTools::FormatEvent_CreateAvatar($arComment, $arParamsTmp) ); $arEvent = CSocNetLogTools::FindLogCommentEventByID($arComment["EVENT_ID"]); $arFIELDS_FORMATTED = array(); if ( is_array($arEvent) && array_key_exists("CLASS_FORMAT", $arEvent) && array_key_exists("METHOD_FORMAT", $arEvent) ) { $arLog = ( $arParams["USER_COMMENTS"] == "Y" ? array() : array( "TITLE" => $arComment["~LOG_TITLE"], "URL" => $arComment["~LOG_URL"], "PARAMS" => $arComment["~LOG_PARAMS"] ) ); $arFIELDS_FORMATTED = call_user_func(array($arEvent["CLASS_FORMAT"], $arEvent["METHOD_FORMAT"]), $arComment, $arParams, false, $arLog); if ($arParams["USE_COMMENTS"] != "Y") { if ( array_key_exists("CREATED_BY", $arFIELDS_FORMATTED) && isset($arFIELDS_FORMATTED["CREATED_BY"]["TOOLTIP_FIELDS"]) ) { $arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"] = $arFIELDS_FORMATTED["CREATED_BY"]["TOOLTIP_FIELDS"]; } } } if ( $commentAuxProvider = \Bitrix\Socialnetwork\CommentAux\Base::findProvider( array( 'POST_TEXT' => $arComment['MESSAGE'], 'SHARE_DEST' => $arComment['SHARE_DEST'] ), array( 'eventId' => $arComment['EVENT_ID'] ) ) ) { $commentAuxProvider->setOptions(array( 'suffix' => (!empty($arParams['COMMENT_ENTITY_SUFFIX']) ? $arParams['COMMENT_ENTITY_SUFFIX'] : ''), 'logId' => $arComment['LOG_ID'], 'cache' => true )); $arFIELDS_FORMATTED["EVENT_FORMATTED"]["FULL_MESSAGE_CUT"] = $commentAuxProvider->getText(); } else { $message = ( is_array($arFIELDS_FORMATTED) && array_key_exists("EVENT_FORMATTED", $arFIELDS_FORMATTED) && array_key_exists("MESSAGE", $arFIELDS_FORMATTED["EVENT_FORMATTED"]) ? $arFIELDS_FORMATTED["EVENT_FORMATTED"]["MESSAGE"] : $arTmpCommentEvent["EVENT"]["MESSAGE"] ); if (strlen($message) > 0) { $arFIELDS_FORMATTED["EVENT_FORMATTED"]["FULL_MESSAGE_CUT"] = CSocNetTextParser::closetags(htmlspecialcharsback($message)); } } if (is_array($arTmpCommentEvent)) { $arFIELDS_FORMATTED["EVENT_FORMATTED"]["DATETIME"] = ( $arTmpCommentEvent["LOG_DATE_DAY"] == ConvertTimeStamp() ? $timeFormated : $dateTimeFormated ); $arTmpCommentEvent["EVENT_FORMATTED"] = $arFIELDS_FORMATTED["EVENT_FORMATTED"]; $arTmpCommentEvent["EVENT_FORMATTED"]["URLPREVIEW"] = false; if ( isset($arComment["UF"]["UF_SONET_COM_URL_PRV"]) && !empty($arComment["UF"]["UF_SONET_COM_URL_PRV"]["VALUE"]) ) { $arCss = $APPLICATION->sPath2css; $arJs = $APPLICATION->arHeadScripts; $urlPreviewText = \Bitrix\Socialnetwork\ComponentHelper::getUrlPreviewContent($arComment["UF"]["UF_SONET_COM_URL_PRV"], array( "MOBILE" => "N", "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"], "PATH_TO_USER" => $arParams["~PATH_TO_USER"] )); if (!empty($urlPreviewText)) { $arTmpCommentEvent["EVENT_FORMATTED"]["URLPREVIEW"] = true; $arTmpCommentEvent["EVENT_FORMATTED"]["FULL_MESSAGE_CUT"] .= $urlPreviewText; } $arAssets["CSS"] = array_merge($arAssets["CSS"], array_diff($APPLICATION->sPath2css, $arCss)); $arAssets["JS"] = array_merge($arAssets["JS"], array_diff($APPLICATION->arHeadScripts, $arJs)); unset($arComment["UF"]["UF_SONET_COM_URL_PRV"]); } $arTmpCommentEvent["UF"] = $arComment["UF"]; if ( isset($arTmpCommentEvent["EVENT_FORMATTED"]) && is_array($arTmpCommentEvent["EVENT_FORMATTED"]) ) { $arFields2Cache = array( "DATETIME", "MESSAGE", "FULL_MESSAGE_CUT", "ERROR_MSG", "URLPREVIEW", ); foreach ($arTmpCommentEvent["EVENT_FORMATTED"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arTmpCommentEvent["EVENT_FORMATTED"][$field]); } } } if ( isset($arTmpCommentEvent["EVENT"]) && is_array($arTmpCommentEvent["EVENT"]) ) { if (!empty($arTmpCommentEvent["EVENT"]["URL"])) { $arTmpCommentEvent["EVENT"]["URL"] = str_replace( "#GROUPS_PATH#", COption::GetOptionString("socialnetwork", "workgroups_page", "/workgroups/", SITE_ID), $arTmpCommentEvent["EVENT"]["URL"] ); } $arFields2Cache = array( "ID", "SOURCE_ID", "EVENT_ID", "USER_ID", "LOG_DATE", "RATING_TYPE_ID", "RATING_ENTITY_ID", "URL", "SHARE_DEST" ); if ( isset($arParams["MAIL"]) && $arParams["MAIL"] == "Y" ) { $arFields2Cache[] = "MESSAGE"; } foreach ($arTmpCommentEvent["EVENT"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arTmpCommentEvent["EVENT"][$field]); } } } if ( isset($arTmpCommentEvent["CREATED_BY"]) && is_array($arTmpCommentEvent["CREATED_BY"]) ) { $arFields2Cache = array( "TOOLTIP_FIELDS", "FORMATTED", "URL" ); foreach ($arTmpCommentEvent["CREATED_BY"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arTmpCommentEvent["CREATED_BY"][$field]); } } if ( isset($arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"]) && is_array($arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"]) ) { $arFields2Cache = array( "ID", "PATH_TO_SONET_USER_PROFILE", "NAME", "LAST_NAME", "SECOND_NAME", "PERSONAL_GENDER", "LOGIN", "EMAIL", "EXTERNAL_AUTH_ID", "UF_USER_CRM_ENTITY", "UF_DEPARTMENT" ); foreach ($arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"] as $field => $value) { if (!in_array($field, $arFields2Cache)) { unset($arTmpCommentEvent["CREATED_BY"]["TOOLTIP_FIELDS"][$field]); } } } } } foreach($arTmpCommentEvent["EVENT"] as $key => $value) { if (strpos($key, "~") === 0) { unset($arTmpCommentEvent["EVENT"][$key]); } } return $arTmpCommentEvent; } } ?>