global $CACHE_MANAGER; $cache_path = $CACHE_MANAGER->GetCompCachePath(CComponentEngine::MakeComponentPath($this->__name)); $arCacheID = array($arResult["PERMISSION"] < "Q", $arParams['FID'], CTimeZone::GetOffset(), $by => $order); $cache_id = "forum_topics_" . md5(serialize($arCacheID)); if ($PAGEN == null && $arParams["CACHE_TIME"] > 0 && defined("BX_COMP_MANAGED_CACHE")) { if ($cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path)) { $res = $cache->GetVars(); $arResult["Topics"] = $res["Topics"]; $arResult["NAV_STRING"] = $res['NAV_STRING']; $arResult["NAV_PAGE"] = $res['NAV_PAGE']; // get last_visit dates $arTopics = array(); foreach ($arResult['Topics'] as $arTopic) { $arTopics[] = $arTopic['ID']; } $arVisit = CForumUser::GetUserTopicVisits($arParams["FID"], $arTopics); if (!empty($arVisit)) { foreach ($arResult['Topics'] as $topicIndex => $arTopic) { if (isset($arVisit[$arTopic['ID']])) { $arResult['Topics'][$topicIndex]['LAST_VISIT'] = $arVisit[$arTopic['ID']]; } } } } } /******************************************************************* / CACHE *******************************************************************/ if (empty($arResult["Topics"])) { /*******************************************************************/ $db_res = CForumTopic::GetListEx(array("SORT" => "ASC", $by => $order), $arFilter, false, false, array("bDescPageNumbering" => $arParams["USE_DESC_PAGE"] == "Y", "nPageSize" => $arParams["TOPICS_PER_PAGE"], "bShowAll" => false, "sNameTemplate" => $arParams["NAME_TEMPLATE"]));