} if ($arParams["SET_LOG_COUNTER"] == "Y") { $arResult["LAST_LOG_TS"] = CUserCounter::GetLastDate($GLOBALS["USER"]->GetID(), $arResult["COUNTER_TYPE"]); $counterLastDate = ConvertTimeStamp($arResult["LAST_LOG_TS"], "FULL"); 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"]; } } elseif ($arResult["COUNTER_TYPE"] == "**" && ($arParams["LOG_ID"] > 0 || $arResult["AJAX_CALL"]) && intval($_REQUEST["LAST_LOG_TS"]) > 0) { $arResult["LAST_LOG_TS"] = intval($_REQUEST["LAST_LOG_TS"]); } if ($arParams["SET_LOG_PAGE_CACHE"] == "Y") { $rsLogPages = CSocNetLogPages::GetList(array("USER_ID" => $GLOBALS["USER"]->GetID(), "SITE_ID" => SITE_ID, "PAGE_SIZE" => $arParams["PAGE_SIZE"], "PAGE_NUM" => $arResult["PAGE_NUMBER"]), array("PAGE_LAST_DATE")); if ($arLogPages = $rsLogPages->Fetch()) { $arFilter[">=LOG_UPDATE"] = $arLogPages["PAGE_LAST_DATE"]; } } if ($arParams["SUBSCRIBE_ONLY"] == "Y") { $arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc(); foreach ($arSocNetAllowedSubscribeEntityTypesDesc as $entity_type_tmp => $arEntityTypeTmp) { if (array_key_exists("HAS_MY", $arEntityTypeTmp) && $arEntityTypeTmp["HAS_MY"] == "Y" && array_key_exists("CLASS_MY", $arEntityTypeTmp) && array_key_exists("METHOD_MY", $arEntityTypeTmp) && strlen($arEntityTypeTmp["CLASS_MY"]) > 0 && strlen($arEntityTypeTmp["METHOD_MY"]) > 0 && method_exists($arEntityTypeTmp["CLASS_MY"], $arEntityTypeTmp["METHOD_MY"])) { $arMyEntities[$entity_type_tmp] = call_user_func(array($arEntityTypeTmp["CLASS_MY"], $arEntityTypeTmp["METHOD_MY"])); } } $arListParams = array("CHECK_RIGHTS" => "Y", "USE_SUBSCRIBE" => "Y", "MY_ENTITIES" => $arMyEntities); if (!$arParams["SHOW_HIDDEN"]) { $arListParams["VISIBLE"] = "Y"; } else {
$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"; } if ($arParams["SET_LOG_PAGE_CACHE"] == "Y") { $groupCode = strlen($arResult["COUNTER_TYPE"]) > 0 ? $arResult["COUNTER_TYPE"] : "**"; $rsLogPages = \Bitrix\Socialnetwork\LogPageTable::getList(array('order' => array('USER_ID' => 'ASC'), 'filter' => array("USER_ID" => $user_id, "SITE_ID" => SITE_ID, "GROUP_CODE" => $groupCode, "PAGE_SIZE" => $arParams["PAGE_SIZE"], "PAGE_NUM" => $arResult["PAGE_NUMBER"]), 'group' => array("USER_ID"), '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 ($groupCode != '**' || $arResult["MY_GROUPS_ONLY"] != 'Y') { $rsLogPages = CSocNetLogPages::GetList(array("PAGE_LAST_DATE" => "DESC"), array("SITE_ID" => SITE_ID, "GROUP_CODE" => $groupCode, "PAGE_SIZE" => $arParams["PAGE_SIZE"], "PAGE_NUM" => $arResult["PAGE_NUMBER"]), false, false, 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";
$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["SET_LOG_PAGE_CACHE"] == "Y") { $rsLogPages = CSocNetLogPages::GetList(array(), array("USER_ID" => $user_id, "SITE_ID" => SITE_ID, "GROUP_CODE" => strlen($arResult["COUNTER_TYPE"]) > 0 ? $arResult["COUNTER_TYPE"] : "**", "PAGE_SIZE" => $arParams["PAGE_SIZE"], "PAGE_NUM" => $arResult["PAGE_NUMBER"]), false, false, 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"); } elseif ($arResult["MY_GROUPS_ONLY"]) { $rsLogPages = CSocNetLogPages::GetList(array("PAGE_LAST_DATE" => "DESC"), array("SITE_ID" => SITE_ID, "GROUP_CODE" => strlen($arResult["COUNTER_TYPE"]) > 0 ? $arResult["COUNTER_TYPE"] : "**", "PAGE_SIZE" => $arParams["PAGE_SIZE"], "PAGE_NUM" => $arResult["PAGE_NUMBER"]), false, false, 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 ($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;