if (in_array("USERS_ONLINE", $arParams["SHOW"])) { $UserHideOnLine = 0; $Guest = 0; $arFields = array(); if ($arParams["FID"] && !$arParams["TID"]) { $arFields["FORUM_ID"] = $arParams["FID"]; } elseif ($arParams["TID"]) { $arFields["TOPIC_ID"] = $arParams["TID"]; } else { $arFields["SITE_ID"] = SITE_ID; } $arFields += array("ACTIVE" => "Y", "<=PERIOD" => $arParams["PERIOD"], "COUNT_GUEST" => true); $cache_id = "forum_user_online_" . serialize(array($arFields, $arParams["URL_TEMPLATES_PROFILE_VIEW"])); $cache_path = $cache_path_main . "user_online/"; $arUser = array("USERS" => array(), "USERS_HIDDEN" => array(), "GUEST" => 0, "REGISTER" => 0, "ALL" => 0); $db_res = CForumStat::GetListEx(array("USER_ID" => "DESC"), $arFields, array("sNameTemplate" => $arParams["NAME_TEMPLATE"])); if ($db_res && ($res = $db_res->GetNext())) { do { if ($res["USER_ID"] > 0) { $res["SHOW_NAME"] = $parser->wrap_long_words($res["SHOW_NAME"]); $res["profile_view"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $res["USER_ID"])); if ($res["HIDE_FROM_ONLINE"] != "Y") { $arUser["USERS"][] = $res; } else { $arUser["USERS_HIDDEN"][] = $res; } } else { $Guest = intVal($res["COUNT_USER"]); } } while ($res = $db_res->GetNext()); $arUser["GUEST"] = $Guest;
function ForumSetLastVisit($FID = false, $TID = false, $arAddParams = array()) { global $DB; // For custom components $GLOBALS["FID"] = $FID = $FID === false && intVal($GLOBALS["FID"]) > 0 ? intVal($GLOBALS["FID"]) : $FID; if ($GLOBALS["USER"]->IsAuthorized()) { $GLOBALS["SHOW_FORUM_ICON"] = true; // out-of-date param $USER_ID = $GLOBALS["USER"]->GetID(); $arUserFields = array("=LAST_VISIT" => $DB->GetNowFunction()); if (!is_array($_SESSION["FORUM"]["USER"]) || $_SESSION["FORUM"]["USER"]["USER_ID"] != $GLOBALS["USER"]->GetID()) { $_SESSION["FORUM"]["USER"] = CForumUser::GetByUSER_ID($USER_ID); if (!$_SESSION["FORUM"]["USER"]) { $arUserFields["USER_ID"] = $USER_ID; CForumUser::Add($arUserFields); $_SESSION["FORUM"]["USER"] = CForumUser::GetByUSER_ID($USER_ID); } $_SESSION["FORUM"]["SHOW_NAME"] = $_SESSION["FORUM"]["USER"]["SHOW_NAME"]; } if (!is_set($arUserFields, "USER_ID")) { CForumUser::Update($USER_ID, $arUserFields, false, true); } } ForumInitParams(); if ($_SESSION["SESS_SEARCHER_ID"] > 0 && CModule::IncludeModule("statistic")) { return; } else { CForumStat::RegisterUSER(array("SITE_ID" => SITE_ID, "FORUM_ID" => $FID, "TOPIC_ID" => $TID)); } return true; }