if ($_REQUEST['action_target'] == 'selected') { $rsData = CForumSubscribe::GetListEx(array($by => $order), $arFilter); while ($arRes = $rsData->Fetch()) { $arID[] = $arRes['ID']; } } if (check_bitrix_sessid()) { foreach ($arID as $ID) { if (strlen($ID) <= 0) { continue; } $ID = intval($ID); switch ($_REQUEST['action']) { case "delete": if (CForumSubscribe::CanUserDeleteSubscribe($ID, $USER->GetUserGroupArray(), $USER->GetID())) { CForumSubscribe::Delete($ID); } else { $arMsg[] = array("id" => "NO_PERMS", "text" => GetMessage("FSUBSC_NO_SPERMS")); } break; } } } } //************************************/Actions ******************************************************************** if (!empty($arMsg)) { $err = new CAdminException($arMsg); $lAdmin->AddFilterError($err->GetString()); } $rsData = CForumSubscribe::GetListEx(array($by => $order), $arFilter); $rsData = new CAdminResult($rsData, $sTableID);
if (CForumEMail::Set($arFields) > 0) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_LIST"], array("FID" => $arParams["FID"], "UID" => $arParams["USER_ID"], "GID" => $arParams["SOCNET_GROUP_ID"]))); } } } } } elseif ($ACTION == "FORUM_SUBSCRIBE") { if (ForumSubscribeNewMessagesEx($arParams["FID"], 0, "N", $strErrorMessage, $strOkMessage, false, $arParams["SOCNET_GROUP_ID"])) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_LIST"], array("FID" => $arParams["FID"], "UID" => $arParams["USER_ID"], "GID" => $arParams["SOCNET_GROUP_ID"]))); } else { $arResult["ERROR_MESSAGE"] = $strErrorMessage; } } elseif ($ACTION == "FORUM_UNSUBSCRIBE") { $arFields = array("USER_ID" => $USER->GetID(), "FORUM_ID" => $arParams["FID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => false, "SOCNET_GROUP_ID" => $arParams["SOCNET_GROUP_ID"]); $db_res = CForumSubscribe::GetListEx(array(), $arFields); if ($db_res && ($res = $db_res->Fetch()) && CForumSubscribe::Delete($res["ID"])) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_TOPIC_LIST"], array("FID" => $arParams["FID"], "UID" => $arParams["USER_ID"], "GID" => $arParams["SOCNET_GROUP_ID"]))); } } } /******************************************************************** /Actions ********************************************************************/ /******************************************************************** Default params # 2 ********************************************************************/ global $by, $order; InitSorting(); if (!$by) { ForumGetTopicSort($by, $order, $arResult["FORUM"]); }
$UID = IntVal($USER->GetParam("USER_ID")); } $bUserFound = False; $db_userX = CUser::GetByID($UID); if ($ar_userX = $db_userX->Fetch()) { $bUserFound = True; while (list($key, $val) = each($ar_userX)) { ${"f_" . $key} = htmlspecialchars($val); } } $strErrorMessage = ""; $strOKMessage = ""; $bVarsFromForm = false; $ID = IntVal($ID); if ($_SERVER["REQUEST_METHOD"] == "GET" && $_GET["ACTION"] == "DEL" && IntVal($_GET["ID"]) > 0) { CForumSubscribe::Delete(IntVal($_GET["ID"])); } $APPLICATION->AddChainItem("Профиль", "profile.php"); $APPLICATION->SetTitle("Список подписки на сообщения форума"); $APPLICATION->SetTemplateCSS("forum/forum_tmpl_2/forum.css"); $APPLICATION->IncludeFile("forum/forum_tmpl_2/menu.php"); if (!$bUserFound) { $strErrorMessage .= "Пользователь с кодом {$UID} не найден. \n"; } ?> <?php echo ShowMessage(array("MESSAGE" => $strErrorMessage, "TYPE" => "ERROR")); echo ShowMessage(array("MESSAGE" => $strOKMessage, "TYPE" => "OK")); ?>
/******************************************************************** Action ********************************************************************/ $arError = array(); $arNote = array(); if ($arParams["ACTION"] == "DEL") { $arParams["SID"] = is_array($_REQUEST["SID"]) ? $_REQUEST["SID"] : array($_REQUEST["SID"]); if (!check_bitrix_sessid()) { $arError[] = GetMessage("F_ERR_SESS_FINISH"); } elseif (empty($arParams["SID"])) { $arError[] = GetMessage("F_EMPTY_SUBSCRIBES"); } else { foreach ($arParams["SID"] as $res) { if (!CForumSubscribe::CanUserDeleteSubscribe($res, $USER->GetUserGroupArray(), $USER->GetID())) { $arError[] = str_replace("#SID#", $res, GetMessage("FSL_NO_SPERMS")); } elseif (!CForumSubscribe::Delete($res)) { $arError[] = str_replace("#SID#", $res, GetMessage("FSL_NO_DELETE")); } else { $arNote[] = str_replace("#SID#", $res, GetMessage("FSL_SUCC_DELETE")); } } } } /******************************************************************** /Action ********************************************************************/ /******************************************************************** Default values ********************************************************************/ $arResult["CURRENT_PAGE"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_SUBSCR_LIST"], array()); $arResult["~FORUMS"] = $arResult["FORUMS"] = array();
function ForumDeleteSubscribe($ID, &$strErr, &$strOk) { global $USER; $ID = IntVal($ID); if (CForumSubscribe::CanUserDeleteSubscribe($ID, $USER->GetUserGroupArray(), $USER->GetID())) { CForumSubscribe::Delete($ID); return true; } else { $strErr = GetMessage("FSUBSC_NO_SPERMS") . ". \n"; } return false; }
/*************** Forum subscribe to document ***********************/ if ($arParams["USE_COMMENTS"] == "Y" && $GLOBALS['USER']->IsAuthorized()) { CModule::IncludeModule("forum"); $cache_id = "/" . $arParams["IBLOCK_ID"] . "/forum_user_subscribe_" . intVal($GLOBALS["USER"]->GetID()) . "_" . $arParams["FORUM_ID"]; $arParams["FORUM_CAN_VIEW"] = CForumNew::CanUserViewForum($arParams["FORUM_ID"], $GLOBALS['USER']->GetUserGroupArray()) ? "Y" : "N"; if ($arParams["FORUM_CAN_VIEW"] == "Y" && $GLOBALS['USER']->IsAuthorized()) { if ((!empty($_REQUEST["SUBSCRIBE_FORUM"]) || !empty($_REQUEST["subscribe_forum"])) && check_bitrix_sessid()) { if ($_REQUEST["SUBSCRIBE_FORUM"] == "Y" || $_REQUEST["subscribe_forum"] == "Y") { ForumSubscribeNewMessagesEx($arParams["FORUM_ID"], 0, "N", $strErrorMessage = "", $strOKMessage = ""); } elseif ($_REQUEST["SUBSCRIBE_FORUM"] == "N" || $_REQUEST["subscribe_forum"] == "N") { $arFilter = array("USER_ID" => $GLOBALS["USER"]->GetId(), "FORUM_ID" => $arParams["FORUM_ID"]); $db_res = CForumSubscribe::GetList(array(), $arFilter); if ($db_res && ($res = $db_res->Fetch())) { do { if (CForumSubscribe::CanUserDeleteSubscribe($res["ID"], $GLOBALS["USER"]->GetUserGroupArray(), $GLOBALS["USER"]->GetID())) { CForumSubscribe::Delete($res["ID"]); } } while ($res = $db_res->Fetch()); } } BXClearCache(true, $cache_path_main); $arNavChain = $arParams["CONVERT"] ? $arResult["NAV_CHAIN_UTF8"] : $arResult["NAV_CHAIN"]; $url = CComponentEngine::MakePathFromTemplate($arParams["~SECTIONS_URL"], array("PATH" => implode("/", $arNavChain), "SECTION_ID" => $arParams["SECTION_ID"])); } $bShowSubscribe = true; $arUserSubscribe = array(); if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path_main)) { $res = $cache->GetVars(); $arUserSubscribe = $res["arUserSubscribe"]; } else { $arFields = array("USER_ID" => $GLOBALS["USER"]->GetID(), "FORUM_ID" => $arParams["FORUM_ID"]);