%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;
}
}
?>