예제 #1
0
 $res["~ATTACH_FILE"] = array();
 $res["ATTACH_FILE"] = array();
 /************** Message info/***************************************/
 /************** Author info ****************************************/
 $res["AUTHOR_ID"] = intVal($res["AUTHOR_ID"]);
 $res["AUTHOR_NAME"] = $parser->wrap_long_words($res["AUTHOR_NAME"]);
 if ($res["AUTHOR_ID"] <= 0) {
     // Status
     list($res["AUTHOR_STATUS_CODE"], $res["AUTHOR_STATUS"]) = ForumGetUserForumStatus(0);
 } else {
     if (!array_key_exists($res["AUTHOR_ID"], $UserInfo)) {
         $perm = CForumNew::GetUserPermission($res["FORUM_ID"], CUser::GetUserGroup($res["AUTHOR_ID"]));
         $arUser = array("Perms" => $perm, "Rank" => $perm <= "Q" ? CForumUser::GetUserRank($res["AUTHOR_ID"], LANGUAGE_ID) : "", "Points" => !empty($res["POINTS"]) ? array("POINTS" => $res["POINTS"], "DATE_UPDATE" => $res["DATE_UPDATE"]) : false);
         $arUData = array();
         // Status
         list($arUData["AUTHOR_STATUS_CODE"], $arUData["AUTHOR_STATUS"]) = ForumGetUserForumStatus($res["AUTHOR_ID"], $arUser["Perms"], $arUser);
         // Avatar
         if (!empty($res["AVATAR"])) {
             $arUData["AVATAR"] = array("ID" => $res["~AVATAR"], "FILE" => CFile::GetFileArray($res["~AVATAR"]));
             $arUData["AVATAR"]["HTML"] = CFile::ShowImage($arUData["AVATAR"]["FILE"], COption::GetOptionString("forum", "avatar_max_width", 90), COption::GetOptionString("forum", "avatar_max_height", 90), "border=\"0\"", "", true);
         }
         // Voting
         $arUData["VOTING"] = "N";
         if (COption::GetOptionString("forum", "SHOW_VOTES", "Y") == "Y" && $USER->IsAuthorized() && ($GLOBALS["APPLICATION"]->GetGroupRight("forum") >= "W" || $USER->GetID() != $res["AUTHOR_ID"])) {
             $bUnVote = $arUser["Points"];
             $bVote = !$arUser["Points"] ? $arResult["USER"]["RANK"]["VOTES"] : intval($arUser["Points"]["POINTS"]) < intval($arResult["USER"]["RANK"]["VOTES"]);
             $bVote = $bVote ? $bVote : $GLOBALS["APPLICATION"]->GetGroupRight("forum") >= "W";
             $arUData["VOTING"] = $bVote ? "VOTE" : ($bUnVote ? "UNVOTE" : "N");
         }
         // data
         $arUData["DATE_REG"] = CForumFormat::DateFormat($arParams["DATE_FORMAT"], MakeTimeStamp($res["DATE_REG"], CSite::GetDateFormat()));
예제 #2
0
if (!CForumUser::IsAdmin()) {
    $arFilter["PERMS"] = array($USER->GetGroups(), 'A');
    $arFilter["ACTIVE"] = "Y";
}
$arUserPerm = array();
$db_res = CForumNew::GetList(array(), $arFilter);
if ($db_res && ($res = $db_res->GetNext())) {
    $arUserGroup = CUser::GetUserGroup($arParams["UID"]);
    do {
        $arResult["FORUMS"][$res["ID"]] = $res;
        $arUserPerm[] = CForumNew::GetUserPermission($res["ID"], $arUserGroup);
    } while ($res = $db_res->GetNext());
}
rsort($arUserPerm);
$arRank = CForumUser::GetUserRank($arParams["UID"], LANGUAGE_ID);
list($arResult["USER_RANK_CODE"], $arResult["USER_RANK"]) = ForumGetUserForumStatus($arParams["UID"], $arUserPerm[0], array("Rank" => $arRank));
$arResult["SHOW_POINTS"] = "N";
$arResult["arRank"] = array_merge(is_array($arRank) ? $arRank : array(), array("NAME" => $arResult["USER_RANK"]));
if ($USER->IsAuthorized() && (CForumUser::IsAdmin() || intval($USER->GetID()) == $arParams["UID"])) {
    $arResult["SHOW_POINTS"] = "Y";
    $arResult["USER_POINTS"] = !empty($arRank["VOTES"]) ? intval($arRank["VOTES"]) : GetMessage("F_NO_VOTES");
}
/*******************************************************************/
$arResult["arTopic"] = "N";
if (!empty($arResult["FORUMS"])) {
    $db_res = CForumUser::UserAddInfo(array("LAST_POST" => "DESC"), array("AUTHOR_ID" => $arParams["UID"], "@FORUM_ID" => array_keys($arResult["FORUMS"])), "topics");
    if ($db_res && ($res = $db_res->GetNext())) {
        $res["TITLE"] = $parser->wrap_long_words($res["TITLE"]);
        $res["DESCRIPTION"] = $parser->wrap_long_words($res["DESCRIPTION"]);
        $res["LAST_POST_DATE"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($res["LAST_POST_DATE"], CSite::GetDateFormat()));
        $arResult["arTopic"] = array_merge($res, array("read" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("FID" => $res["FORUM_ID"], "TID" => $res["TOPIC_ID"], "TITLE_SEO" => $res["TITLE_SEO"], "MID" => intval($res["LAST_POST"]))) . "#message" . intval($res["LAST_POST"])));
예제 #3
0
 $arResult["SortingEx"]["LAST_VISIT"] = SortingEx("LAST_VISIT", $APPLICATION->GetCurPageParam());
 if ($res = $db_res->GetNext()) {
     do {
         $arUserGroup = array();
         $UserPerm = array();
         $res["AUTHOR_STATUS"] = "";
         $res["AUTHOR_STATUS_CODE"] = "";
         // geting max permisson of User from all forums
         if ($arParams["SHOW_USER_STATUS"] == "Y") {
             $arUserGroup = CUser::GetUserGroup($res["USER_ID"]);
             sort($arUserGroup);
             foreach ($arForums as $forum) {
                 $UserPerm[] = CForumNew::GetUserPermission($forum["ID"], $arUserGroup);
             }
             rsort($UserPerm);
             list($res["AUTHOR_STATUS_CODE"], $res["AUTHOR_STATUS"]) = ForumGetUserForumStatus($res["USER_ID"], $UserPerm[0]);
         }
         $res["UserStatus"] = $res["AUTHOR_STATUS"];
         $res["URL"] = array("AUTHOR" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $res["USER_ID"])), "~AUTHOR" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $res["USER_ID"])), "POSTS" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_USER_POST"], array("UID" => $res["USER_ID"], "mode" => "all")), "~POSTS" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_USER_POST"], array("UID" => $res["USER_ID"], "mode" => "all")));
         $res["profile_view"] = $res["URL"]["AUTHOR"];
         $res["user_post"] = $res["URL"]["POSTS"];
         $res["pm_edit"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_EDIT"], array("FID" => 0, "MID" => 0, "mode" => "new", "UID" => $res["USER_ID"]));
         $res["mail"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE_SEND"], array("TYPE" => "mail", "UID" => $res["USER_ID"]));
         $res["DATE_REG"] = !empty($res["DATE_REGISTER_SHORT"]) ? CForumFormat::DateFormat($arParams["DATE_FORMAT"], MakeTimeStamp($res["DATE_REGISTER_SHORT"], CSite::GetDateFormat())) : "";
         $res["LAST_VISIT"] = !empty($res["LAST_VISIT"]) ? CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($res["LAST_VISIT"], CSite::GetDateFormat())) : "";
         $res["icq"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE_SEND"], array("TYPE" => "icq", "UID" => $res["USER_ID"]));
         if (strLen($res["AVATAR"]) > 0) {
             $res["~AVATAR"] = array("ID" => $res["AVATAR"], "FILE" => CFile::GetFileArray($res["AVATAR"]));
             $res["~AVATAR"]["HTML"] = CFile::ShowImage($res["~AVATAR"]["FILE"], COption::GetOptionString("forum", "avatar_max_width", 100), COption::GetOptionString("forum", "avatar_max_height", 100), "border=\"0\"", "", true);
             $res["~AVATAR"]["HTML_SMALL"] = CFile::ShowImage($res["~AVATAR"]["FILE"], 20, 20, "border=0 alt=\"\"", "", true);
             $res["AVATAR_ARRAY"] = $res["~AVATAR"];
예제 #4
0
 /************** Message List/***************************************/
 if (!empty($arTopicNeeded)) {
     $db_res = CForumUser::UserAddInfo(array(), array("@TOPIC_ID" => implode(",", $arTopicNeeded), "AUTHOR_ID" => $arParams["UID"]), false, false, false);
     if ($db_res && ($res = $db_res->GetNext())) {
         do {
             $arTopics[$res["TOPIC_ID"]] = $res;
         } while ($res = $db_res->GetNext());
     }
 }
 foreach ($topics as $topic_id => $res) {
     $forum_id = intval($arTopics[$topic_id]["FORUM_ID"]);
     if (!array_key_exists($forum_id, $forums)) {
         $UserPermStr = "";
         $UserPermCode = "";
         $UserPerm = CForumNew::GetUserPermission($forum_id, $arResult["USER"]["GROUPS"]);
         list($UserPermCode, $UserPermStr) = ForumGetUserForumStatus($arParams["UID"], $UserPerm, $arResult["USER"]["RANK"]);
         $forums[$forum_id] = array_merge($arResult["FORUMS_ALL"][$forum_id], array("NUM_POSTS_ALL" => $arForum_posts[$forum_id], "PERMISSION" => $UserPerm, "USER_PERM" => $UserPerm, "AUTHOR_STATUS" => $UserPermStr, "USER_PERM_STR" => $UserPermStr, "AUTHOR_STATUS_CODE" => $UserPermCode, "TOPICS" => array()));
     }
     $arTopics[$topic_id]["TITLE"] = $arResult["PARSER"]->wrap_long_words($arTopics[$topic_id]["TITLE"]);
     $arTopics[$topic_id]["DESCRIPTION"] = $arResult["PARSER"]->wrap_long_words($arTopics[$topic_id]["DESCRIPTION"]);
     $arTopics[$topic_id]["URL"] = array("TOPIC" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_READ"], array("FID" => $arTopics[$topic_id]["FORUM_ID"], "TID" => $arTopics[$topic_id]["TOPIC_ID"], "TITLE_SEO" => $arTopics[$topic_id]["TOPIC_ID"], "MID" => "s")), "~TOPIC" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_READ"], array("FID" => $arTopics[$topic_id]["FORUM_ID"], "TID" => $arTopics[$topic_id]["TOPIC_ID"], "TITLE_SEO" => $arTopics[$topic_id]["TOPIC_ID"], "MID" => "s")));
     /************** For custom templates *******************************/
     $arTopics[$topic_id]["read"] = $arTopics[$topic_id]["URL"]["TOPIC"];
     /************** For custom templates *******************************/
     $forums[$forum_id]["TOPICS"][$topic_id] = $topics[$topic_id] = array_merge($arTopics[$topic_id], $res);
 }
 /*******************************************************************/
 /************** Urls ***********************************************/
 foreach ($arResult["MESSAGE_LIST"] as $iID => $res) {
     $topic = $arTopics[$topic_id];
     $res["URL"] = array("MESSAGE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("FID" => $res["FORUM_ID"], "TID" => $topic["ID"], "TITLE_SEO" => $topic["TITLE_SEO"], "MID" => $res["ID"])), "EDITOR" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $res["EDITOR_ID"])), "AUTHOR" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $res["AUTHOR_ID"])), "AUTHOR_EMAIL" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE_SEND"], array("UID" => $res["AUTHOR_ID"], "TYPE" => "email")), "AUTHOR_ICQ" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE_SEND"], array("UID" => $res["AUTHOR_ID"], "TYPE" => "icq")), "AUTHOR_PM" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_EDIT"], array("FID" => 0, "MID" => 0, "UID" => $res["AUTHOR_ID"], "mode" => "new")));