Example #1
0
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;
Example #2
0
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;
}