Your IP : 3.144.103.115
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (!CModule::IncludeModule("forum")):
ShowError(GetMessage("F_NO_MODULE"));
return 0;
endif;
if (!function_exists("ForumUrlExtractTmp"))
{
function ForumUrlExtractTmp($s)
{
$x = 0;
while (strpos(",}])>.", substr($s, -1, 1))!==false)
{
$s2 = substr($s, -1, 1);
$s = substr($s, 0, strlen($s)-1);
}
return "<a href=\"".$s."\" target=\"_blank\">".$s."</a>".$s2;
}
}
if (!function_exists("ForumNumberRusEnding"))
{
function ForumNumberRusEnding($num)
{
if (LANGUAGE_ID == "ru")
{
if (strlen($num)>1 && substr($num, strlen($num)-2, 1)=="1")
{
return GetMessage("F_ENDING_OV");
}
else
{
$c = IntVal(substr($num, strlen($num)-1, 1));
if ($c==0 || ($c>=5 && $c<=9))
return GetMessage("F_ENDING_OV");
elseif ($c==1)
return "";
else
return GetMessage("F_ENDING_A");
}
}
else
{
if (IntVal($num)>1)
return "s";
return "";
}
}
}
/********************************************************************
Input params
********************************************************************/
/***************** BASE ********************************************/
$arParams["UID"] = trim(strLen($arParams["UID"]) <= 0 ? $_REQUEST["UID"] : $arParams["UID"]);
/***************** URL *********************************************/
$URL_NAME_DEFAULT = array(
"read" => "PAGE_NAME=read&FID=#FID#&TID=#TID#",
"message" => "PAGE_NAME=message&FID=#FID#&TID=#TID#&MID=#MID#",
"profile_view" => "PAGE_NAME=profile_view&UID=#UID#",
"profile" => "PAGE_NAME=profile&UID=#UID#",
"pm_edit" => "PAGE_NAME=pm_edit&FID=#FID#&MID=#MID#&UID=#UID#&mode=#mode#",
"message_send" => "PAGE_NAME=message_send&TYPE=#TYPE#&UID=#UID#",
"subscr_list" => "PAGE_NAME=subscr_list",
"user_post" => "PAGE_NAME=user_post&UID=#UID#&mode=#mode#");
if (empty($arParams["URL_TEMPLATES_MESSAGE"]) && !empty($arParams["URL_TEMPLATES_READ"]))
{
$arParams["URL_TEMPLATES_MESSAGE"] = $arParams["URL_TEMPLATES_READ"];
}
foreach ($URL_NAME_DEFAULT as $URL => $URL_VALUE)
{
if (strLen(trim($arParams["URL_TEMPLATES_".strToUpper($URL)])) <= 0)
$arParams["URL_TEMPLATES_".strToUpper($URL)] = $APPLICATION->GetCurPage()."?".$URL_VALUE;
$arParams["~URL_TEMPLATES_".strToUpper($URL)] = $arParams["URL_TEMPLATES_".strToUpper($URL)];
$arParams["URL_TEMPLATES_".strToUpper($URL)] = htmlspecialcharsbx($arParams["~URL_TEMPLATES_".strToUpper($URL)]);
}
/***************** ADDITIONAL **************************************/
$arParams["FID_RANGE"] = (is_array($arParams["FID_RANGE"]) && !empty($arParams["FID_RANGE"]) ? $arParams["FID_RANGE"] : array());
$arParams["SHOW_FORUM_ANOTHER_SITE"] = ($arParams["SHOW_FORUM_ANOTHER_SITE"] == "Y" ? "Y" : "N");
$arParams["DATE_TIME_FORMAT"] = trim($arParams["DATE_TIME_FORMAT"]);
$arParams["DATE_FORMAT"] = trim($arParams["DATE_FORMAT"]);
$arParams["NAME_TEMPLATE"] = (!empty($arParams["NAME_TEMPLATE"]) ? $arParams["NAME_TEMPLATE"] : '#NAME# #LAST_NAME#');
if(strlen($arParams["DATE_TIME_FORMAT"])<=0)
$arParams["DATE_TIME_FORMAT"] = $GLOBALS["DB"]->DateFormatToPHP(CSite::GetDateFormat("FULL"));
if(strlen($arParams["DATE_FORMAT"])<=0)
$arParams["DATE_FORMAT"] = $GLOBALS["DB"]->DateFormatToPHP(CSite::GetDateFormat("SHORT"));
/***************** STANDART ****************************************/
if ($arParams["CACHE_TYPE"] == "Y" || ($arParams["CACHE_TYPE"] == "A" && COption::GetOptionString("main", "component_cache_on", "Y") == "Y"))
$arParams["CACHE_TIME"] = intval($arParams["CACHE_TIME"]);
else
$arParams["CACHE_TIME"] = 0;
$arParams["SET_TITLE"] = ($arParams["SET_TITLE"] == "N" ? "N" : "Y");
$arParams["SET_NAVIGATION"] = ($arParams["SET_NAVIGATION"] == "N" ? "N" : "Y");
// $arParams["DISPLAY_PANEL"] = ($arParams["DISPLAY_PANEL"] == "Y" ? "Y" : "N");
/********************************************************************
/Input params
********************************************************************/
$parser = new forumTextParser();
$parser->MaxStringLen = $arParams["WORD_LENGTH"];
$parser->userPath = $arParams["URL_TEMPLATES_PROFILE_VIEW"];
$parser->userNameTemplate = $arParams["NAME_TEMPLATE"];
$arResult["USER"] = array();
$arResult["FORUM_USER"] = array();
$bUserFound = $ar_res = false;
if (!empty($arParams["UID"]))
{
false;
$db_res = CUser::GetByID(intVal($arParams["UID"]));
if (!($ar_res = $db_res->Fetch())):
$db_res = CUser::GetByLogin($arParams["UID"]);
$ar_res = $db_res->Fetch();
$arParams["UID"] = $ar_res["ID"];
endif;
$bUserFound = !empty($ar_res) && is_array($ar_res);
}
if (!$bUserFound):
CHTTP::SetStatus("404 Not Found");
ShowError(empty($arParams["UID"]) ? GetMessage("F_NO_UID") : GetMessage("F_NO_DUSER", array("#UID#" => htmlspecialcharsbx($arParams["UID"]))));
return false;
endif;
foreach ($ar_res as $key => $val):
$arResult["USER"]["~".$key] = $val;
$arResult["USER"][$key] = (is_string($val) ? $parser->wrap_long_words(htmlspecialcharsex(trim($val))) : $val);
endforeach;
$arResult["USER"]["PERSONAL_BIRTHDAY_FORMATED"] = CForumFormat::FormatDate($arResult["USER"]["~PERSONAL_BIRTHDAY"],
CLang::GetDateFormat("SHORT"), $arParams["DATE_FORMAT"]);
$arResult["FORUM_USER"] = CForumUser::GetByUSER_ID($arParams["UID"]);
$arResult["FORUM_USER"] = (empty($arResult["FORUM_USER"]) ? array() : $arResult["FORUM_USER"]);
foreach ($arResult["FORUM_USER"] as $key => $val):
$arResult["FORUM_USER"]["~".$key] = $val;
$arResult["FORUM_USER"][$key] = (is_string($val) ? $parser->wrap_long_words(htmlspecialcharsbx($val)) : $val);
endforeach;
/********************************************************************
Default values
********************************************************************/
$strErrorMessage = "";
$strOKMessage = "";
$arParams["UID"] = intval($arParams["UID"]);
$arResult["FID"] = intval($_REQUEST["FID"]);
$arResult["TID"] = intval($_REQUEST["TID"]);
$arResult["TITLE_SEO"] = trim($_REQUEST["TITLE_SEO"]);
$arResult["MID"] = intval($_REQUEST["MID"]);
$arResult["IsAuthorized"] = $USER->IsAuthorized() ? "Y" : "N";
$arResult["IsAdmin"] = CForumUser::IsAdmin() ? "Y" : "N";
$arResult["ERROR_MESSAGE"] = "";
$arResult["OK_MESSAGE"] = ($_REQUEST["result"] == "message_send" ? GetMessage("F_OK_MESSAGE_SEND") : "");
$arResult["FORUMS"] = array();
$arResult["SHOW_BACK_URL"] = (($arResult["FID"] > 0 || $arResult["TID"] > 0 || $arResult["MID"] > 0) ? "Y" : "N");
$arResult["SHOW_USER_INFO"] = "Y"; // out of date params
$arResult["SHOW_EDIT_PROFILE"] = ($USER->IsAuthorized() && ((intVal($USER->GetID()) == $arParams["UID"] && $USER->CanDoOperation('edit_own_profile')) ||
$USER->IsAdmin()) ? "Y" : "N");
$arResult["SHOW_VOTES"] = ((COption::GetOptionString("forum", "SHOW_VOTES", "Y") == "Y" && $USER->IsAuthorized()
&& (CForumUser::IsAdmin() || intVal($USER->GetParam("USER_ID"))!=$arParams["UID"])) ? "Y" : "N");
$arResult["SHOW_RANK"] = 'Y';//(COption::GetOptionString("forum", "SHOW_VOTES", "Y") == "Y" ? "Y" : "N");
/******************************************************************/
$arResult["SHOW_ICQ"] = ((COption::GetOptionString("forum", "SHOW_ICQ_CONTACT", "N") != "Y") ? "N" : (($arParams["SEND_ICQ"] <= "A" || ($arParams["SEND_ICQ"] <= "E" && !$GLOBALS['USER']->IsAuthorized())) ? "N" : "Y"));
$arResult["SHOW_MAIL"] = $arParams["SHOW_MAIL"] = (($arParams["SEND_MAIL"] <= "A" || ($arParams["SEND_MAIL"] <= "E" && !$GLOBALS['USER']->IsAuthorized())) ? "N" : "Y");;
/******************************************************************/
$arResult["CURRENT_PAGE"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arParams["UID"]));
$arResult["URL"] = array(
"PROFILE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE"], array("UID" => $arParams["UID"])),
"PROFILE_VIEW" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arParams["UID"])),
"~PROFILE_VIEW" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arParams["UID"])),
"USER_EMAIL" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE_SEND"], array("UID" => $arParams["UID"], "TYPE"=>"mail")),
"USER_ICQ" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE_SEND"], array("UID" => $arParams["UID"], "TYPE"=>"icq")),
"USER_PM" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_EDIT"],
array("FID" => 1, "MID" => 0, "UID" => $arParams["UID"], "mode"=>"new")),
"TOPIC" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_READ"],
array("FID" => $arResult["FID"], "TID" => $arResult["TID"], "TITLE_SEO" => $arResult["TITLE_SEO"], "MID" => $arResult["MID"])),
"MESSAGE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_READ"],
array("FID" => $arResult["FID"], "TID" => $arResult["TID"], "TITLE_SEO" => $arResult["TITLE_SEO"], "MID" => $arResult["MID"])),
"USER_POSTS" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_USER_POST"], array("UID" => $arParams["UID"], "mode"=>"all")),
"USER_POSTS_MEMBER" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_USER_POST"], array("UID" => $arParams["UID"], "mode"=>"lt")),
"USER_POSTS_AUTHOR" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_USER_POST"], array("UID" => $arParams["UID"], "mode"=>"lta")),
"SUBSCRIBE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_SUBSCR_LIST"], array("UID" => $arParams["UID"])),
"~SUBSCRIBE" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_SUBSCR_LIST"], array("UID" => $arParams["UID"])));
$arResult["URL"]["VOTE"] = $arResult["URL"]["PROFILE_VIEW"];
/************** For custom ****************************************/
$arResult["profile"] = $arResult["URL"]["PROFILE"];
$arResult["profile_view"] = $arResult["URL"]["PROFILE_VIEW"];
$arResult["message_mail"] = $arResult["URL"]["USER_EMAIL"];
$arResult["message_icq"] = $arResult["URL"]["USER_ICQ"];
$arResult["read"] = $arResult["URL"]["TOPIC"];
$arResult["message"] = $arResult["URL"]["MESSAGE"];
$arResult["pm_edit"] = $arResult["URL"]["USER_PM"];
$arResult["user_post_lta"] = $arResult["URL"]["USER_POSTS_AUTHOR"];
$arResult["user_post_lt"] = $arResult["URL"]["USER_POSTS_MEMBER"];
$arResult["user_post_all"] = $arResult["URL"]["USER_POSTS"];
/********************************************************************
/Default values
********************************************************************/
/********************************************************************
Data
********************************************************************/
/************** Votings ********************************************/
if ($arResult["SHOW_VOTES"] == "Y"):
if ($_GET["VOTE_USER"] == "Y" && $USER->IsAuthorized() && check_bitrix_sessid()):
ForumVote4User($arParams["UID"], $_GET["VOTES"], (strlen($_GET["CANCEL_VOTE"]) > 0 ? True : False), $strErrorMessage, $strOKMessage);
if (empty($strErrorMessage)):
LocalRedirect($arResult["URL"]["~PROFILE_VIEW"]);
endif;
endif;
$strNotesText = "";
$bCanVote = CForumUser::IsAdmin();
$bCanUnVote = False;
$arUserRank = CForumUser::GetUserRank(intVal($USER->GetParam("USER_ID")));
$arUserPoints = CForumUserPoints::GetByID(intVal($USER->GetParam("USER_ID")), $arParams["UID"]);
if ($arUserPoints)
{
$bCanUnVote = True;
$strNotesText .= str_replace("#POINTS#", $arUserPoints["POINTS"], str_replace("#END#",
ForumNumberRusEnding($arUserPoints["POINTS"]), GetMessage("F_ALREADY_VOTED1"))).". \n";
if (CForumUser::IsAdmin())
{
$strNotesText .= GetMessage("F_ALREADY_VOTED_ADMIN");
}
elseif (intVal($arUserPoints["POINTS"]) < intVal($arUserRank["VOTES"]))
{
$bCanVote = True;
$strNotesText .= str_replace("#POINTS#", (intVal($arUserRank["VOTES"])-intVal($arUserPoints["POINTS"])), str_replace("#END#",
ForumNumberRusEnding((intVal($arUserRank["VOTES"])-intVal($arUserPoints["POINTS"]))), GetMessage("F_ALREADY_VOTED3")));
}
}
elseif (intVal($arUserRank["VOTES"]) > 0 || CForumUser::IsAdmin())
{
$bCanVote = True;
$strNotesText .= GetMessage("F_NOT_VOTED");
if (!CForumUser::IsAdmin())
{
$strNotesText .= str_replace("#POINTS#", $arUserRank["VOTES"], str_replace("#END#",
ForumNumberRusEnding($arUserRank["VOTES"]), GetMessage("F_NOT_VOTED1"))).". \n";
}
else
{
$strNotesText .= GetMessage("F_ALREADY_VOTED_ADMIN");
}
}
$arResult["bCanVote"] = $bCanVote;
$arResult["bCanUnVote"] = $bCanUnVote;
$arResult["titleVote"] = $strNotesText;
$arResult["SHOW_VOTES"] = (strlen($strNotesText) > 0 || $bCanVote || $bCanUnVote ? "Y" : "N");
if (CForumUser::IsAdmin() && $bCanVote)
$arResult["VOTES"] = intVal($arUserRank["VOTES"]);
if ($bCanUnVote):
$arResult["VOTE_ACTION"] = "UNVOTE";
$arResult["URL"]["~VOTE"] = $APPLICATION->GetCurPageParam("CANCEL_VOTE=Y&VOTE_USER=Y", array("sessid", "VOTE_USER", "VOTES", "CANCEL_VOTE"));
else:
$arResult["VOTE_ACTION"] = "VOTE";
$arResult["URL"]["~VOTE"] = $APPLICATION->GetCurPageParam("VOTE_USER=Y", array("sessid", "VOTE_USER", "VOTES", "CANCEL_VOTE"));
endif;
$arResult["URL"]["VOTE"] = $arResult["URL"]["~VOTE"]."&".bitrix_sessid_get();
endif;
/*******************************************************************/
if (!empty($arResult["FORUM_USER"]["DATE_REG"]))
$arResult["FORUM_USER"]["DATE_REG_FORMATED"] = CForumFormat::DateFormat($arParams["DATE_FORMAT"],
MakeTimeStamp($arResult["FORUM_USER"]["DATE_REG"], CSite::GetDateFormat()));
if (!empty($arResult["FORUM_USER"]["LAST_VISIT"]))
$arResult["FORUM_USER"]["LAST_VISIT_FORMATED"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"],
MakeTimeStamp($arResult["FORUM_USER"]["LAST_VISIT"], CSite::GetDateFormat()));
$arResult["~SHOW_NAME"] = CForumUser::GetFormattedNameByUserID(
$arResult["USER"]["ID"],
$arParams["NAME_TEMPLATE"],
array(
"SHOW_NAME" => $arResult["FORUM_USER"]["SHOW_NAME"],
"LOGIN" => $arResult["USER"]["~LOGIN"],
"NAME" => $arResult["USER"]["~NAME"],
"SECOND_NAME" => $arResult["USER"]["~SECOND_NAME"],
"LAST_NAME" => $arResult["USER"]["~LAST_NAME"]
));
$arResult["SHOW_NAME"] = htmlspecialcharsbx($arResult["~SHOW_NAME"]);
$arResult["SHOW_EDIT_PROFILE_TITLE"] = (intVal($USER->GetID())!=$arParams["UID"]) ? GetMessage("F_EDIT_THIS_PROFILE") : GetMessage("F_EDIT_YOUR_PROFILE");
$arResult["SHOW_EDIT_PROFILE_TITLE_BOTTOM"] = ((intVal($USER->GetID())!=$arParams["UID"]) ? GetMessage("F_TO_CHANGE2") : GetMessage("F_TO_CHANGE3"))." ".GetMessage("F_TO_CHANGE4");
if (strlen($arResult["USER"]["PERSONAL_WWW"]) > 0)
{
$arResult["USER"]["PERSONAL_WWW_FORMATED"] = $arResult["USER"]["PERSONAL_WWW"];
$strBValueTmp = substr($arResult["USER"]["PERSONAL_WWW_FORMATED"], 0, 6);
if ($strBValueTmp!="http:/" && $strBValueTmp!="https:" && $strBValueTmp!="ftp://")
$arResult["USER"]["PERSONAL_WWW_FORMATED"] = "http://".$arResult["USER"]["PERSONAL_WWW_FORMATED"];
$arResult["USER"]["PERSONAL_WWW"] = "<noindex><a rel=\"nofollow\" href=\"".$arResult["USER"]["PERSONAL_WWW_FORMATED"]."\" target=\"_blank\">".$arResult["USER"]["PERSONAL_WWW_FORMATED"]."</a></noindex>";
}
if (strlen($arResult["USER"]["WORK_WWW"]) > 0)
{
$arResult["USER"]["WORK_WWW_FORMATED"] = $arResult["USER"]["WORK_WWW"];
$strBValueTmp = substr($arResult["USER"]["WORK_WWW_FORMATED"], 0, 6);
if ($strBValueTmp!="http:/" && $strBValueTmp!="https:" && $strBValueTmp!="ftp://")
$arResult["USER"]["WORK_WWW_FORMATED"] = "http://".$arResult["USER"]["WORK_WWW_FORMATED"];
$arResult["USER"]["WORK_WWW"] = "<noindex><a rel=\"nofollow\" href=\"".$arResult["USER"]["WORK_WWW_FORMATED"]."\" target=\"_blank\">".$arResult["USER"]["WORK_WWW_FORMATED"]."</a></noindex>";
}
if ($arResult["USER"]["PERSONAL_GENDER"]=="M")
$arResult["USER"]["PERSONAL_GENDER"] = GetMessage("F_SEX_MALE");
elseif ($arResult["USER"]["PERSONAL_GENDER"]=="F")
$arResult["USER"]["PERSONAL_GENDER"] = GetMessage("F_SEX_FEMALE");
$arResult["USER"]["PERSONAL_LOCATION"] = GetCountryByID($arResult["USER"]["PERSONAL_COUNTRY"]);
if (!empty($arResult["USER"]["PERSONAL_LOCATION"]) && !empty($arResult["USER"]["PERSONAL_CITY"]))
$arResult["USER"]["PERSONAL_LOCATION"] .= ", ";
$arResult["USER"]["PERSONAL_LOCATION"] .= $arResult["USER"]["PERSONAL_CITY"];
$arResult["USER"]["WORK_LOCATION"] = GetCountryByID($arResult["USER"]["WORK_COUNTRY"]);
if (strlen($arResult["USER"]["WORK_LOCATION"])>0 && strlen($arResult["USER"]["WORK_CITY"])>0)
$arResult["USER"]["WORK_LOCATION"] .= ", ";
$arResult["USER"]["WORK_LOCATION"] .= $arResult["USER"]["WORK_CITY"];
$arResult["FORUM_USER"]["INTERESTS"] = $parser->convert(
$arResult["FORUM_USER"]["INTERESTS"],
array(
"HTML" => "N",
"ANCHOR" => "Y",
"BIU" => "Y",
"IMG" => "Y",
"VIDEO" => "Y",
"LIST" => "Y",
"QUOTE" => "Y",
"CODE" => "Y",
"FONT" => "Y",
"SMILES" => "N",
"NL2BR" => "Y",
"TABLE" => "N",
"ALIGN" => "N",
));
$arResult["FORUM_USER"]["AVATAR"] = "";
if (!empty($arResult["FORUM_USER"]["~AVATAR"])):
$arResult["FORUM_USER"]["AVATAR_FILE"] = CFile::GetFileArray($arResult["FORUM_USER"]["~AVATAR"]);
if ($arResult["FORUM_USER"]["AVATAR_FILE"] !== false)
$arResult["FORUM_USER"]["AVATAR"] = CFile::ShowImage($arResult["FORUM_USER"]["AVATAR_FILE"],
COption::GetOptionString("forum", "avatar_max_width", 100),
COption::GetOptionString("forum", "avatar_max_height", 100), "border=0", "", true);
endif;
$arResult["USER"]["PERSONAL_PHOTO"] = "";
if (!empty($arResult["USER"]["~PERSONAL_PHOTO"])):
$arResult["USER"]["PERSONAL_PHOTO_FILE"] = CFile::GetFileArray($arResult["USER"]["~PERSONAL_PHOTO"]);
if ($arResult["USER"]["PERSONAL_PHOTO_FILE"] !== false)
$arResult["USER"]["PERSONAL_PHOTO"] = CFile::ShowImage($arResult["USER"]["PERSONAL_PHOTO_FILE"], 200, 200, "border=0 alt=\"\"", "", true);
endif;
/************** Getting User rank **********************************/
$arResult["USER_RANK"] = ""; $arResult["USER_RANK_CODE"] = "";
$arFilter = array();
if ($arParams["SHOW_FORUM_ANOTHER_SITE"] == "N" || !CForumUser::IsAdmin())
$arFilter["LID"] = SITE_ID;
if (!empty($arParams["FID_RANGE"]))
$arFilter["@ID"] = $arParams["FID_RANGE"];
if (!CForumUser::IsAdmin()):
$arFilter["PERMS"] = array($USER->GetGroups(), 'A');
$arFilter["ACTIVE"] = "Y";
endif;
$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());
endif;
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"])));
}
}
/************** User properties ************************************/
$arResult["USER_PROPERTIES"] = array("SHOW" => "N");
if (!empty($arParams["USER_PROPERTY"]))
{
$arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("USER", $arParams["UID"], LANGUAGE_ID);
if (count($arParams["USER_PROPERTY"]) > 0)
{
foreach ($arUserFields as $FIELD_NAME => $arUserField)
{
if (!in_array($FIELD_NAME, $arParams["USER_PROPERTY"]))
continue;
$arUserField["~EDIT_FORM_LABEL"] = (!empty($arUserField["EDIT_FORM_LABEL"]) ? $arUserField["EDIT_FORM_LABEL"] : $arUserField["FIELD_NAME"]);
$arUserField["EDIT_FORM_LABEL"] = htmlspecialcharsbx($arUserField["~EDIT_FORM_LABEL"]);
$arResult["USER_PROPERTIES"]["DATA"][$FIELD_NAME] = $arUserField;
}
}
if (!empty($arResult["USER_PROPERTIES"]["DATA"]))
$arResult["USER_PROPERTIES"]["SHOW"] = "Y";
}
/*******************************************************************/
$arResult["ERROR_MESSAGE"] .= $strErrorMessage;
$arResult["OK_MESSAGE"] .= $strOKMessage;
/*******************************************************************/
foreach ($arResult["USER"] as $key => $val):
if (substr($key, 0, 1) == "~")
$arResult["~f_".substr($key, 1)] = $val;
else
$arResult["f_".$key] = $val;
endforeach;
foreach ($arResult["FORUM_USER"] as $key => $val):
if (substr($key, 0, 1) == "~")
$arResult["~fu_".substr($key, 1)] = $val;
else
$arResult["fu_".$key] = $val;
endforeach;
/********************************************************************
Data
********************************************************************/
$this->IncludeComponentTemplate();
/*******************************************************************/
if ($arParams["SET_NAVIGATION"] != "N")
$APPLICATION->AddChainItem($arResult["~SHOW_NAME"]);
if ($arParams["SET_TITLE"] != "N")
$APPLICATION->SetTitle($arResult["SHOW_NAME"]);
?>