} /******************************************************************** Action ********************************************************************/ /******************************************************************** Data ********************************************************************/ $arResult["action"] = $mode == "edit" ? "save" : "send"; $arResult["count"] = CForumPrivateMessage::PMSize($USER->GetID(), COption::GetOptionInt("forum", "MaxPrivateMessages", 100)); $arResult["count"] = round($arResult["count"] * 100); $arResult["sessid"] = bitrix_sessid_post(); $arResult["FID"] = intVal($arParams["FID"]); $arResult["MID"] = intVal($arParams["MID"]); $arResult["mode"] = $mode; $arResult["SystemFolder"] = FORUM_SystemFolder; $resFolder = CForumPMFolder::GetList(array(), array("USER_ID" => $USER->GetID())); $arResult["UserFolder"] = array(); if ($resFolder && ($resF = $resFolder->GetNext())) { do { $arResult["UserFolder"][$resF["ID"]] = $resF; } while ($resF = $resFolder->GetNext()); } // ***************************************************************************************** // Info about current user $arResult["CurrUser"]["SHOW_NAME"] = trim($USER->GetFormattedName(false)); $arResult["CurrUser"]["SHOW_NAME"] = empty($arResult["CurrUser"]["SHOW_NAME"]) ? $USER->GetLogin() : $USER->GetFormattedName(false); $arResult["ForumPrintSmilesList"] = ForumPrintSmilesList(3, LANGUAGE_ID); $arResult["SMILES"] = CForumSmile::getSmiles("S", LANGUAGE_ID); $arResult["FolderName"] = $arParams["FID"] <= $arResult["SystemFolder"] ? GetMessage("PM_FOLDER_ID_" . $arParams["FID"]) : $arResult["UserFolder"][$arParams["FID"]]["TITLE"]; // ***************************************************************************************** $arResult["POST_VALUES"] = array();
public static function CheckPermissions($ID) { global $USER, $APPLICATION; $ID = intVal($ID); if (CForumUser::IsAdmin()) { return true; } $dbr = CForumPMFolder::GetByID($ID); if ($arRes = $dbr->Fetch()) { if ($arRes["USER_ID"] == $USER->GetID() || $arRes["USER_ID"] == 0) { return true; } } return false; }
} else { for ($ii = 1; $ii <= FORUM_SystemFolder; $ii++) { $arResult["SYSTEM_FOLDER"][$ii]["cnt"] = ""; $arFilter = $ii == 2 ? array("FOLDER_ID" => $ii, "USER_ID" => $USER->GetId(), "OWNER_ID" => $USER->GetId()) : array("FOLDER_ID" => $ii, "USER_ID" => $USER->GetId()); $db_res = CForumPrivateMessage::GetList(array(), $arFilter, true); if ($db_res && ($res = $db_res->GetNext())) { $arResult["SYSTEM_FOLDER"][$ii]["cnt"] = intVal($res["CNT"]); $arResult["SYSTEM_FOLDER"][$ii]["CNT"] = intVal($res["CNT"]); $arResult["SYSTEM_FOLDER"][$ii]["CNT_NEW"] = intVal($res["CNT_NEW"]); } $arResult["SYSTEM_FOLDER"][$ii]["URL"] = array("FOLDER" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_LIST"], array("FID" => $ii)), "REMOVE" => ForumAddPageParams($arResult["CURRENT_PAGE"], array("action" => "remove", "FID" => $ii))); $arResult["SYSTEM_FOLDER"][$ii]["pm_list"] = $arResult["SYSTEM_FOLDER"][$ii]["URL"]["FOLDER"]; $arResult["SYSTEM_FOLDER"][$ii]["remove"] = $arResult["SYSTEM_FOLDER"][$ii]["URL"]["REMOVE"]; } $arResult["SHOW_USER_FOLDER"] = "N"; $db_res = CForumPMFolder::GetList(array($by => $order), array("USER_ID" => $USER->GetId())); if ($db_res && ($res = $db_res->GetNext())) { $arResult["SHOW_USER_FOLDER"] = "Y"; do { $res["URL"] = array("FOLDER" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_PM_LIST"], array("FID" => $res["ID"])), "DELETE" => ForumAddPageParams($arResult["CURRENT_PAGE"], array("action" => "delete", "FID" => $res["ID"])), "REMOVE" => ForumAddPageParams($arResult["CURRENT_PAGE"], array("action" => "remove", "FID" => $res["ID"])), "EDIT" => ForumAddPageParams($arResult["CURRENT_PAGE"], array("mode" => "edit", "FID" => $res["ID"]))); $res["pm_list"] = $res["URL"]["FOLDER"]; $res["CNT"] = intVal($res["CNT"]); $res["CNT_NEW"] = intVal($res["CNT_NEW"]); $res["delete"] = $res["URL"]["DELETE"]; $res["remove"] = $res["URL"]["REMOVE"]; $res["edit"] = $res["URL"]["EDIT"]; $arResult["USER_FOLDER"][] = $res; } while ($res = $db_res->GetNext()); } } /********************************************************************
public static function CheckPermissions($ID) { global $USER, $APPLICATION; $ID = intVal($ID); if($USER->IsAdmin()||$APPLICATION->GetGroupRight("forum")>="W") return true; $dbr = CForumPMFolder::GetByID($ID); if($arRes = $dbr->Fetch()) { if(($arRes["USER_ID"]==$USER->GetID())||($arRes["USER_ID"]==0)) return true; } return false; }