// attach $res["ATTACH_IMG"] = ""; $res["FILES"] = array(); $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");
$arResult["FORUMS_ALL"] = $arForums; /******************************************************************** Default params ********************************************************************/ $arResult["user_list"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_USER_LIST"], array()); $arResult["SHOW_RESULT"] = "N"; $arResult["GROUPS"] = CForumGroup::GetByLang(LANGUAGE_ID); $arResult["USER"]["URL"] = array("PROFILE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arParams["UID"])), "~PROFILE" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arParams["UID"]))); if (!empty($arResult["USER"]["AVATAR"])) { $arResult["USER"]["~AVATAR"] = array("ID" => $arResult["USER"]["AVATAR"], "FILE" => CFile::GetFileArray($arResult["USER"]["AVATAR"])); $arResult["USER"]["~AVATAR"]["HTML"] = CFile::ShowImage($arResult["USER"]["~AVATAR"]["FILE"], COption::GetOptionString("forum", "avatar_max_width", 90), COption::GetOptionString("forum", "avatar_max_height", 90), "border=\"0\"", "", true); $arResult["USER"]["AVATAR"] = $arResult["USER"]["~AVATAR"]["HTML"]; } $arResult["USER"]["DATE_REG"] = !empty($arResult["USER"]["DATE_REG"]) ? CForumFormat::DateFormat($arParams["DATE_FORMAT"], MakeTimeStamp($arResult["USER"]["DATE_REG"], CSite::GetDateFormat())) : $arResult["USER"]["DATE_REG"]; $arResult["USER"]["GROUPS"] = CUser::GetUserGroup($arParams["UID"]); $arResult["USER"]["RANK"] = CForumUser::GetUserRank($arParams["UID"], LANGUAGE_ID); $arResult["PARSER"] = new forumTextParser(LANGUAGE_ID, $arParams["PATH_TO_SMILE"]); $arResult["PARSER"]->MaxStringLen = $arParams["WORD_LENGTH"]; $arResult["PARSER"]->image_params["width"] = $arResult["PARSER"]->image_params["height"] = $arParams["IMAGE_SIZE"]; $arResult["PARSER"]->userPath = $arParams["URL_TEMPLATES_PROFILE_VIEW"]; $arResult["PARSER"]->userNameTemplate = $arParams["NAME_TEMPLATE"]; $arTopics = array(); $arTopicNeeded = array(); $forums = array(); $topics = array(); $arFilterFromForm = array(); $FilterMess = array(); $FilterMessLast = array(); $arForum_posts = array(); $arResult["MESSAGE_LIST"] = array(); $arResult["FORUMS"] = array();
} 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()));
/************** 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" => (intVal($res["POINTS"]) > 0 ? 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); endif; // Voting
function ForumGetUserForumStatus($userID = false, $perm = false, $arAdditionalParams = array()) { $arStatuses = array("guest" => array("guest", $GLOBALS["FORUM_STATUS_NAME"]["guest"]), "user" => array("user", $GLOBALS["FORUM_STATUS_NAME"]["user"]), "Q" => array("moderator", $GLOBALS["FORUM_STATUS_NAME"]["moderator"]), "U" => array("editor", $GLOBALS["FORUM_STATUS_NAME"]["editor"]), "Y" => array("administrator", $GLOBALS["FORUM_STATUS_NAME"]["administrator"])); $res = $userID === false ? $arStatuses : $arStatuses["guest"]; if (!empty($userID)) { $res = $arStatuses["user"]; if ($arStatuses[$perm]) { $res = $arStatuses[$perm]; } else { $arRank = is_set($arAdditionalParams, "Rank") ? $arAdditionalParams["Rank"] : CForumUser::GetUserRank($userID, LANGUAGE_ID); if (is_array($arRank) && $arRank["NAME"]) { $res = array($arRank["CODE"], $arRank["NAME"]); } } } return $res; }
do { $arUserGroup = CUser::GetUserGroup($res["USER_ID"]); if (!in_array(2, $arUserGroup)) { $arUserGroup[] = 2; } sort($arUserGroup); $UserP = array(); $UserPermStr = ""; foreach ($Forums as $forum) { $UserP[] = CForumNew::GetUserPermission($forum["ID"], $arUserGroup); } rsort($UserP); if (array_key_exists($UserP[0], $ForumsPerms)) { $UserPermStr = $ForumsPerms[$UserP[0]]; } elseif (COption::GetOptionString("forum", "SHOW_VOTES", "Y") == "Y") { $arUserRank = CForumUser::GetUserRank($res["USER_ID"], LANGUAGE_ID); $UserPermStr = $arUserRank["NAME"]; } $UserPermStr = strlen(trim($UserPermStr)) > 0 ? $UserPermStr : $ForumsPerms["user"]; ?> <tr class="forumbody"> <td align="left" class="forumbodytext"><a href="view_profile.php?UID=<?php echo $res["USER_ID"]; ?> " title="<?php echo GetMessage("FMI_FORUM_PROFILE"); ?> "><?php echo $res["SHOW_ABC"]; ?> </a></td>
</table> <font style="font-size:4px;"> <br></font> <form name="FORUM_MESSAGES" id="FORUM_MESSAGES"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <?php while ($arMessage = $db_Message->Fetch()) { $arUser = array(); //*************************!*************************************************************************************** if ($arMessage["AUTHOR_ID"] > 0 && !isset($UserInfo[$arMessage["AUTHOR_ID"]])) { $arUser["Groups"] = CUser::GetUserGroup($arMessage["AUTHOR_ID"]); if (!in_array(2, $arUser["Groups"])) { $arUser["Groups"][] = 2; } $arUser["Perms"] = CForumNew::GetUserPermission($arMessage["FORUM_ID"], $arUser["Groups"]); if ($arUser["Perms"] <= "Q" && COption::GetOptionString("forum", "SHOW_VOTES", "Y") == "Y") { $arUser["Rank"] = CForumUser::GetUserRank($arMessage["AUTHOR_ID"], LANGUAGE_ID); } if (intVal($arMessage["POINTS"]) > 0) { $arUser["Points"] = array("POINTS" => $arMessage["POINTS"], "DATE_UPDATE" => $arMessage["DATE_UPDATE"]); } else { $arUser["Points"] = false; } $UserInfo[$arMessage["AUTHOR_ID"]] = $arUser; } elseif ($arMessage["AUTHOR_ID"] > 0 && isset($UserInfo[$arMessage["AUTHOR_ID"]])) { $arUser = $UserInfo[$arMessage["AUTHOR_ID"]]; } $arMessage["AUTHOR_ID"] = intVal($arMessage["AUTHOR_ID"]); $arMessage["FOR_JS"]["AUTHOR_NAME"] = Cutil::JSEscape(htmlspecialchars($arMessage["AUTHOR_NAME"])); $arMessage["FOR_JS"]["POST_MESSAGE"] = Cutil::JSEscape(htmlspecialchars($arMessage["POST_MESSAGE"])); ?> <tr valign="top" class="forumbody">
</td> <td class="forumbodytext" width="20%" rowspan="25"><?php if (strlen($fu_AVATAR) > 0) { echo CFile::ShowImage($fu_AVATAR, 200, 200, "border=0", "", true); } ?> </td> <td class="forumbodytext" width="20%" rowspan="25"><?php if (strlen($f_PERSONAL_PHOTO) > 0) { echo CFile::ShowImage($f_PERSONAL_PHOTO, 200, 200, "border=0", "", true); } ?> </td> </tr><?php if (COption::GetOptionString("forum", "SHOW_VOTES", "Y") == "Y") { $arRank = CForumUser::GetUserRank($UID, LANG_ADMIN_LID); ?> <tr valign="top" class="forumbody"> <td class="forumbodytext" width="20%"><?php echo GetMessage("FV_ZVA"); ?> </td> <td class="forumbodytext" width="30%"><?php echo $arRank["NAME"]; if ($USER->IsAuthorized() && ($USER->IsAdmin() || IntVal($USER->GetParam("USER_ID")) == $UID)) { echo "<br>" . GetMessage("FV_NUM_POINTS") . $fu_POINTS; echo "<br>" . GetMessage("FV_NUM_VOTES") . (IntVal($arRank["VOTES"]) > 0 ? IntVal($arRank["VOTES"]) : GetMessage("FV_NO_VOTES")); } ?> </td> </tr>