%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.log.ex/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/socialnetwork.log.ex/component.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 */ /** @global CCacheManager $CACHE_MANAGER */ /** @global CUserTypeManager $USER_FIELD_MANAGER */ global $CACHE_MANAGER, $USER_FIELD_MANAGER; use Bitrix\Main\Loader; use \Bitrix\Socialnetwork\UserToGroupTable; require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/components/bitrix/socialnetwork.log.ex/include.php"); CPageOption::SetOptionString("main", "nav_page_in_session", "N"); if (!CModule::IncludeModule("socialnetwork")) { ShowError(GetMessage("SONET_MODULE_NOT_INSTALL")); return; } $arResult["isExtranetSite"] = (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()); $folderUsers = COption::GetOptionString("socialnetwork", "user_page", false, SITE_ID); $folderUsers = ( $folderUsers ? $folderUsers : ($arResult["isExtranetSite"] ? SITE_DIR."contacts/personal/" : SITE_DIR."company/personal/") ); $pathToUser = COption::GetOptionString("main", "TOOLTIP_PATH_TO_USER", false, SITE_ID); $pathToUser = ($pathToUser ? $pathToUser : $folderUsers."user/#user_id#/"); $folderWorkgroups = COption::GetOptionString("socialnetwork", "workgroups_page", false, SITE_ID); $folderWorkgroups = ($folderWorkgroups ? $folderWorkgroups : SITE_DIR."workgroups/"); $pathToUserBlogPost = COption::GetOptionString("socialnetwork", "userblogpost_page", false, SITE_ID); $pathToUserBlogPost = ($pathToUserBlogPost ? $pathToUserBlogPost : $folderUsers."user/#user_id#/blog/#post_id#/"); $pathToLogEntry = COption::GetOptionString("socialnetwork", "log_entry_page", false, SITE_ID); $pathToLogEntry = ($pathToLogEntry ? $pathToLogEntry : $folderUsers."personal/log/#log_id#/"); $pathToSmile = COption::GetOptionString("socialnetwork", "smile_page", false, SITE_ID); $pathToSmile = ($pathToSmile ? $pathToSmile : "/bitrix/images/socialnetwork/smile/"); $pathToMessagesChat = COption::GetOptionString("main", "TOOLTIP_PATH_TO_MESSAGES_CHAT", false, SITE_ID); $pathToMessagesChat = ($pathToMessagesChat ? $pathToMessagesChat : $folderUsers."messages/chat/#user_id#/"); $pathToVideoCall = COption::GetOptionString("main", "TOOLTIP_PATH_TO_VIDEO_CALL", false, SITE_ID); $pathToVideoCall = ($pathToVideoCall ? $pathToVideoCall : $folderUsers."video/#user_id#/"); if ( !array_key_exists("CHECK_PERMISSIONS_DEST", $arParams) || strLen($arParams["CHECK_PERMISSIONS_DEST"]) <= 0 ) { $arParams["CHECK_PERMISSIONS_DEST"] = "N"; } if ( !array_key_exists("USE_FOLLOW", $arParams) || strLen($arParams["USE_FOLLOW"]) <= 0 ) { $arParams["USE_FOLLOW"] = "Y"; } if(defined("DisableSonetLogFollow") && DisableSonetLogFollow === true) $arParams["USE_FOLLOW"] = "N"; if(!$USER->IsAuthorized()) { $arParams["USE_FOLLOW"] = "N"; } if(isset($arParams["DISPLAY"])) { $arParams["USE_FOLLOW"] = "N"; } if(!IsModuleInstalled("crm")) { $arParams["IS_CRM"] = "N"; } $arParams["PUBLIC_MODE"] = (isset($arParams["PUBLIC_MODE"]) ? $arParams["PUBLIC_MODE"] : "N"); $arResult["CAN_DELETE"] = CSocNetUser::IsCurrentUserModuleAdmin(SITE_ID, false); $arResult["ENTITIES_CORRESPONDENCE"] = array(); // activation rating CRatingsComponentsMain::GetShowRating($arParams); if ( !array_key_exists("RATING_TYPE", $arParams) || strlen($arParams["RATING_TYPE"]) <= 0 ) { $arParams["RATING_TYPE"] = COption::GetOptionString("main", "rating_vote_template", COption::GetOptionString("main", "rating_vote_type", "standart") == "like"? "like": "standart"); if ($arParams["RATING_TYPE"] == "like_graphic") $arParams["RATING_TYPE"] = "like"; else if ($arParams["RATING_TYPE"] == "standart") $arParams["RATING_TYPE"] = "standart_text"; } else { if ($arParams["RATING_TYPE"] == "like_graphic") $arParams["RATING_TYPE"] = "like"; else if ($arParams["RATING_TYPE"] == "standart") $arParams["RATING_TYPE"] = "standart_text"; } if ( !array_key_exists("USER_VAR", $arParams) || strLen($arParams["USER_VAR"]) <= 0 ) { $arParams["USER_VAR"] = "user_id"; } if ( !array_key_exists("GROUP_VAR", $arParams) || strLen($arParams["GROUP_VAR"]) <= 0 ) { $arParams["GROUP_VAR"] = "group_id"; } if ( !array_key_exists("PAGE_VAR", $arParams) || strLen($arParams["PAGE_VAR"]) <= 0 ) { $arParams["PAGE_VAR"] = "page"; } $arParams["PATH_TO_USER"] = (array_key_exists("PATH_TO_USER", $arParams) && strlen(trim($arParams["PATH_TO_USER"])) > 0 ? trim($arParams["PATH_TO_USER"]) : $pathToUser); $arParams["PATH_TO_USER_MICROBLOG"] = (array_key_exists("PATH_TO_USER_MICROBLOG", $arParams) && strlen(trim($arParams["PATH_TO_USER_MICROBLOG"])) > 0 ? trim($arParams["PATH_TO_USER_MICROBLOG"]) : $folderUsers."user/#user_id#/blog/"); $arParams["PATH_TO_USER_BLOG_POST"] = $arParams["PATH_TO_USER_MICROBLOG_POST"] = (array_key_exists("PATH_TO_USER_BLOG_POST", $arParams) && strlen(trim($arParams["PATH_TO_USER_BLOG_POST"])) > 0 ? trim($arParams["PATH_TO_USER_BLOG_POST"]) : $pathToUserBlogPost); $arParams["PATH_TO_USER_BLOG_POST_EDIT"] = (array_key_exists("PATH_TO_USER_BLOG_POST_EDIT", $arParams) && strlen(trim($arParams["PATH_TO_USER_BLOG_POST_EDIT"])) > 0 ? trim($arParams["PATH_TO_USER_BLOG_POST_EDIT"]) : $folderUsers."user/#user_id#/blog/edit/#post_id#/"); $arParams["PATH_TO_USER_BLOG_POST_IMPORTANT"] = (array_key_exists("PATH_TO_USER_BLOG_POST_IMPORTANT", $arParams) && strlen(trim($arParams["PATH_TO_USER_BLOG_POST_IMPORTANT"])) > 0 ? trim($arParams["PATH_TO_USER_BLOG_POST_IMPORTANT"]) : $folderUsers."user/#user_id#/blog/important/"); $arParams["PATH_TO_GROUP"] = (array_key_exists("PATH_TO_GROUP", $arParams) && strlen(trim($arParams["PATH_TO_GROUP"])) > 0 ? trim($arParams["PATH_TO_GROUP"]) : $folderWorkgroups."group/#group_id#/"); $arParams["PATH_TO_GROUP_MICROBLOG"] = (array_key_exists("PATH_TO_GROUP_MICROBLOG", $arParams) && strlen(trim($arParams["PATH_TO_GROUP_MICROBLOG"])) > 0 ? trim($arParams["PATH_TO_GROUP_MICROBLOG"]) : $folderWorkgroups."group/#group_id#/blog/"); $arParams["PATH_TO_GROUP_BLOG_POST"] = $arParams["PATH_TO_GROUP_MICROBLOG_POST"] = (array_key_exists("PATH_TO_GROUP_BLOG_POST", $arParams) && strlen(trim($arParams["PATH_TO_GROUP_BLOG_POST"])) > 0 ? trim($arParams["PATH_TO_GROUP_BLOG_POST"]) : $folderWorkgroups."group/#group_id#/blog/#post_id#/"); $arParams["PATH_TO_LOG_ENTRY"] = (array_key_exists("PATH_TO_LOG_ENTRY", $arParams) && strlen(trim($arParams["PATH_TO_LOG_ENTRY"])) > 0 ? trim($arParams["PATH_TO_LOG_ENTRY"]) : $pathToLogEntry); $arParams["PATH_TO_MESSAGES_CHAT"] = (array_key_exists("PATH_TO_MESSAGES_CHAT", $arParams) && strlen(trim($arParams["PATH_TO_MESSAGES_CHAT"])) > 0 ? trim($arParams["PATH_TO_MESSAGES_CHAT"]) : $pathToMessagesChat); $arParams["PATH_TO_VIDEO_CALL"] = (array_key_exists("PATH_TO_VIDEO_CALL", $arParams) && strlen(trim($arParams["PATH_TO_VIDEO_CALL"])) > 0 ? trim($arParams["PATH_TO_VIDEO_CALL"]) : $pathToVideoCall); $arParams["PATH_TO_SMILE"] = (array_key_exists("PATH_TO_SMILE", $arParams) && strlen(trim($arParams["PATH_TO_SMILE"])) > 0 ? trim($arParams["PATH_TO_SMILE"]) : $pathToSmile); $arResult["PATH_TO_LOG_TAG"] = $folderUsers."log/?TAG=#tag#"; if (SITE_TEMPLATE_ID == 'bitrix24') { $arResult["PATH_TO_LOG_TAG"] .= "&apply_filter=Y"; } $arParams["LOG_ID"] = IntVal($arParams["LOG_ID"]); if ($arParams["LOG_ID"] > 0) { $arParams["HIDE_EDIT_FORM"] = "Y"; $arParams["SHOW_EVENT_ID_FILTER"] = "N"; } $arParams["GROUP_ID"] = IntVal($arParams["GROUP_ID"]); if ($arParams["GROUP_ID"] <= 0) { if ( !empty($_REQUEST["TO_CODE"]) && !empty($_REQUEST["TO_CODE"]["SG"]) && is_array($_REQUEST["TO_CODE"]["SG"]) ) { preg_match('/^SG(\d+)$/', $_REQUEST["TO_CODE"]["SG"][0], $matches); if (!empty($matches)) { $arParams["GROUP_ID"] = $matches[1]; } } else { $arParams["GROUP_ID"] = IntVal($_REQUEST["flt_group_id"]); } } if (empty($arParams["DESTINATION"])) { $arParams["DESTINATION"] = array(); if ( !empty($_REQUEST["TO_CODE"]) && !empty($_REQUEST["TO_CODE"]) && is_array($_REQUEST["TO_CODE"]) ) { foreach($_REQUEST["TO_CODE"] as $codeGroup => $arCode) { foreach($arCode as $key => $code) { $arParams["DESTINATION"][] = $code; } } } } if ($arParams["GROUP_ID"] > 0) { $arParams["ENTITY_TYPE"] = SONET_ENTITY_GROUP; } else { if ( !empty($_REQUEST["TO_CODE"]) && !empty($_REQUEST["TO_CODE"]["U"]) && is_array($_REQUEST["TO_CODE"]["U"]) ) { preg_match('/^U(\d+)$/', $_REQUEST["TO_CODE"]["U"][0], $matches); if (!empty($matches)) { $arParams["TO_USER_ID"] = $matches[1]; } } else { $arParams["TO_USER_ID"] = IntVal($_REQUEST["flt_to_user_id"]); } } $arParams["USER_ID"] = IntVal($arParams["USER_ID"]); if ($arParams["USER_ID"] <= 0) { $arParams["USER_ID"] = IntVal($_REQUEST["flt_user_id"]); } if ( !empty($_REQUEST["CREATED_BY_CODE"]) && !empty($_REQUEST["CREATED_BY_CODE"]["U"]) && is_array($_REQUEST["CREATED_BY_CODE"]["U"]) ) { preg_match('/^U(\d+)$/', $_REQUEST["CREATED_BY_CODE"]["U"][0], $matches); if (!empty($matches)) { $arParams["CREATED_BY_ID"] = $matches[1]; } } else { if (is_array($_REQUEST["flt_created_by_id"])) { $_REQUEST["flt_created_by_id"] = $_REQUEST["flt_created_by_id"][0]; } preg_match('/^(\d+)$/', $_REQUEST["flt_created_by_id"], $matches); if (count($matches) > 0) { $arParams["CREATED_BY_ID"] = $_REQUEST["flt_created_by_id"]; } else { $arFoundUsers = CSocNetUser::SearchUser($_REQUEST["flt_created_by_id"], false); if ( is_array($arFoundUsers) && count($arFoundUsers) > 0 ) { $arParams["CREATED_BY_ID"] = key($arFoundUsers); } } } $arParams["NAME_TEMPLATE"] = $arParams["NAME_TEMPLATE"] ? $arParams["NAME_TEMPLATE"] : CSite::GetNameFormat(); $arParams["NAME_TEMPLATE_WO_NOBR"] = str_replace( array("#NOBR#", "#/NOBR#"), array("", ""), $arParams["NAME_TEMPLATE"] ); $bUseLogin = $arParams['SHOW_LOGIN'] != "N" ? true : false; if (StrLen($arParams["ENTITY_TYPE"]) <= 0) $arParams["ENTITY_TYPE"] = Trim($_REQUEST["flt_entity_type"]); $arParams["TAG"] = (isset($_REQUEST["TAG"]) ? trim($_REQUEST["TAG"]) : ""); $arParams["FIND"] = (isset($_REQUEST["FIND"]) ? trim($_REQUEST["FIND"]) : ""); $arParams["AVATAR_SIZE_COMMON"] = (isset($arParams["AVATAR_SIZE_COMMON"]) && intval($arParams["AVATAR_SIZE_COMMON"]) > 0) ? intval($arParams["AVATAR_SIZE_COMMON"]) : 100; $arParams["AVATAR_SIZE"] = (isset($arParams["AVATAR_SIZE"]) && intval($arParams["AVATAR_SIZE"]) > 0) ? intval($arParams["AVATAR_SIZE"]) : 100; $arParams["AVATAR_SIZE_COMMENT"] = (isset($arParams["AVATAR_SIZE_COMMENT"]) && intval($arParams["AVATAR_SIZE_COMMENT"]) > 0) ? intval($arParams["AVATAR_SIZE_COMMENT"]) : 100; $arParams["USE_COMMENTS"] = (isset($arParams["USE_COMMENTS"]) ? $arParams["USE_COMMENTS"] : "N"); $arParams["COMMENTS_IN_EVENT"] = (isset($arParams["COMMENTS_IN_EVENT"]) && intval($arParams["COMMENTS_IN_EVENT"]) > 0 ? $arParams["COMMENTS_IN_EVENT"] : "3"); $arParams["DESTINATION_LIMIT"] = (isset($arParams["DESTINATION_LIMIT"]) ? intval($arParams["DESTINATION_LIMIT"]) : 100); $arParams["DESTINATION_LIMIT_SHOW"] = (isset($arParams["DESTINATION_LIMIT_SHOW"]) ? intval($arParams["DESTINATION_LIMIT_SHOW"]) : 3); CSocNetLogComponent::processDateTimeFormatParams($arParams); $arResult["AJAX_CALL"] = array_key_exists("logajax", $_REQUEST); $arResult["bReload"] = ($arResult["AJAX_CALL"] && $_REQUEST["RELOAD"] == "Y"); $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = ( $USER->IsAuthorized() && $arParams["LOG_ID"] <= 0 ? "Y" : "N" ); $arParams["SET_LOG_COUNTER"] = ( $arResult["SHOW_UNREAD"] == "Y" && ( !$arResult["AJAX_CALL"] || $arResult["bReload"] ) ? "Y" : "N" ); $arParams["SET_LOG_PAGE_CACHE"] = ($arParams["LOG_ID"] <= 0 ? "Y" : "N"); $arParams["COMMENT_PROPERTY"] = array("UF_SONET_COM_FILE"); if (IsModuleInstalled("webdav") || IsModuleInstalled("disk")) $arParams["COMMENT_PROPERTY"][] = "UF_SONET_COM_DOC"; $arParams["COMMENT_PROPERTY"][] = "UF_SONET_COM_URL_PRV"; $arPresetFilters = $arResultPresetFilters = false; $arResult["currentUserId"] = intval($USER->getId()); if ( $USER->IsAuthorized() && $arParams["SHOW_EVENT_ID_FILTER"] != "N" ) { $arPresetFilters = CUserOptions::GetOption("socialnetwork", "~log_filter_".SITE_ID, $arResult["currentUserId"]); if (!is_array($arPresetFilters)) { $arPresetFilters = CUserOptions::GetOption("socialnetwork", "~log_filter", $arResult["currentUserId"]); } } $bGetComments = ( array_key_exists("log_filter_submit", $_REQUEST) && array_key_exists("flt_comments", $_REQUEST) && $_REQUEST["flt_comments"] == "Y" ); if ($_REQUEST["preset_filter_top_id"] == "clearall") { $preset_filter_top_id = false; } elseif(array_key_exists("preset_filter_top_id", $_REQUEST) && strlen($_REQUEST["preset_filter_top_id"]) > 0) { $preset_filter_top_id = $_REQUEST["preset_filter_top_id"]; } if ($_REQUEST["preset_filter_id"] == "clearall") { $preset_filter_id = false; } elseif(array_key_exists("preset_filter_id", $_REQUEST) && strlen($_REQUEST["preset_filter_id"]) > 0) { $preset_filter_id = $_REQUEST["preset_filter_id"]; } if ( is_array($arPresetFilters) && $arParams["SHOW_EVENT_ID_FILTER"] != "N" && $arParams["IS_CRM"] != "Y" ) { if(array_key_exists("preset_filter_id", $_REQUEST)) { CUserOptions::DeleteOption("socialnetwork", "~log_".$arParams["ENTITY_TYPE"]."_".($arParams["ENTITY_TYPE"] == SONET_ENTITY_GROUP ? $arParams["GROUP_ID"] : $arParams["USER_ID"])); } $arResultPresetFilters = CSocNetLogComponent::ConvertPresetToFilters($arPresetFilters, $arParams); // to filter component $oLFC = new CSocNetLogComponent(array( "arItems" => $arResultPresetFilters )); AddEventHandler("socialnetwork", "OnBeforeSonetLogFilterFill", Array($oLFC, "OnBeforeSonetLogFilterFill")); } if (!is_array($arResultPresetFiltersTop)) { $arResultPresetFiltersTop = array(); } if (!is_array($arResultPresetFilters)) { $arResultPresetFilters = array(); } $db_events = GetModuleEvents("socialnetwork", "OnSonetLogFilterProcess"); while ($arEvent = $db_events->Fetch()) { $arEventResult = ExecuteModuleEventEx($arEvent, array($preset_filter_top_id, $preset_filter_id, $arResultPresetFiltersTop, $arResultPresetFilters)); if (is_array($arEventResult)) { if (array_key_exists("GET_COMMENTS", $arEventResult)) { $bGetComments = $arEventResult["GET_COMMENTS"]; } if (array_key_exists("PARAMS", $arEventResult) && is_array($arEventResult["PARAMS"])) { foreach($arEventResult["PARAMS"] as $key => $value) { $arParams[$key] = $value; } } } } if ($arParams["SHOW_EVENT_ID_FILTER"] != "N") { $arEventResult = CSocNetLogComponent::OnSonetLogFilterProcess($preset_filter_top_id, $preset_filter_id, $arResultPresetFiltersTop, $arResultPresetFilters); if (is_array($arEventResult)) { if (array_key_exists("GET_COMMENTS", $arEventResult)) { $bGetComments = $arEventResult["GET_COMMENTS"]; } if (array_key_exists("PARAMS", $arEventResult) && is_array($arEventResult["PARAMS"])) { foreach($arEventResult["PARAMS"] as $key => $value) { $arParams[$key] = $value; } } } } if ( array_key_exists("flt_date_datesel", $_REQUEST) && strlen($_REQUEST["flt_date_datesel"]) > 0 ) { switch($_REQUEST["flt_date_datesel"]) { case "today": $arParams["LOG_DATE_FROM"] = $arParams["LOG_DATE_TO"] = ConvertTimeStamp(); break; case "yesterday": $arParams["LOG_DATE_FROM"] = $arParams["LOG_DATE_TO"] = ConvertTimeStamp(time()-86400); break; case "week": $day = date("w"); if($day == 0) $day = 7; $arParams["LOG_DATE_FROM"] = ConvertTimeStamp(time()-($day-1)*86400); $arParams["LOG_DATE_TO"] = ConvertTimeStamp(time()+(7-$day)*86400); break; case "week_ago": $day = date("w"); if($day == 0) $day = 7; $arParams["LOG_DATE_FROM"] = ConvertTimeStamp(time()-($day-1+7)*86400); $arParams["LOG_DATE_TO"] = ConvertTimeStamp(time()-($day)*86400); break; case "month": $arParams["LOG_DATE_FROM"] = ConvertTimeStamp(mktime(0, 0, 0, date("n"), 1)); $arParams["LOG_DATE_TO"] = ConvertTimeStamp(mktime(0, 0, 0, date("n")+1, 0)); break; case "month_ago": $arParams["LOG_DATE_FROM"] = ConvertTimeStamp(mktime(0, 0, 0, date("n")-1, 1)); $arParams["LOG_DATE_TO"] = ConvertTimeStamp(mktime(0, 0, 0, date("n"), 0)); break; case "days": $arParams["LOG_DATE_FROM"] = ConvertTimeStamp(time() - intval($_REQUEST["flt_date_days"])*86400); $arParams["LOG_DATE_TO"] = ""; break; case "exact": $arParams["LOG_DATE_FROM"] = $arParams["LOG_DATE_TO"] = $_REQUEST["flt_date_from"]; break; case "after": $arParams["LOG_DATE_FROM"] = $_REQUEST["flt_date_from"]; $arParams["LOG_DATE_TO"] = ""; break; case "before": $arParams["LOG_DATE_FROM"] = ""; $arParams["LOG_DATE_TO"] = $_REQUEST["flt_date_to"]; break; case "interval": $arParams["LOG_DATE_FROM"] = $_REQUEST["flt_date_from"]; $arParams["LOG_DATE_TO"] = $_REQUEST["flt_date_to"]; break; } } elseif (array_key_exists("flt_date_datesel", $_REQUEST)) { $arParams["LOG_DATE_FROM"] = ""; $arParams["LOG_DATE_TO"] = ""; } else { if (array_key_exists("flt_date_from", $_REQUEST)) $arParams["LOG_DATE_FROM"] = trim($_REQUEST["flt_date_from"]); if (array_key_exists("flt_date_to", $_REQUEST)) $arParams["LOG_DATE_TO"] = trim($_REQUEST["flt_date_to"]); } $arParams["LOG_CNT"] = (array_key_exists("LOG_CNT", $arParams) && intval($arParams["LOG_CNT"]) > 0 ? $arParams["LOG_CNT"] : 0); $arParams["AUTH"] = ((StrToUpper($arParams["AUTH"]) == "Y") ? "Y" : "N"); $arPrevPageLogID = false; if (array_key_exists("pplogid", $_REQUEST)) { $arPrevPageLogID = explode("|", trim($_REQUEST["pplogid"])); if (is_array($arPrevPageLogID)) { foreach($arPrevPageLogID as $key => $val) { preg_match('/^(\d+)$/', $val, $matches); if (count($matches) <= 0) unset($arPrevPageLogID[$key]); } $arPrevPageLogID = array_unique($arPrevPageLogID); } } $arParams["PAGE_SIZE"] = intval($arParams["PAGE_SIZE"]); if($arParams["PAGE_SIZE"] <= 0) { $arParams["PAGE_SIZE"] = 20; } $arParams["PAGER_TITLE"] = trim($arParams["PAGER_TITLE"]); $parent = $this->GetParent(); if (is_object($parent) && strlen($parent->__name) > 0) { if(strlen($arParams["BLOG_IMAGE_MAX_WIDTH"]) <= 0) $arParams["BLOG_IMAGE_MAX_WIDTH"] = $parent->arParams["BLOG_IMAGE_MAX_WIDTH"]; if(strlen($arParams["BLOG_IMAGE_MAX_HEIGHT"]) <= 0) $arParams["BLOG_IMAGE_MAX_HEIGHT"] = $parent->arParams["BLOG_IMAGE_MAX_HEIGHT"]; if(strlen($arParams["BLOG_COMMENT_ALLOW_IMAGE_UPLOAD"]) <= 0) $arParams["BLOG_COMMENT_ALLOW_IMAGE_UPLOAD"] = $parent->arParams["BLOG_COMMENT_ALLOW_IMAGE_UPLOAD"]; if(strlen($arParams["BLOG_ALLOW_POST_CODE"]) <= 0) $arParams["BLOG_ALLOW_POST_CODE"] = $parent->arParams["BLOG_ALLOW_POST_CODE"]; if(strlen($arParams["BLOG_COMMENT_ALLOW_VIDEO"]) <= 0) $arParams["BLOG_COMMENT_ALLOW_VIDEO"] = $parent->arParams["BLOG_COMMENT_ALLOW_VIDEO"]; $arParams["BLOG_GROUP_ID"] = $parent->arParams["BLOG_GROUP_ID"]; if(isset($parent->arParams["BLOG_USE_CUT"])) $arParams["BLOG_USE_CUT"] = $parent->arParams["BLOG_USE_CUT"]; $arParams["PHOTO_USER_IBLOCK_TYPE"] = $parent->arParams["PHOTO_USER_IBLOCK_TYPE"]; $arParams["PHOTO_USER_IBLOCK_ID"] = $parent->arParams["PHOTO_USER_IBLOCK_ID"]; $arParams["PHOTO_GROUP_IBLOCK_TYPE"] = $parent->arParams["PHOTO_GROUP_IBLOCK_TYPE"]; $arParams["PHOTO_GROUP_IBLOCK_ID"] = $parent->arParams["PHOTO_GROUP_IBLOCK_ID"]; $arParams["PHOTO_MAX_VOTE"] = $parent->arParams["PHOTO_MAX_VOTE"]; $arParams["PHOTO_USE_COMMENTS"] = $parent->arParams["PHOTO_USE_COMMENTS"]; $arParams["PHOTO_COMMENTS_TYPE"] = $parent->arParams["PHOTO_COMMENTS_TYPE"]; $arParams["PHOTO_FORUM_ID"] = $parent->arParams["PHOTO_FORUM_ID"]; $arParams["PHOTO_BLOG_URL"] = $parent->arParams["PHOTO_BLOG_URL"]; $arParams["PHOTO_USE_CAPTCHA"] = $parent->arParams["PHOTO_USE_CAPTCHA"]; if ( ( strlen($arParams["PHOTO_GROUP_IBLOCK_TYPE"]) <= 0 || intval($arParams["PHOTO_GROUP_IBLOCK_ID"]) <= 0 ) && CModule::IncludeModule("iblock")) { $ttl = 60*60*24; $cache_id = 'sonet_group_photo_iblock_'.SITE_ID; $cache_dir = '/bitrix/sonet_group_photo_iblock'; $obCache = new CPHPCache; if($obCache->InitCache($ttl, $cache_id, $cache_dir)) { $cacheData = $obCache->GetVars(); $arParams["PHOTO_GROUP_IBLOCK_TYPE"] = $cacheData["PHOTO_GROUP_IBLOCK_TYPE"]; $arParams["PHOTO_GROUP_IBLOCK_ID"] = $cacheData["PHOTO_GROUP_IBLOCK_ID"]; unset($cacheData); } else { $rsIBlockType = CIBlockType::GetByID("photos"); if ($arIBlockType = $rsIBlockType->Fetch()) { $rsIBlock = CIBlock::GetList( array("SORT" => "ASC"), array( "IBLOCK_TYPE" => $arIBlockType["ID"], "CODE" => array("group_photogallery", "group_photogallery_".SITE_ID), "ACTIVE" => "Y", "SITE_ID" => SITE_ID ) ); if ($arIBlock = $rsIBlock->Fetch()) { $arParams["PHOTO_GROUP_IBLOCK_TYPE"] = $arIBlock["IBLOCK_TYPE_ID"]; $arParams["PHOTO_GROUP_IBLOCK_ID"] = $arIBlock["ID"]; } } if ($obCache->StartDataCache()) { $obCache->EndDataCache(array( "PHOTO_GROUP_IBLOCK_TYPE" => $arParams["PHOTO_GROUP_IBLOCK_TYPE"], "PHOTO_GROUP_IBLOCK_ID" => $arParams["PHOTO_GROUP_IBLOCK_ID"] )); } } unset($obCache); } $arParams["PHOTO_COUNT"] = $parent->arParams["LOG_PHOTO_COUNT"]; $arParams["PHOTO_THUMBNAIL_SIZE"] = $parent->arParams["LOG_PHOTO_THUMBNAIL_SIZE"]; $arParams["FORUM_ID"] = $parent->arParams["FORUM_ID"]; // parent of 2nd level $parent = $parent->GetParent(); if (is_object($parent) && strlen($parent->__name) > 0) { if(strlen($arParams["BLOG_IMAGE_MAX_WIDTH"]) <= 0) $arParams["BLOG_IMAGE_MAX_WIDTH"] = $parent->arParams["BLOG_IMAGE_MAX_WIDTH"]; if(strlen($arParams["BLOG_IMAGE_MAX_HEIGHT"]) <= 0) $arParams["BLOG_IMAGE_MAX_HEIGHT"] = $parent->arParams["BLOG_IMAGE_MAX_HEIGHT"]; if(strlen($arParams["BLOG_COMMENT_ALLOW_IMAGE_UPLOAD"]) <= 0) $arParams["BLOG_COMMENT_ALLOW_IMAGE_UPLOAD"] = $parent->arParams["BLOG_COMMENT_ALLOW_IMAGE_UPLOAD"]; if(strlen($arParams["BLOG_ALLOW_POST_CODE"]) <= 0) $arParams["BLOG_ALLOW_POST_CODE"] = $parent->arParams["BLOG_ALLOW_POST_CODE"]; if(strlen($arParams["BLOG_COMMENT_ALLOW_VIDEO"]) <= 0) $arParams["BLOG_COMMENT_ALLOW_VIDEO"] = $parent->arParams["BLOG_COMMENT_ALLOW_VIDEO"]; if(intval($arParams["BLOG_GROUP_ID"]) <= 0) $arParams["BLOG_GROUP_ID"] = $parent->arParams["BLOG_GROUP_ID"]; if(isset($parent->arParams["BLOG_USE_CUT"])) $arParams["BLOG_USE_CUT"] = $parent->arParams["BLOG_USE_CUT"]; if(strlen($arParams["PHOTO_USER_IBLOCK_TYPE"]) <= 0) $arParams["PHOTO_USER_IBLOCK_TYPE"] = $parent->arParams["PHOTO_USER_IBLOCK_TYPE"]; if(intval($arParams["PHOTO_USER_IBLOCK_ID"]) <= 0) $arParams["PHOTO_USER_IBLOCK_ID"] = $parent->arParams["PHOTO_USER_IBLOCK_ID"]; if(strlen($arParams["PHOTO_GROUP_IBLOCK_TYPE"]) <= 0) $arParams["PHOTO_GROUP_IBLOCK_TYPE"] = $parent->arParams["PHOTO_GROUP_IBLOCK_TYPE"]; if(intval($arParams["PHOTO_GROUP_IBLOCK_ID"]) <= 0) $arParams["PHOTO_GROUP_IBLOCK_ID"] = $parent->arParams["PHOTO_GROUP_IBLOCK_ID"]; if(intval($arParams["PHOTO_MAX_VOTE"]) <= 0) $arParams["PHOTO_MAX_VOTE"] = $parent->arParams["PHOTO_MAX_VOTE"]; if(strlen($arParams["PHOTO_USE_COMMENTS"]) <= 0) $arParams["PHOTO_USE_COMMENTS"] = $parent->arParams["PHOTO_USE_COMMENTS"]; if(strlen($arParams["PHOTO_COMMENTS_TYPE"]) <= 0) $arParams["PHOTO_COMMENTS_TYPE"] = $parent->arParams["PHOTO_COMMENTS_TYPE"]; if(intval($arParams["PHOTO_FORUM_ID"]) <= 0) $arParams["PHOTO_FORUM_ID"] = $parent->arParams["PHOTO_FORUM_ID"]; if(strlen($arParams["PHOTO_BLOG_URL"]) <= 0) $arParams["PHOTO_BLOG_URL"] = $parent->arParams["PHOTO_BLOG_URL"]; if(strlen($arParams["PHOTO_USE_CAPTCHA"]) <= 0) $arParams["PHOTO_USE_CAPTCHA"] = $parent->arParams["PHOTO_USE_CAPTCHA"]; if(intval($arParams["PHOTO_COUNT"]) <= 0) $arParams["PHOTO_COUNT"] = $parent->arParams["LOG_PHOTO_COUNT"]; if(intval($arParams["PHOTO_THUMBNAIL_SIZE"]) <= 0) $arParams["PHOTO_THUMBNAIL_SIZE"] = $parent->arParams["LOG_PHOTO_THUMBNAIL_SIZE"]; if(intval($arParams["FORUM_ID"]) <= 0) $arParams["FORUM_ID"] = $parent->arParams["FORUM_ID"]; } } if (intval($arParams["PHOTO_COUNT"]) <= 0) $arParams["PHOTO_COUNT"] = 6; if (intval($arParams["PHOTO_THUMBNAIL_SIZE"]) <= 0) $arParams["PHOTO_THUMBNAIL_SIZE"] = 48; if( $arResult["currentUserId"] > 0 && ( ( $arParams["ENTITY_TYPE"] != SONET_ENTITY_GROUP ) || ( CSocNetFeaturesPerms::CanPerformOperation($arResult["currentUserId"], SONET_ENTITY_GROUP, $arParams["GROUP_ID"], "blog", "full_post", CSocNetUser::IsCurrentUserModuleAdmin()) || CSocNetFeaturesPerms::CanPerformOperation($arResult["currentUserId"], SONET_ENTITY_GROUP, $arParams["GROUP_ID"], "blog", "write_post") || CSocNetFeaturesPerms::CanPerformOperation($arResult["currentUserId"], SONET_ENTITY_GROUP, $arParams["GROUP_ID"], "blog", "moderate_post") || CSocNetFeaturesPerms::CanPerformOperation($arResult["currentUserId"], SONET_ENTITY_GROUP, $arParams["GROUP_ID"], "blog", "premoderate_post") ) ) ) { $arResult["MICROBLOG_USER_ID"] = $arResult["currentUserId"]; } if (IsModuleInstalled("photogallery")) { if (strlen($arParams["PHOTO_USER_IBLOCK_TYPE"]) <= 0) { $arParams["PHOTO_USER_IBLOCK_TYPE"] = "photos"; } if ( intval($arParams["PHOTO_USER_IBLOCK_ID"]) <= 0 && CModule::IncludeModule("iblock") ) { $dbRes = CIBlock::GetList( array(), array( "SITE_ID" => SITE_ID, "=CODE" => "user_photogallery" ) ); if ($arRes = $dbRes->Fetch()) { $arParams["PHOTO_USER_IBLOCK_ID"] = $arRes["ID"]; } } if ( intval($arParams["PHOTO_FORUM_ID"]) <= 0 && CModule::IncludeModule("forum") ) { $dbRes = CForumNew::GetListEx( array(), array( "SITE_ID" => SITE_ID, "XML_ID" => "PHOTOGALLERY_COMMENTS" ) ); if ($arRes = $dbRes->Fetch()) { $arParams["PHOTO_FORUM_ID"] = $arRes["ID"]; } } $arParams["PATH_TO_USER_PHOTO"] = (strlen($arParams["PATH_TO_USER_PHOTO"]) > 0 ? $arParams["PATH_TO_USER_PHOTO"] : $folderUsers."user/#user_id#/photo/"); $arParams["PATH_TO_GROUP_PHOTO"] = (strlen($arParams["PATH_TO_GROUP_PHOTO"]) > 0 ? $arParams["PATH_TO_GROUP_PHOTO"] : $folderWorkgroups."group/#group_id#/photo/"); $arParams["PATH_TO_USER_PHOTO_SECTION"] = (strlen($arParams["PATH_TO_USER_PHOTO_SECTION"]) > 0 ? $arParams["PATH_TO_USER_PHOTO_SECTION"] : $folderUsers."user/#user_id#/photo/album/#section_id#/"); $arParams["PATH_TO_GROUP_PHOTO_SECTION"] = (strlen($arParams["PATH_TO_GROUP_PHOTO_SECTION"]) > 0 ? $arParams["PATH_TO_GROUP_PHOTO_SECTION"] : $folderWorkgroups."group/#group_id#/photo/album/#section_id#/"); $arParams["PATH_TO_USER_PHOTO_ELEMENT"] = (strlen($arParams["PATH_TO_USER_PHOTO_ELEMENT"]) > 0 ? $arParams["PATH_TO_USER_PHOTO_ELEMENT"] : $folderUsers."user/#user_id#/photo/photo/#section_id#/#element_id#/"); $arParams["PATH_TO_GROUP_PHOTO_ELEMENT"] = (strlen($arParams["PATH_TO_GROUP_PHOTO_ELEMENT"]) > 0 ? $arParams["PATH_TO_GROUP_PHOTO_ELEMENT"] : $folderWorkgroups."group/#group_id#/photo/#section_id#/#element_id#/"); } $bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin(); $arResult["TZ_OFFSET"] = CTimeZone::GetOffset(); $arResult["FILTER_ID"] = "LIVEFEED".(!empty($arParams["GROUP_ID"]) ? '_SG'.$arParams["GROUP_ID"] : ''); CSocNetTools::InitGlobalExtranetArrays(); if ( $USER->IsAuthorized() || $arParams["AUTH"] == "Y" ) { $arResult["IS_FILTERED"] = false; if ( $arParams["SET_TITLE"] == "Y" || $arParams["SET_NAV_CHAIN"] != "N" || $arParams["GROUP_ID"] > 0 ) { if ($arParams["ENTITY_TYPE"] == SONET_ENTITY_USER) { $rsUser = CUser::GetByID($arParams["USER_ID"]); if ($arResult["User"] = $rsUser->Fetch()) { $strTitleFormatted = CUser::FormatName($arParams['NAME_TEMPLATE'], $arResult["User"], $bUseLogin); } } elseif ($arParams["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { $arResult["Group"] = CSocNetGroup::GetByID($arParams["GROUP_ID"]); if ( $arResult["Group"]['OPENED'] == 'Y' && $USER->IsAuthorized() && !$bCurrentUserIsAdmin && !in_array(CSocNetUserToGroup::GetUserRole($arResult["currentUserId"], $arResult["Group"]["ID"]), array(SONET_ROLES_OWNER, SONET_ROLES_MODERATOR, SONET_ROLES_USER)) ) { $arResult["Group"]['READ_ONLY'] = 'Y'; } } } if ($arParams["SET_TITLE"] == "Y") { $APPLICATION->SetTitle(GetMessage("SONET_C73_PAGE_TITLE")); } if ($arParams["SET_NAV_CHAIN"] != "N") { $APPLICATION->AddChainItem(GetMessage("SONET_C73_PAGE_TITLE")); } $arResult["Events"] = false; $arFilter = array(); if ($arParams["LOG_ID"] > 0) { $arFilter["ID"] = $arParams["LOG_ID"]; } if(isset($arParams["DISPLAY"])) { $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = $arParams["SHOW_REFRESH"] = "N"; $arParams["SHOW_EVENT_ID_FILTER"] = "N"; if($arParams["DISPLAY"] === "forme") { $arAccessCodes = $USER->GetAccessCodes(); foreach($arAccessCodes as $i => $code) if(!preg_match("/^(U|D|DR)/", $code)) //Users and Departments unset($arAccessCodes[$i]); $arFilter["LOG_RIGHTS"] = $arAccessCodes; $arFilter["!USER_ID"] = $arResult["currentUserId"]; $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; } elseif($arParams["DISPLAY"] === "mine") { $arFilter["USER_ID"] = $arResult["currentUserId"]; $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; } elseif($arParams["DISPLAY"] === "my") { $arAccessCodes = $USER->GetAccessCodes(); foreach($arAccessCodes as $i => $code) { if(!preg_match("/^(U|D|DR)/", $code)) //Users and Departments { unset($arAccessCodes[$i]); } } $arFilter["LOG_RIGHTS"] = $arAccessCodes; $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arParams["USE_FOLLOW"] = "N"; } elseif($arParams["DISPLAY"] > 0) { $arFilter["USER_ID"] = intval($arParams["DISPLAY"]); $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; } } if (!empty($arParams["DESTINATION"])) { $arFilter["LOG_RIGHTS"] = $arParams["DESTINATION"]; if (count($arParams["DESTINATION"]) == 1) { foreach($arParams["DESTINATION"] as $code) { if(preg_match("/^U(\d+)$/", $code, $matches)) { $arFilter["!USER_ID"] = $matches[1]; } } } } elseif (intval($arParams["GROUP_ID"]) > 0) { $ENTITY_TYPE = SONET_ENTITY_GROUP; $ENTITY_ID = $arParams["GROUP_ID"]; $arFilter["LOG_RIGHTS"] = "SG".intval($arParams["GROUP_ID"]); if ( isset($arResult["Group"]) && $arResult["Group"]['OPENED'] == 'Y' ) { $arFilter["LOG_RIGHTS_SG"] = "OSG".intval($arParams["GROUP_ID"]).'_'.($USER->IsAuthorized() ? SONET_ROLES_AUTHORIZED : SONET_ROLES_ALL); } $arParams["SET_LOG_PAGE_CACHE"] = "Y"; $arParams["USE_FOLLOW"] = "N"; $arParams["SET_LOG_COUNTER"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; } elseif (intval($arParams["TO_USER_ID"]) > 0) { $arFilter["LOG_RIGHTS"] = "U".$arParams["TO_USER_ID"]; $arFilter["!USER_ID"] = $arParams["TO_USER_ID"]; $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arParams["USE_FOLLOW"] = "N"; $rsUsers = CUser::GetList( ($by="ID"), ($order="asc"), array( "ID" => $arParams["TO_USER_ID"] ), array("FIELDS" => array("ID", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN")) ); while($arUser = $rsUsers->Fetch()) { $arResult["ToUser"] = array( "ID" => $arUser["ID"], "NAME" => CUser::FormatName($arParams['NAME_TEMPLATE'], $arUser, $bUseLogin) ); } } elseif ($arParams["USER_ID"] > 0) { $ENTITY_TYPE = $arFilter["ENTITY_TYPE"] = SONET_ENTITY_USER; $ENTITY_ID = $arFilter["ENTITY_ID"] = $arParams["USER_ID"]; } elseif (StrLen($arParams["ENTITY_TYPE"]) > 0) { $ENTITY_TYPE = $arFilter["ENTITY_TYPE"] = $arParams["ENTITY_TYPE"]; $ENTITY_ID = 0; } elseif (strlen($arParams["TAG"]) > 0) { $arFilter["=TAG"] = $arParams["TAG"]; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; $arResult["IS_FILTERED"] = true; } elseif (strlen($arParams["FIND"]) > 0) { $operation = \Bitrix\Socialnetwork\LogIndexTable::getEntity()->fullTextIndexEnabled("CONTENT") ? '*' : '*%'; $arFilter[$operation."CONTENT"] = \Bitrix\Socialnetwork\Item\LogIndex::prepareToken($arParams["FIND"]); $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; $arResult["IS_FILTERED"] = true; } else { $ENTITY_TYPE = ""; $ENTITY_ID = 0; } if (isset($arParams["!EXACT_EVENT_ID"])) { $arFilter["!EVENT_ID"] = $arParams["!EXACT_EVENT_ID"]; $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; } if (isset($arParams["EXACT_EVENT_ID"])) { $arFilter["EVENT_ID"] = array($arParams["EXACT_EVENT_ID"]); $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; } elseif (is_array($arParams["EVENT_ID"])) { if (!in_array("all", $arParams["EVENT_ID"])) { $event_id_fullset_tmp = array(); foreach($arParams["EVENT_ID"] as $event_id_tmp) $event_id_fullset_tmp = array_merge($event_id_fullset_tmp, CSocNetLogTools::FindFullSetByEventID($event_id_tmp)); $arFilter["EVENT_ID"] = array_unique($event_id_fullset_tmp); $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; } } elseif ($arParams["EVENT_ID"]) { $arFilter["EVENT_ID"] = CSocNetLogTools::FindFullSetByEventID($arParams["EVENT_ID"]); $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; } elseif ($preset_filter_id == "extranet") { $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; } if (IntVal($arParams["CREATED_BY_ID"]) > 0) { if ($bGetComments) { $arFilter["USER_ID|COMMENT_USER_ID"] = $arParams["CREATED_BY_ID"]; } else { $arFilter["USER_ID"] = $arParams["CREATED_BY_ID"]; } $arResult["IS_FILTERED"] = true; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; unset($arFilter["!USER_ID"]); } if (IntVal($arParams["GROUP_ID"]) > 0) { $arResult["IS_FILTERED"] = true; } if ($arParams["FLT_ALL"] == "Y") $arFilter["ALL"] = "Y"; if ( !$arFilter["EVENT_ID"] || (is_array($arFilter["EVENT_ID"]) && count($arFilter["EVENT_ID"]) <= 0) ) { unset($arFilter["EVENT_ID"]); } if (isset($arParams["FILTER_SITE_ID"])) { $arFilter["SITE_ID"] = $arParams["FILTER_SITE_ID"]; } else { $arFilter["SITE_ID"] = ( $arResult["isExtranetSite"] ? SITE_ID : array(SITE_ID, false) ); } if ( array_key_exists("LOG_DATE_FROM", $arParams) && strlen(trim($arParams["LOG_DATE_FROM"])) > 0 && MakeTimeStamp($arParams["LOG_DATE_FROM"], CSite::GetDateFormat("SHORT")) < time()+$arResult["TZ_OFFSET"] ) { $arFilter[">=LOG_DATE"] = $arParams["LOG_DATE_FROM"]; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; $arResult["IS_FILTERED"] = true; } else { unset($_REQUEST["flt_date_from"]); } if ( array_key_exists("LOG_DATE_TO", $arParams) && strlen(trim($arParams["LOG_DATE_TO"])) > 0 && MakeTimeStamp($arParams["LOG_DATE_TO"], CSite::GetDateFormat("SHORT")) < time()+$arResult["TZ_OFFSET"] ) { $arFilter["<=LOG_DATE"] = ConvertTimeStamp(MakeTimeStamp($arParams["LOG_DATE_TO"], CSite::GetDateFormat("SHORT"))+86399, "FULL"); $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; $arResult["IS_FILTERED"] = true; } else { $arFilter["<=LOG_DATE"] = "NOW"; unset($_REQUEST["flt_date_to"]); } if ( SITE_TEMPLATE_ID === 'bitrix24' && isset($_REQUEST['useBXMainFilter']) && $_REQUEST['useBXMainFilter'] == 'Y' && intval($arParams["LOG_ID"]) <= 0 ) { $filtered = false; $filterOption = new \Bitrix\Main\UI\Filter\Options($arResult["FILTER_ID"]); $filterData = $filterOption->getFilter(); if ( !empty($filterData["CREATED_BY_ID"]) && preg_match('/^U(\d+)$/', $filterData["CREATED_BY_ID"], $matches) ) { $filtered = true; $arFilter["USER_ID"] = intval($matches[1]); if (intval($matches[1]) > 0) { \Bitrix\Main\FinderDestTable::merge(array( "CONTEXT" => "FEED_FILTER_CREATED_BY", "CODE" => 'U'.intval($matches[1]) )); } } if (!empty($filterData["TO"])) { if (preg_match('/^U(\d+)$/', $filterData["TO"], $matches)) { $arFilter["LOG_RIGHTS"] = 'U'.intval($matches[1]); if (empty($arFilter["USER_ID"])) { $arFilter["!USER_ID"] = intval($matches[1]); } } elseif (preg_match('/^SG(\d+)$/', $filterData["TO"], $matches)) { $arFilter["LOG_RIGHTS"] = 'SG'.intval($matches[1]); } elseif (preg_match('/^DR(\d+)$/', $filterData["TO"], $matches)) { $arFilter["LOG_RIGHTS"] = 'DR'.intval($matches[1]); } elseif ($filterData["TO"] == 'UA') { $arFilter["LOG_RIGHTS"] = 'G2'; } $filtered = !empty($arFilter["LOG_RIGHTS"]); if (!empty($arFilter["LOG_RIGHTS"])) { \Bitrix\Main\FinderDestTable::merge(array( "CONTEXT" => "FEED_FILTER_TO", "CODE" => $arFilter["LOG_RIGHTS"] )); } } if ( !empty($filterData["EXACT_EVENT_ID"]) && !is_array($filterData["EXACT_EVENT_ID"]) ) { $filtered = true; $arFilter["EVENT_ID"] = array($filterData["EXACT_EVENT_ID"]); } if ( !empty($filterData["EVENT_ID"]) && is_array($filterData["EVENT_ID"]) ) { $filtered = true; $arFilter["EVENT_ID"] = array(); foreach($filterData["EVENT_ID"] as $filterEventId) { // if specific blog_post event (important, vote, grat) if (in_array($filterEventId, array('blog_post_important', 'blog_post_grat', 'blog_post_vote'))) { $arFilter["EVENT_ID"][] = $filterEventId; } else { $arFilter["EVENT_ID"] = array_merge($arFilter["EVENT_ID"], \CSocNetLogTools::findFullSetByEventID($filterEventId)); } } $arFilter["EVENT_ID"] = array_unique($arFilter["EVENT_ID"]); } if ( !empty($filterData["FAVORITES_USER_ID"]) && $filterData["FAVORITES_USER_ID"] == 'Y' ) { $filtered = true; $arFilter[">FAVORITES_USER_ID"] = 0; } if (!empty($filterData["TAG"])) { $filterData["TAG"] = trim($filterData["TAG"]); if (!empty($filterData["TAG"])) { $filtered = true; $arFilter["=TAG"] = $filterData["TAG"]; } } $filterContent = trim($filterData["FIND"]); if (!empty($filterContent)) { $filtered = true; $operation = \Bitrix\Socialnetwork\LogIndexTable::getEntity()->fullTextIndexEnabled("CONTENT") ? '*' : '*%'; $arFilter[$operation."CONTENT"] = \Bitrix\Socialnetwork\Item\LogIndex::prepareToken($filterContent); } if ( !empty($filterData["EXTRANET"]) && $filterData["EXTRANET"] == 'Y' && Loader::includeModule('extranet') ) { $filtered = true; $arFilter["SITE_ID"] = \CExtranet::getExtranetSiteID(); $arFilter["!EVENT_ID"] = array("lists_new_element", "tasks", "timeman_entry", "report", "crm_activity_add"); } if (!empty($filterData["DATE_CREATE_from"])) { $filtered = true; if (!empty($filterContent)) { $arFilter[">=CONTENT_DATE_CREATE"] = $filterData["DATE_CREATE_from"]; } else { $arFilter[">=LOG_DATE"] = $filterData["DATE_CREATE_from"]; } } if (!empty($filterData["DATE_CREATE_to"])) { $filtered = true; $dateCreateToValue = ConvertTimeStamp(MakeTimeStamp($filterData["DATE_CREATE_to"], CSite::getDateFormat("SHORT")) + 86399, "FULL"); if (!empty($filterContent)) { $arFilter["<=CONTENT_DATE_CREATE"] = $dateCreateToValue; } else { $arFilter["<=LOG_DATE"] = $dateCreateToValue; } } if ($filtered) { $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; $arParams["USE_FOLLOW"] = "N"; $arResult["IS_FILTERED"] = true; } } elseif (SITE_TEMPLATE_ID === 'bitrix24') { $filterOption = new \Bitrix\Main\UI\Filter\Options($arResult["FILTER_ID"]); $filterOption->reset(); } if ($arParams["IS_CRM"] == "Y") { $arParams["CRM_ENTITY_TYPE"] = trim($arParams["CRM_ENTITY_TYPE"]); $arParams["CRM_ENTITY_ID"] = intval($arParams["CRM_ENTITY_ID"]); if (Loader::includeModule('crm')) { $arResult["CRM_ENTITY_TYPE_NAME"] = CCrmOwnerType::ResolveName(CCrmLiveFeedEntity::ResolveEntityTypeID($arParams['CRM_ENTITY_TYPE'])); $arResult["CRM_ENTITY_ID"] = $arParams["CRM_ENTITY_ID"]; } if (strlen($arParams["CRM_ENTITY_TYPE"]) > 0) { $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; } elseif($preset_filter_top_id) { $arParams["SET_LOG_COUNTER"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; } $arParams["CRM_EXTENDED_MODE"] = ($arParams["CRM_EXTENDED_MODE"] == "Y" ? "Y" : "N"); } if (intval($arParams["LOG_CNT"]) > 0) { $arNavStartParams = array("nTopCount" => $arParams["LOG_CNT"]); $arResult["PAGE_NUMBER"] = 1; $bFirstPage = true; $arParams["SHOW_NAV_STRING"] = "N"; $arParams["SHOW_REFRESH"] = "N"; } elseif ( !$arResult["AJAX_CALL"] || $arResult["bReload"] ) { $arNavStartParams = array("nTopCount" => $arParams["PAGE_SIZE"]); $arResult["PAGE_NUMBER"] = 1; $bFirstPage = true; } else { if (intval($_REQUEST["PAGEN_".($GLOBALS["NavNum"] + 1)]) > 0) { $arResult["PAGE_NUMBER"] = intval($_REQUEST["PAGEN_".($GLOBALS["NavNum"] + 1)]); } $arNavStartParams = array( "nPageSize" => (intval($_REQUEST["pagesize"]) > 0 ? intval($_REQUEST["pagesize"]) : $arParams["PAGE_SIZE"]), "bShowAll" => false, "iNavAddRecords" => 1, "bSkipPageReset" => true, "nRecordCount" => 1000000 ); } if ($bGetComments) { $arOrder = (!empty($filterContent) ? array("CONTENT_LOG_UPDATE" => "DESC") : array("LOG_UPDATE" => "DESC")); } elseif ($arParams["USE_FOLLOW"] == "Y") { $arOrder = array("DATE_FOLLOW" => "DESC"); } elseif ($arParams["USE_COMMENTS"] == "Y") { $arOrder = (!empty($filterContent) ? array("CONTENT_LOG_UPDATE" => "DESC") : array("LOG_UPDATE" => "DESC")); } else { $arOrder = array("LOG_DATE" => "DESC"); } $arOrder["ID"] = "DESC"; $events = GetModuleEvents("socialnetwork", "OnBuildSocNetLogOrder"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array(&$arOrder, $arParams)); } if ( ( !isset($arParams["USE_FAVORITES"]) || $arParams["USE_FAVORITES"] != "N" ) && $arParams["FAVORITES"] == "Y" ) { $arFilter[">FAVORITES_USER_ID"] = 0; $arParams["SET_LOG_COUNTER"] = $arParams["SET_LOG_PAGE_CACHE"] = "N"; $arResult["SHOW_UNREAD"] = $arParams["SHOW_UNREAD"] = "N"; } $arParams["NAME_TEMPLATE"] = $arParams["NAME_TEMPLATE_WO_NOBR"]; if (intval($arParams["GROUP_ID"]) > 0) { $arResult["COUNTER_TYPE"] = "SG".intval($arParams["GROUP_ID"]); } elseif( $arParams["IS_CRM"] == "Y" && ( $arParams["SET_LOG_COUNTER"] != "N" || $arParams["SET_LOG_PAGE_CACHE"] != "N" ) ) { $arResult["COUNTER_TYPE"] = ( is_set($arParams["CUSTOM_DATA"]) && is_set($arParams["CUSTOM_DATA"]["CRM_PRESET_TOP_ID"]) && $arParams["CUSTOM_DATA"]["CRM_PRESET_TOP_ID"] == "all" ? "CRM_**_ALL" : "CRM_**" ); } elseif($arParams["EXACT_EVENT_ID"] == "blog_post") { $arResult["COUNTER_TYPE"] = "blog_post"; } else { $arResult["COUNTER_TYPE"] = "**"; } if ( $arParams["LOG_ID"] <= 0 && ( !$arResult["AJAX_CALL"] || $arResult["bReload"] ) ) { $arResult["LAST_LOG_TS"] = CUserCounter::GetLastDate($arResult["currentUserId"], $arResult["COUNTER_TYPE"]); if($arResult["LAST_LOG_TS"] == 0) { $arResult["LAST_LOG_TS"] = 1; } else { //We substruct TimeZone offset in order to get server time //because of template compatibility $arResult["LAST_LOG_TS"] -= $arResult["TZ_OFFSET"]; } } else { $arResult["LAST_LOG_TS"] = intval($_REQUEST["ts"]); } if ($arParams["IS_CRM"] == "Y") { $arListParams = array( "IS_CRM" => "Y", "CHECK_CRM_RIGHTS" => "Y" ); $filterParams = array( "ENTITY_TYPE" => $arParams["CRM_ENTITY_TYPE"], "ENTITY_ID" => $arParams["CRM_ENTITY_ID"], "AFFECTED_TYPES" => array(), "OPTIONS" => array( "CUSTOM_DATA" => ( isset($arParams["CUSTOM_DATA"]) && is_array($arParams["CUSTOM_DATA"]) ? $arParams["CUSTOM_DATA"] : array() ) ) ); $events = GetModuleEvents("socialnetwork", "OnBuildSocNetLogFilter"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array(&$arFilter, &$filterParams, &$arParams)); } $arListParams['CUSTOM_FILTER_PARAMS'] = $filterParams; } else { if ( IsModuleInstalled('crm') && $arParams["PUBLIC_MODE"] != "Y" ) { $arFilter["!MODULE_ID"] = ( // can't use !@MODULE_ID because of null COption::GetOptionString("crm", "enable_livefeed_merge", "N") == "Y" || ( !empty($arFilter["LOG_RIGHTS"]) && !is_array($arFilter["LOG_RIGHTS"]) && preg_match('/^SG(\d+)$/', $arFilter["LOG_RIGHTS"], $matches) ) ? array('crm') : array('crm', 'crm_shared') ); } $arListParams = array( "CHECK_RIGHTS" => "Y" ); if ( $arParams["LOG_ID"] <= 0 && ( empty($filterData) || empty($filterData['EVENT_ID']) ) ) { $arListParams["CHECK_VIEW"] = "Y"; } } if ( $arParams["USE_FOLLOW"] != "N" && !IsModuleInstalled("intranet") && isset($USER) && is_object($USER) && $USER->IsAuthorized() ) // BSM { $arResult["USE_SMART_FILTER"] = "Y"; $arListParams["MY_GROUPS_ONLY"] = ( CSocNetLogSmartFilter::GetDefaultValue($arResult["currentUserId"]) == "Y" ? "Y" : "N" ); } if ( $arResult["isExtranetSite"] || $preset_filter_id == 'extranet' || ( !empty($filterData) && !empty($filterData["EXTRANET"]) && $filterData["EXTRANET"] == 'Y' ) ) { $arListParams["MY_GROUPS_ONLY"] = "Y"; } $arResult["MY_GROUPS_ONLY"] = ( isset($arListParams["MY_GROUPS_ONLY"]) ? $arListParams["MY_GROUPS_ONLY"] : false ); if (intval($_REQUEST["pagesize"]) > 0) { $arParams["SET_LOG_PAGE_CACHE"] = "N"; } $bNeedSetLogPage = false; if ($arParams["SET_LOG_PAGE_CACHE"] == "Y") { $groupCode = (strlen($arResult["COUNTER_TYPE"]) > 0 ? $arResult["COUNTER_TYPE"] : "**"); $rsLogPages = \Bitrix\Socialnetwork\LogPageTable::getList(array( 'order' => array(), 'filter' => array( "USER_ID" => $arResult["currentUserId"], "=SITE_ID" => SITE_ID, "=GROUP_CODE" => $groupCode, "PAGE_SIZE" => $arParams["PAGE_SIZE"], "PAGE_NUM" => $arResult["PAGE_NUMBER"] ), 'select' => array('PAGE_LAST_DATE', 'TRAFFIC_AVG', 'TRAFFIC_CNT', 'TRAFFIC_LAST_DATE') )); if ($arLogPages = $rsLogPages->Fetch()) { $dateLastPageStart = $arLogPages["PAGE_LAST_DATE"]; $dateLastPageStartTS = MakeTimeStamp($arLogPages["PAGE_LAST_DATE"], CSite::GetDateFormat("FULL")); $arLastPageStart = array( 'TRAFFIC_LAST_DATE_TS' => ($arLogPages["TRAFFIC_LAST_DATE"] ? MakeTimeStamp($arLogPages["TRAFFIC_LAST_DATE"], CSite::GetDateFormat("FULL")) : 0), 'TRAFFIC_AVG' => intval($arLogPages['TRAFFIC_AVG']), 'TRAFFIC_CNT' => intval($arLogPages['TRAFFIC_CNT']) ); $arFilter[">=LOG_UPDATE"] = ConvertTimeStamp($dateLastPageStartTS - 60*60*24*4, "FULL"); } elseif( $arResult["isExtranetSite"] && !CSocNetUser::IsCurrentUserModuleAdmin() ) // extranet user { $res = UserToGroupTable::getList(array( 'order' => array( 'GROUP_DATE_CREATE' => 'ASC' ), 'filter' => array( 'USER_ID' => $arResult["currentUserId"], '@ROLE' => UserToGroupTable::getRolesMember() ), 'select' => array( 'GROUP_DATE_CREATE' => 'GROUP.DATE_CREATE' ) )); if ($relation = $res->fetch()) { $arFilter[">=LOG_UPDATE"] = $relation['GROUP_DATE_CREATE']; } } elseif ( ( $groupCode != '**' || $arResult["MY_GROUPS_ONLY"] != 'Y' ) && $arResult["PAGE_NUMBER"] <= 1 ) { $rsLogPages = \Bitrix\Socialnetwork\LogPageTable::getList(array( 'order' => array( 'PAGE_LAST_DATE' => 'DESC' ), 'filter' => array( "=SITE_ID" => SITE_ID, "=GROUP_CODE" => $groupCode, "PAGE_SIZE" => $arParams["PAGE_SIZE"], "PAGE_NUM" => $arResult["PAGE_NUMBER"] ), 'select' => array('PAGE_LAST_DATE') )); if ($arLogPages = $rsLogPages->Fetch()) { $dateLastPageStart = $arLogPages["PAGE_LAST_DATE"]; $arFilter[">=LOG_UPDATE"] = ConvertTimeStamp(MakeTimeStamp($arLogPages["PAGE_LAST_DATE"], CSite::GetDateFormat("FULL")) - 60*60*24*4, "FULL"); $bNeedSetLogPage = true; } } } if ($bCurrentUserIsAdmin) { $arListParams["USER_ID"] = "A"; } if ($arParams["USE_FOLLOW"] == "Y") { $arListParams["USE_FOLLOW"] = "Y"; } else { $arListParams["USE_FOLLOW"] = "N"; $arListParams["USE_SUBSCRIBE"] = "N"; } $arSelectFields = array( "ID", "TMP_ID", "MODULE_ID", "LOG_DATE", "LOG_UPDATE", "DATE_FOLLOW", "ENTITY_TYPE", "ENTITY_ID", "EVENT_ID", "SOURCE_ID", "USER_ID", "FOLLOW", "RATING_TYPE_ID", "RATING_ENTITY_ID" ); if ( isset($arParams["USE_FAVORITES"]) && $arParams["USE_FAVORITES"] == "N" ) { $arListParams["USE_FAVORITES"] = "N"; } elseif ($arParams["FAVORITES"] == "Y") { $arSelectFields[] = "FAVORITES_USER_ID"; } if ($DB->type == "MYSQL") { $arSelectFields[] = "LOG_DATE_TS"; } $arTmpEventsNew = array(); $arResult["arLogTmpID"] = array(); $arActivity2Log = array(); $arDiskUFEntity = array( "BLOG_POST" => array(), "SONET_LOG" => array() ); $dbEventsID = __SLLogGetIds( $arOrder, $arFilter, $arNavStartParams, $arSelectFields, $arListParams, $bFirstPage, $arResult, $arActivity2Log, $arDiskUFEntity, $arTmpEventsNew ); if ( count($arResult["arLogTmpID"]) <= 0 && $bNeedSetLogPage // no log pages for user ) { unset($dateLastPageStart); unset($arFilter[">=LOG_UPDATE"]); $dbEventsID = __SLLogGetIds( $arOrder, $arFilter, $arNavStartParams, $arSelectFields, $arListParams, $bFirstPage, $arResult, $arActivity2Log, $arDiskUFEntity, $arTmpEventsNew ); } if ( !empty($arResult["arLogTmpID"]) && $arResult["currentUserId"] > 0 && ( !isset($arParams["USE_FAVORITES"]) || $arParams["USE_FAVORITES"] != "N" ) ) { $favLogIdList = array(); $res = \Bitrix\Socialnetwork\LogFavoritesTable::getList(array( 'filter' => array( '@LOG_ID' => $arResult["arLogTmpID"], 'USER_ID' => $arResult["currentUserId"] ), 'select' => array('LOG_ID') )); while($favEntry = $res->fetch()) { $favLogIdList[] = $favEntry['LOG_ID']; } foreach($arTmpEventsNew as $key => $entry) { $arTmpEventsNew[$key]['FAVORITES_USER_ID'] = $arTmpEventsNew[$key]['!FAVORITES_USER_ID'] = ( in_array($entry['ID'], $favLogIdList) ? $arResult["currentUserId"] : 0 ); } } $cnt = count($arResult["arLogTmpID"]); if ( isset($arDiskUFEntity) && ( !empty($arDiskUFEntity["SONET_LOG"]) || !empty($arDiskUFEntity["BLOG_POST"]) ) ) { $events = GetModuleEvents("socialnetwork", "OnAfterFetchDiskUfEntity"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($arDiskUFEntity)); } } if ( !empty($arActivity2Log) && CModule::IncludeModule('crm') && CModule::IncludeModule('tasks') ) { $rsActivity = CCrmActivity::GetList( array(), array( "@ID" => array_keys($arActivity2Log), "TYPE_ID" => CCrmActivityType::Task, "CHECK_PERMISSIONS" => "N" ), false, false, array("ID", "ASSOCIATED_ENTITY_ID") ); while( ($arActivity = $rsActivity->Fetch()) && (intval($arActivity["ASSOCIATED_ENTITY_ID"]) > 0) ) { $taskItem = new CTaskItem(intval($arActivity["ASSOCIATED_ENTITY_ID"]), $arResult["currentUserId"]); if (!$taskItem->CheckCanRead()) { unset($arActivity2Log[$arActivity["ID"]]); } } } if ($bFirstPage) { $last_date = $arTmpEventsNew[count($arTmpEventsNew)-1][($arParams["USE_FOLLOW"] == "Y" ? "DATE_FOLLOW" : "LOG_UPDATE")]; } elseif ( $dbEventsID && $dbEventsID->NavContinue() && $arEvents = $dbEventsID->GetNext() ) { $next_page_date = ($arParams["USE_FOLLOW"] == "Y" ? $arEvents["DATE_FOLLOW"] : $arEvents["LOG_UPDATE"]); if ( $USER->IsAuthorized() && ($arResult["LAST_LOG_TS"] < MakeTimeStamp($next_page_date)) ) { $next_page_date = $arResult["LAST_LOG_TS"]; } } if ( $cnt == 0 && isset($dateLastPageStart) && $USER->IsAuthorized() && $arParams["SET_LOG_PAGE_CACHE"] == "Y" ) { CSocNetLogPages::DeleteEx($arResult["currentUserId"], SITE_ID, $arParams["PAGE_SIZE"], (strlen($arResult["COUNTER_TYPE"]) > 0 ? $arResult["COUNTER_TYPE"] : "**")); $bNeedSetLogPage = true; } if ( $cnt < $arParams["PAGE_SIZE"] && isset($arFilter[">=LOG_UPDATE"]) ) { $arResult["NEXT_PAGE_SIZE"] = $cnt; } elseif (intval($_REQUEST["pagesize"]) > 0) { $arResult["NEXT_PAGE_SIZE"] = intval($_REQUEST["pagesize"]); } $bArActivity2LogEmpty = empty($arActivity2Log); $tasksNum = 0; foreach ($arTmpEventsNew as $key => $arTmpEvent) { if ( $arTmpEvent["EVENT_ID"] == "crm_activity_add" && !$bArActivity2LogEmpty && !in_array($arTmpEvent["ID"], $arActivity2Log) ) { unset($arTmpEventsNew[$key]); } elseif ( !is_array($arPrevPageLogID) || !in_array($arTmpEvent["ID"], $arPrevPageLogID) ) { $arTmpEventsNew[$key]["EVENT_ID_FULLSET"] = CSocNetLogTools::FindFullSetEventIDByEventID($arTmpEvent["EVENT_ID"]); if ($arTmpEvent["EVENT_ID"] == 'tasks') { $tasksNum++; } if ($key == 0) { if ($arTmpEvent["DATE_FOLLOW"]) { $dateFirstPageTS = MakeTimeStamp($arTmpEvent["DATE_FOLLOW"], CSite::GetDateFormat("FULL")); } elseif ( $arParams["USE_FOLLOW"] == "N" && $arTmpEvent["LOG_UPDATE"] ) { $dateFirstPageTS = MakeTimeStamp($arTmpEvent["LOG_UPDATE"], CSite::GetDateFormat("FULL")); } } } else { unset($arTmpEventsNew[$key]); } } $arResult["Events"] = $arTmpEventsNew; if ( $arParams["LOG_ID"] > 0 && count($arResult["Events"]) <= 0 ) { $arResult["FatalError"] = GetMessage("SONET_73_ENTRY_NOT_FOUND"); } $contentIdList = array(); foreach ($arResult["Events"] as $i => $eventFields) { if ($contentId = \Bitrix\Socialnetwork\Livefeed\Provider::getContentId($eventFields)) { $contentIdList[] = $arResult["Events"][$i]['CONTENT_ID'] = $contentId['ENTITY_TYPE'].'-'.$contentId['ENTITY_ID']; } } $arResult["ContentViewData"] = (!empty($contentIdList) ? \Bitrix\Socialnetwork\Item\UserContentView::getViewData(array( 'contentId' => $contentIdList )) : array() ); if ($arTmpEvent["DATE_FOLLOW"]) { $arResult["dateLastPageTS"] = MakeTimeStamp($arTmpEvent["DATE_FOLLOW"], CSite::GetDateFormat("FULL")); } elseif ($arParams["USE_FOLLOW"] == "N") { if ( !empty($arOrder["LOG_DATE"]) && $arTmpEvent["LOG_DATE"] ) { $arResult["dateLastPageTS"] = MakeTimeStamp($arTmpEvent["LOG_DATE"], CSite::GetDateFormat("FULL")); } elseif ($arTmpEvent["LOG_UPDATE"]) { $arResult["dateLastPageTS"] = MakeTimeStamp($arTmpEvent["LOG_UPDATE"], CSite::GetDateFormat("FULL")); } } if (!empty($arResult["dateLastPageTS"])) { $dateLastPage = ConvertTimeStamp($arResult["dateLastPageTS"], "FULL"); } $arResult["dateLastPageId"] = $arTmpEvent["ID"]; $arResult["WORKGROUPS_PAGE"] = $folderWorkgroups; $arResult["LOG_COUNTER"] = $arResult["LOG_COUNTER_IMPORTANT"] = 0; if ( $USER->IsAuthorized() && $arParams["SET_LOG_COUNTER"] == "Y" ) { $arCounters = CUserCounter::GetValues($arResult["currentUserId"], SITE_ID); if (isset($arCounters["BLOG_POST_IMPORTANT"])) { $arResult["LOG_COUNTER_IMPORTANT"] = intval($arCounters["BLOG_POST_IMPORTANT"]); } if (isset($arCounters[$arResult["COUNTER_TYPE"]])) { $arResult["LOG_COUNTER"] = intval($arCounters[$arResult["COUNTER_TYPE"]]); } else { $bEmptyCounter = true; $arResult["LOG_COUNTER"] = 0; } } if ( $USER->IsAuthorized() && IsModuleInstalled('tasks') ) { $arResult["EXPERT_MODE"] = "N"; $rs = \Bitrix\Socialnetwork\LogViewTable::getList(array( 'order' => array(), 'filter' => array( "USER_ID" => $arResult["currentUserId"], "EVENT_ID" => 'tasks' ), 'select' => array('TYPE') )); if ($ar = $rs->Fetch()) { $arResult["EXPERT_MODE"] = ($ar['TYPE'] == "N" ? "Y" : "N"); } } if ( $USER->IsAuthorized() && $arParams["SET_LOG_PAGE_CACHE"] == "Y" && $dateLastPage && ( !$dateLastPageStart || $dateLastPageStart != $dateLastPage || $bNeedSetLogPage ) ) { $groupCode = (strlen($arResult["COUNTER_TYPE"]) > 0 ? $arResult["COUNTER_TYPE"] : "**"); $bNeedSetTraffic = CSocNetLogComponent::isSetTrafficNeeded(array( "PAGE_NUMBER" => $arResult["PAGE_NUMBER"], "GROUP_CODE" => $groupCode, "TRAFFIC_LAST_DATE_TS" => $arLastPageStart['TRAFFIC_LAST_DATE_TS'] )); CSocNetLogPages::Set( $arResult["currentUserId"], ConvertTimeStamp(MakeTimeStamp($dateLastPage, CSite::GetDateFormat("FULL")) - $arResult["TZ_OFFSET"], "FULL"), $arParams["PAGE_SIZE"], $arResult["PAGE_NUMBER"], SITE_ID, $groupCode, ( $bNeedSetTraffic ? ($arLastPageStart['TRAFFIC_AVG'] + $dateFirstPageTS - $arResult["dateLastPageTS"]) / ($arLastPageStart['TRAFFIC_CNT'] + 1) : false ), ( $bNeedSetTraffic ? ($arLastPageStart['TRAFFIC_CNT'] + 1) : false ) ); if ( $arResult["PAGE_NUMBER"] == 1 && IsModuleInstalled('tasks') && $arResult["EXPERT_MODE"] != "Y" ) { $arResult["EXPERT_MODE_SET"] = \Bitrix\Socialnetwork\LogViewTable::checkExpertModeAuto($arResult["currentUserId"], $tasksNum, $arParams["PAGE_SIZE"]); if ($arResult["EXPERT_MODE_SET"]) { $arParams["SET_LOG_COUNTER"] = "N"; } } } if ( $USER->IsAuthorized() && $arParams["SET_LOG_COUNTER"] == "Y" && ( intval($arResult["LOG_COUNTER"]) > 0 || $bEmptyCounter ) ) { CUserCounter::ClearByUser( $arResult["currentUserId"], array(SITE_ID, "**"), $arResult["COUNTER_TYPE"], true ); if (intval($arResult["LOG_COUNTER_IMPORTANT"]) > 0) { CUserCounter::ClearByUser( $arResult["currentUserId"], SITE_ID, "BLOG_POST_IMPORTANT" ); } $db_events = GetModuleEvents("socialnetwork", "OnSonetLogCounterClear"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent, array($arResult["COUNTER_TYPE"], intval($arResult["LAST_LOG_TS"]))); } } } else { $arResult["NEED_AUTH"] = "Y"; } if ( !isset($arResult["FatalError"]) && $USER->IsAuthorized() && !$arResult["AJAX_CALL"] ) { $cache = new CPHPCache; $cache_id = "log_form_comments".serialize($arParams["COMMENT_PROPERTY"]); $cache_path = "/sonet/log_form/comments"; if(defined("BX_COMP_MANAGED_CACHE")) $ttl = 2592000; else $ttl = 600; if ($cache->InitCache($ttl, $cache_id, $cache_path)) { $Vars = $cache->GetVars(); $arResult["COMMENT_PROPERTIES"] = $Vars["comment_props"]; $cache->Output(); } else { $cache->StartDataCache($ttl, $cache_id, $cache_path); $arResult["COMMENT_PROPERTIES"] = array("SHOW" => "N"); if (!empty($arParams["COMMENT_PROPERTY"])) { $arPostFields = $USER_FIELD_MANAGER->GetUserFields("SONET_COMMENT", 0, LANGUAGE_ID); if (count($arParams["COMMENT_PROPERTY"]) > 0) { foreach ($arPostFields as $FIELD_NAME => $arPostField) { if (!in_array($FIELD_NAME, $arParams["COMMENT_PROPERTY"])) continue; $arPostField["EDIT_FORM_LABEL"] = strLen($arPostField["EDIT_FORM_LABEL"]) > 0 ? $arPostField["EDIT_FORM_LABEL"] : $arPostField["FIELD_NAME"]; $arPostField["~EDIT_FORM_LABEL"] = $arPostField["EDIT_FORM_LABEL"]; $arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["EDIT_FORM_LABEL"]); $arResult["COMMENT_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField; } } if (!empty($arResult["COMMENT_PROPERTIES"]["DATA"])) $arResult["COMMENT_PROPERTIES"]["SHOW"] = "Y"; } $cache->EndDataCache(array("comment_props" => $arResult["COMMENT_PROPERTIES"])); } } $arResult["bGetComments"] = $bGetComments; $arResult["GET_COMMENTS"] = ($bGetComments ? "Y" : "N"); if (!isset($arResult["FatalError"])) { if (CModule::IncludeModule("forum")) { $arResult["Smiles"] = COption::GetOptionInt("forum", "smile_gallery_id", 0); } else { if($CACHE_MANAGER->Read(604800, "b_sonet_smile_".LANGUAGE_ID)) { $arResult["Smiles"] = $CACHE_MANAGER->Get("b_sonet_smile_".LANGUAGE_ID); } else { $arResult["Smiles"] = array(); $rsSmile = CSocNetSmile::GetList( array("SORT" => "ASC"), array("SMILE_TYPE" => "S", "LANG_LID" => LANGUAGE_ID), false, false, array("ID", "IMAGE", "DESCRIPTION", "TYPING", "SMILE_TYPE", "SORT", "LANG_NAME") ); while ($arSmile = $rsSmile->Fetch()) { list($type) = explode(" ", $arSmile["TYPING"]); $arSmile["TYPE"] = str_replace("'", "\'", $type); $arSmile["TYPE"] = str_replace("\\", "\\\\", $arSmile["TYPE"]); $arSmile["NAME"] = $arSmile["LANG_NAME"]; $arSmile["IMAGE"] = "/bitrix/images/socialnetwork/smile/".$arSmile["IMAGE"]; $arResult["Smiles"][] = $arSmile; } $CACHE_MANAGER->Set("b_sonet_smile_".LANGUAGE_ID, $arResult["Smiles"]); } } } $this->IncludeComponentTemplate(); ?>