%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/components/bitrix/forum.subscribe.list/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/components/bitrix/forum.subscribe.list/component.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); if (!CModule::IncludeModule("forum")): ShowError(GetMessage("FSL_NO_MODULE")); return 0; elseif (!$USER->IsAuthorized()): $APPLICATION->AuthForm(GetMessage("FSL_AUTH")); return 0; endif; $strErrorMessage = ""; $strOKMessage = ""; $bVarsFromForm = false; /******************************************************************** Input params ********************************************************************/ /***************** BASE ********************************************/ $arParams["UID"] = intVal($_REQUEST["UID"]); $arParams["UID"] = intVal((!CForumUser::IsAdmin() || $arParams["UID"] <= 0) ? $USER->GetID() : $arParams["UID"]); $arParams["ACTION"] = strToUpper($_REQUEST["ACTION"]); /***************** URL *********************************************/ if (empty($arParams["URL_TEMPLATES_MESSAGE"]) && !empty($arParams["URL_TEMPLATES_READ"])) $arParams["URL_TEMPLATES_MESSAGE"] = $arParams["URL_TEMPLATES_READ"]; $URL_NAME_DEFAULT = array( "list" => "PAGE_NAME=list&FID=#FID#", "read" => "PAGE_NAME=read&FID=#FID#&TID=#TID#", "message" => "PAGE_NAME=message&FID=#FID#&TID=#TID#&MID=#MID#", "subscr_list" => "PAGE_NAME=subscr_list", "profile_view" => "PAGE_NAME=profile_view&UID=#UID#"); 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 **************************************/ // Data and data-time format $arParams["TOPICS_PER_PAGE"] = intVal($arParams["TOPICS_PER_PAGE"] > 0 ? $arParams["TOPICS_PER_PAGE"] : COption::GetOptionString("forum", "TOPICS_PER_PAGE", "10")); $arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]); $arParams["NAME_TEMPLATE"] = (!empty($arParams["NAME_TEMPLATE"]) ? $arParams["NAME_TEMPLATE"] : false); $arParams["PAGE_NAVIGATION_TEMPLATE"] = trim($arParams["PAGE_NAVIGATION_TEMPLATE"]); $arParams["PAGE_NAVIGATION_WINDOW"] = intVal(intVal($arParams["PAGE_NAVIGATION_WINDOW"]) > 0 ? $arParams["PAGE_NAVIGATION_WINDOW"] : 11); /***************** STANDART ****************************************/ $arParams["SET_NAVIGATION"] = ($arParams["SET_NAVIGATION"] == "N" ? "N" : "Y"); $arParams["SET_TITLE"] = ($arParams["SET_TITLE"] == "N" ? "N" : "Y"); /******************************************************************** /Input params ********************************************************************/ $arResult["USER"] = array(); $db_res = CForumUser::GetList( array(), array("USER_ID" => $arParams["UID"], "SHOW_ABC" => ""), array("sNameTemplate" => $arParams["NAME_TEMPLATE"]) ); if ($db_res && $res = $db_res->GetNext()) $arResult["USER"] = $res; if (empty($arResult["USER"])): ShowError(str_replace("#UID#", $arParams["UID"], GetMessage("FSL_NO_DUSER"))); return false; endif; /******************************************************************** 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")); endif; endforeach; endif; } /******************************************************************** /Action ********************************************************************/ /******************************************************************** Default values ********************************************************************/ $arResult["CURRENT_PAGE"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_SUBSCR_LIST"], array()); $arResult["~FORUMS"] = $arResult["FORUMS"] = array(); $arResult["~TOPICS"] = $arResult["TOPICS"] = array(); $arResult["ERROR_MESSAGE"] = implode("\n", $arError); $arResult["OK_MESSAGE"] = implode("\n", $arNote); $arResult["sessid"] = bitrix_sessid_get(); $arResult["SHOW_SUBSCRIBE_LIST"] = "N"; $arResult["SUBSCRIBE_LIST"] = array(); /******************************************************************** /Default values ********************************************************************/ /******************************************************************** Data ********************************************************************/ $db_res = CForumSubscribe::GetListEx( array("FORUM_ID" => "ASC", "TOPIC_ID" => "ASC", "START_DATE" => "ASC"), array("USER_ID" => $arParams["UID"]), array( "bDescPageNumbering" => false, "nPageSize" => $arParams["TOPICS_PER_PAGE"] ) ); $db_res->NavStart($arParams["TOPICS_PER_PAGE"]); $db_res->nPageWindow = $arParams["PAGE_NAVIGATION_WINDOW"]; $db_res->bShowAll = false; $arResult["NAV_RESULT"] = $db_res; $arResult["NAV_STRING"] = $db_res->GetPageNavStringEx($navComponentObject, GetMessage("F_SUBSCRIBE"), $arParams["PAGE_NAVIGATION_TEMPLATE"]); if ($db_res && $res = $db_res->GetNext()) { $arResult["SHOW_SUBSCRIBE_LIST"] = "Y"; do { $arResult["~FORUMS"][] = $res["FORUM_ID"]; $arResult["~TOPICS"][] = $res["TOPIC_ID"]; $res["START_DATE"] = trim($res["START_DATE"]); if (strLen($res["START_DATE"]) > 0) $res["START_DATE"] = CForumFormat::DateFormat($arParams["DATE_TIME_FORMAT"], MakeTimeStamp($res["START_DATE"], CSite::GetDateFormat()));; $res["SUBSCRIBE_TYPE"] = (intVal($res["TOPIC_ID"]) > 0 ? "TOPIC" : ($res["NEW_TOPIC_ONLY"] == "Y" ? "NEW_TOPIC_ONLY" : "ALL_MESSAGES")); $res["LAST_SEND"] = intVal($res["LAST_SEND"]); $res["read"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_READ"], array("FID" => $res["FORUM_ID"], "TID" => $res["TOPIC_ID"], "TITLE_SEO" => $res["TITLE_SEO"], "MID" => "s")); $res["list"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_LIST"], array("FID" => $res["FORUM_ID"])); $res["read_last_send"] = CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_MESSAGE"], array("FID" => $res["FORUM_ID"], "TID" => $res["TOPIC_ID"], "TITLE_SEO" => $res["TITLE_SEO"], "MID" => intVal($res["LAST_SEND"]))). "#message".intVal($res["LAST_SEND"]); $res["subscr_delete"] = ForumAddPageParams($arResult["CURRENT_PAGE"], array("SID" => $res["ID"], "ACTION" => "DEL"))."&".bitrix_sessid_get(); $res["URL"] = array( "TOPIC" => $res["read"], "FORUM" => $res["list"], "LAST_MESSAGE" => $res["read_last_send"], "DELETE" => $res["subscr_delete"]); $arResult["SUBSCRIBE_LIST"][] = $res; }while ($res = $db_res->GetNext()); } if (!empty($arResult["~FORUMS"])) { $arResult["~FORUMS"] = array_unique($arResult["~FORUMS"]); $db_res = CForumNew::GetListEx(array("SORT" => "ASC"), array("@ID" => $arResult["~FORUMS"])); if ($db_res && ($res = $db_res->GetNext())) { do { $arResult["FORUMS"][$res["ID"]] = $res; } while ($res = $db_res->GetNext()); } } if (!empty($arResult["~TOPICS"])) { $arResult["~TOPICS"] = array_unique(array_diff($arResult["~TOPICS"], array(0, ""))); $db_res = CForumTopic::GetListEx(array("SORT" => "ASC"), array("@ID" => $arResult["~TOPICS"])); if ($db_res && ($res = $db_res->GetNext())) { do { $arResult["TOPICS"][$res["ID"]] = $res; } while ($res = $db_res->GetNext()); } } foreach($arResult["SUBSCRIBE_LIST"] as $key => $res) { $arResult["SUBSCRIBE_LIST"][$key]["FORUM_INFO"] = $arResult["FORUMS"][$res["FORUM_ID"]]; $arResult["SUBSCRIBE_LIST"][$key]["TOPIC_INFO"] = $arResult["TOPICS"][$res["TOPIC_ID"]]; } /******************************************************************** /Data ********************************************************************/ /*******************************************************************/ $this->IncludeComponentTemplate(); /*******************************************************************/ if ($arParams["SET_NAVIGATION"] != "N"): $APPLICATION->AddChainItem($arResult["USER"]["SHOW_ABC"], CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_PROFILE_VIEW"], array("UID" => $arParams["UID"]))); $APPLICATION->AddChainItem(GetMessage("FSL_TITLE")); endif; if ($arParams["SET_TITLE"] != "N") $APPLICATION->SetTitle(GetMessage("FSL_TITLE")); ?>