$cache_id = "blog_last_messages_" . serialize($arParams) . "_" . serialize($UserGroupID) . "_" . $USER->IsAdmin(); if (($tzOffset = CTimeZone::GetOffset()) != 0) { $cache_id .= "_" . $tzOffset; } if ($arParams["USE_SOCNET"] == "Y") { $cache_id .= "_" . $user_id; } $cache_path = "/" . SITE_ID . "/blog/last_messages/"; $arResult = array(); if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) { $Vars = $cache->GetVars(); foreach ($Vars["arResult"] as $k => $v) { $arResult[$k] = $v; } CBitrixComponentTemplate::ApplyCachedData($Vars["templateCachedData"]); $cache->Output(); } else { if ($arParams["CACHE_TIME"] > 0) { $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path); } $arFilter = array("<=DATE_PUBLISH" => ConvertTimeStamp(time() + $tzOffset, "FULL", false), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, ">PERMS" => BLOG_PERMS_DENY, "BLOG_ACTIVE" => "Y", "BLOG_GROUP_SITE_ID" => SITE_ID); if (strlen($arParams["BLOG_URL"]) > 0) { $arFilter["BLOG_URL"] = $arParams["BLOG_URL"]; } if (!empty($arParams["GROUP_ID"])) { $arFilter["BLOG_GROUP_ID"] = $arParams["GROUP_ID"]; } if ($USER->IsAdmin()) { unset($arFilter[">PERMS"]); } $arSelectedFields = array("ID", "BLOG_ID", "TITLE", "DATE_PUBLISH", "AUTHOR_ID", "DETAIL_TEXT", "BLOG_ACTIVE", "BLOG_URL", "BLOG_GROUP_ID", "BLOG_GROUP_SITE_ID", "AUTHOR_LOGIN", "AUTHOR_NAME", "AUTHOR_LAST_NAME", "AUTHOR_SECOND_NAME", "BLOG_USER_ALIAS", "BLOG_OWNER_ID", "VIEWS", "NUM_COMMENTS", "ATTACH_IMG", "BLOG_SOCNET_GROUP_ID", "CODE", "MICRO");
$arFilter["CATEGORY_ID_F"][] = $arCategory["ID"]; } } if ($USER->IsAdmin()) { unset($arFilter[">PERMS"]); } if (CModule::IncludeModule("socialnetwork") && IntVal($arParams["SOCNET_GROUP_ID"]) <= 0 && IntVal($arParams["USER_ID"]) <= 0) { unset($arFilter[">PERMS"]); $cacheSoNet = new CPHPCache(); $cache_idSoNet = "blog_sonet_" . SITE_ID . "_" . $USER->GetID() . "_extranet"; $cache_pathSoNet = "/" . SITE_ID . "/blog/sonet/"; if ($arParams["CACHE_TIME"] > 0 && $cacheSoNet->InitCache($arParams["CACHE_TIME"], $cache_idSoNet, $cache_pathSoNet)) { $Vars = $cacheSoNet->GetVars(); $arAvBlog = $Vars["arAvBlog"]; CBitrixComponentTemplate::ApplyCachedData($Vars["templateCachedData"]); $cacheSoNet->Output(); } else { if ($arParams["CACHE_TIME"] > 0) { $cacheSoNet->StartDataCache($arParams["CACHE_TIME"], $cache_idSoNet, $cache_pathSoNet); } $arUsersInMyGroupsID = CExtranet::GetMyGroupsUsers(SITE_ID); $arUsersInMyGroupsID[] = $USER->GetID(); $arPublicUsersID = CExtranet::GetPublicUsers(); $arUsersToFilter = array_merge($arUsersInMyGroupsID, $arPublicUsersID); $arAvBlog = array(); $arFilterTmp = array("ACTIVE" => "Y", "GROUP_SITE_ID" => SITE_ID); if (IntVal($arParams["GROUP_ID"]) > 0) { $arFilterTmp["GROUP_ID"] = $arParams["GROUP_ID"]; } $dbBlog = CBlog::GetList(array(), $arFilterTmp); while ($arBlog = $dbBlog->Fetch()) {