Esempio n. 1
0
$arResult["MESSAGE_FIRST"] = array();
$arResult["MESSAGE_LIST"] = array();
$arResult["MESSAGE_VIEW"] = array();
$arResult["VIEW"] = "N";
$bVarsFromForm = false;
/************** Current User ***************************************/
$arResult["USER"] = array("INFO" => array(), "PERMISSION" => $arParams["PERMISSION"], "RIGHTS" => array("ADD_TOPIC" => CForumTopic::CanUserAddTopic($arParams["FID"], $USER->GetUserGroupArray(), $USER->GetID(), $arResult["FORUM"], $arParams["PERMISSION"]) ? "Y" : "N", "MODERATE" => CForumNew::CanUserModerateForum($arParams["FID"], $USER->GetUserGroupArray(), $USER->GetID(), $arParams["PERMISSION"]) == true ? "Y" : "N", "EDIT" => CForumNew::CanUserEditForum($arParams["FID"], $USER->GetUserGroupArray(), $USER->GetID(), $arParams["PERMISSION"]) ? "Y" : "N", "ADD_MESSAGE" => CForumMessage::CanUserAddMessage($arParams["TID"], $USER->GetUserGroupArray(), $USER->GetID(), $arParams["PERMISSION"]) ? "Y" : "N"), "SUBSCRIBE" => array(), "SHOW_NAME" => $GLOBALS["FORUM_STATUS_NAME"]["guest"]);
// to avoid forum module permissions extension for admin
if ($arParams["PERMISSION"] <= "E") {
    $arResult["USER"]["RIGHTS"] = array("ADD_TOPIC" => "N", "MODERATE" => "N", "EDIT" => "N", "ADD_MESSAGE" => "N");
}
if ($USER->IsAuthorized()) {
    $arResult["USER"]["INFO"] = CForumUser::GetByUSER_ID($USER->GetParam("USER_ID"));
    $arResult["USER"]["SHOW_NAME"] = $_SESSION["FORUM"]["SHOW_NAME"];
    $arResult["USER"]["RANK"] = CForumUser::GetUserRank($USER->GetParam("USER_ID"));
    $db_res = CForumSubscribe::GetList(array(), array("USER_ID" => $USER->GetID(), "FORUM_ID" => $arParams["FID"], "TOPIC_ID" => $arParams["TID"], "SITE_ID" => SITE_ID));
    if ($db_res && ($res = $db_res->Fetch())) {
        $arResult["USER"]["SUBSCRIBE"][$res["ID"]] = $res;
    }
}
/*******************************************************************/
$arResult["PANELS"] = array("MODERATE" => $arResult["USER"]["RIGHTS"]["MODERATE"], "DELETE" => $arResult["USER"]["RIGHTS"]["EDIT"], "SUPPORT" => IsModuleInstalled("support") && $APPLICATION->GetGroupRight("forum") >= "W" ? "Y" : "N", "EDIT" => $arResult["USER"]["RIGHTS"]["EDIT"], "STATISTIC" => IsModuleInstalled("statistic") && $APPLICATION->GetGroupRight("statistic") > "D" ? "Y" : "N", "MAIN" => $APPLICATION->GetGroupRight("main") > "D" ? "Y" : "N", "MAIL" => $APPLICATION->GetGroupRight("mail") > "R" ? "Y" : "N");
/*******************************************************************/
$_SERVER["REQUEST_URI"] = $arResult["CURRENT_PAGE"];
unset($_GET["MID"]);
unset($GLOBALS["HTTP_GET_VARS"]["MID"]);
unset($_GET["ACTION"]);
unset($GLOBALS["HTTP_GET_VARS"]["ACTION"]);
$parser = new forumTextParser(LANGUAGE_ID, $arParams["PATH_TO_SMILE"]);
$parser->MaxStringLen = $arParams["WORD_LENGTH"];
$parser->image_params["width"] = $parser->image_params["height"] = $arParams["IMAGE_SIZE"];
Esempio n. 2
0
$arResult["TOPICS"] = $arResult["Topics"];
/************** Navigation *****************************************/
if (intVal($arResult["FORUM"]["FORUM_GROUP_ID"]) > 0) {
    $PARENT_ID = intVal($arResult["FORUM"]["FORUM_GROUP_ID"]);
    while ($PARENT_ID > 0) {
        $res = $arResult["GROUPS"][$PARENT_ID];
        $res["URL"] = array("GROUP" => CComponentEngine::MakePathFromTemplate($arParams["URL_TEMPLATES_FORUMS"], array("GID" => $PARENT_ID)), "~GROUP" => CComponentEngine::MakePathFromTemplate($arParams["~URL_TEMPLATES_FORUMS"], array("GID" => $PARENT_ID)));
        $arResult["GROUP_NAVIGATION"][] = $res;
        $PARENT_ID = intVal($arResult["GROUPS"][$PARENT_ID]["PARENT_ID"]);
    }
    $arResult["GROUP_NAVIGATION"] = array_reverse($arResult["GROUP_NAVIGATION"]);
}
/************** User info ******************************************/
if ($USER->IsAuthorized()) {
    $arFields = array("USER_ID" => $USER->GetID(), "FORUM_ID" => $arParams["FID"], "TOPIC_ID" => 0, "SITE_ID" => SITE_ID);
    $db_res = CForumSubscribe::GetList(array(), $arFields);
    if ($db_res && ($res = $db_res->Fetch())) {
        do {
            $arResult["USER"]["SUBSCRIBE"][$res["ID"]] = $res;
        } while ($res = $db_res->Fetch());
    }
}
/********************************************************************
				/Data
********************************************************************/
/************** For custom template ********************************/
$arResult["CURRENT_PAGE"] = $arResult["URL"]["TOPIC_LIST"];
$arResult["index"] = $arResult["URL"]["INDEX"];
$arResult["topic_new"] = $arResult["URL"]["TOPIC_NEW"];
$arResult["UserPermission"] = $arResult["PERMISSION"];
$arParams["IsAdmin"] = CForumUser::IsAdmin() ? "Y" : "N";
Esempio n. 3
0
                    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);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("FM_TITLE_PAGE")));
//************************************ Headers ********************************************************************
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => GetMessage("FM_HEAD_ID"), "sort" => "ID", "default" => true), array("id" => "FORUM_NAME", "content" => GetMessage("FM_HEAD_FORUM"), "sort" => "FORUM_NAME", "default" => true), array("id" => "TITLE", "content" => GetMessage("FM_HEAD_TOPIC"), "sort" => "TITLE", "default" => true), array("id" => "START_DATE", "content" => GetMessage("FM_HEAD_START_DATE"), "sort" => "START_DATE", "default" => true), array("id" => "LAST_SEND", "content" => GetMessage("FM_HEAD_LAST_SEND"), "sort" => "LAST_SEND", "default" => true)));
//************************************ Body ***********************************************************************
while ($arRes = $rsData->NavNext(true, "t_")) {
    $row =& $lAdmin->AddRow($t_ID, $arRes);
    $LOGIN = $arRes["LOGIN"];
    if ($t_TOPIC_ID <= 0) {
        $t_TITLE = $t_NEW_TOPIC_ONLY == "Y" ? GetMessage("FM_NEW_TOPIC_ONLY") : GetMessage("FM_ALL_MESSAGE");
    }
    $row->AddViewField("TITLE", $t_TITLE);
    $arActions = array();
    $arActions[] = array("ICON" => "delete", "TEXT" => GetMessage("FM_ACT_DELETE"), "ACTION" => "if(confirm('" . GetMessage("FM_ACT_DEL_CONFIRM") . "')) " . $lAdmin->ActionDoGroup($t_ID, "delete", "USER_ID=" . $USER_ID . "&lang=" . LANG));
Esempio n. 4
0
 function SendMailMessage($MID, $arFields = array(), $strLang = false, $mailTemplate = false)
 {
     global $USER;
     $MID = intVal($MID);
     $arMessage = array();
     $arTopic = array();
     $arForum = array();
     $arFiles = array();
     $mailTemplate = $mailTemplate === false ? "NEW_FORUM_MESSAGE" : $mailTemplate;
     $event = new CEvent();
     if ($MID > 0) {
         CTimeZone::Disable();
         $arMessage = CForumMessage::GetByIDEx($MID, array("GET_TOPIC_INFO" => "Y", "GET_FORUM_INFO" => "Y", "FILTER" => "Y"));
         CTimeZone::Enable();
         $db_files = CForumFiles::GetList(array("MESSAGE_ID" => "ASC"), array("MESSAGE_ID" => $MID));
         if ($db_files && ($res = $db_files->Fetch())) {
             do {
                 $arFiles[$res["ID"]] = CFile::GetFileArray($res["FILE_ID"]);
             } while ($res = $db_files->Fetch());
         }
     }
     if (empty($arMessage)) {
         return false;
     }
     $arTopic = $arMessage["TOPIC_INFO"];
     $arForum = $arMessage["FORUM_INFO"];
     $TID = intVal($arMessage["TOPIC_ID"]);
     $FID = intVal($arMessage["FORUM_ID"]);
     if (!is_set($arFields, "FORUM_ID")) {
         $arFields["FORUM_ID"] = $arMessage["FORUM_ID"];
     }
     if (!is_set($arFields, "FORUM_NAME")) {
         $arFields["FORUM_NAME"] = $arForum["NAME"];
     }
     if (!is_set($arFields, "TOPIC_ID")) {
         $arFields["TOPIC_ID"] = $arMessage["TOPIC_ID"];
     }
     if (!is_set($arFields, "MESSAGE_ID")) {
         $arFields["MESSAGE_ID"] = $arMessage["ID"];
     }
     if (!is_set($arFields, "TOPIC_TITLE")) {
         $arFields["TOPIC_TITLE"] = $arTopic["TITLE"];
     }
     if (!is_set($arFields, "MESSAGE_DATE")) {
         $arFields["MESSAGE_DATE"] = $arMessage["POST_DATE"];
     }
     if (!is_set($arFields, "AUTHOR")) {
         $arFields["AUTHOR"] = $arMessage["AUTHOR_NAME"];
     }
     if (!is_set($arFields, "TAPPROVED")) {
         $arFields["TAPPROVED"] = $arTopic["APPROVED"];
     }
     if (!is_set($arFields, "MAPPROVED")) {
         $arFields["MAPPROVED"] = $arMessage["APPROVED"];
     }
     if (!is_set($arFields, "FROM_EMAIL")) {
         $arFields["FROM_EMAIL"] = COption::GetOptionString("forum", "FORUM_FROM_EMAIL", "*****@*****.**");
     }
     //If the message is from socialnetwork, check if mail processor exists for this social network
     if ($arTopic["SOCNET_GROUP_ID"] > 0) {
         if (CModule::IncludeModule("mail") && CModule::IncludeModule("socialnetwork")) {
             $arMailParams = CForumEMail::GetForumFilters($FID, $arTopic["SOCNET_GROUP_ID"]);
             //If the processor exists:
             if ($arMailParams) {
                 global $DB;
                 if ($arMessage["XML_ID"] == '') {
                     //check if MSG_ID field exists, generate it if not
                     $arMessage["XML_ID"] = "M" . $MID . "." . md5(uniqid()) . "@" . ($_SERVER["SERVER_NAME"] != '' ? $_SERVER["SERVER_NAME"] : $_SERVER["SERVER_ADDR"]);
                     $DB->Query("UPDATE b_forum_message SET XML_ID='" . $DB->ForSQL($arMessage["XML_ID"]) . "' WHERE ID=" . $MID);
                 }
                 //get MSG_ID topics, it would be IN_REPLY_TO
                 if ($arTopic["XML_ID"] == '') {
                     $arTopic["XML_ID"] = "T" . $TID . "." . md5(uniqid()) . "@" . ($_SERVER["SERVER_NAME"] != '' ? $_SERVER["SERVER_NAME"] : $_SERVER["SERVER_ADDR"]);
                     $DB->Query("UPDATE b_forum_topic SET XML_ID='" . $DB->ForSQL($arTopic["XML_ID"]) . "' WHERE ID=" . $TID);
                 }
                 //fill FROM_EMAIL from AUTHOR_NAME + FROM_EMAIL or AUTHOR_EMAIL or from 'b_user' by AUTHOR_ID depending on the settings of mail processor
                 if ($arMailParams['USE_EMAIL'] == 'Y' && $arMessage["AUTHOR_EMAIL"] != '') {
                     $arFields["FROM_EMAIL"] = '"' . $arMessage['AUTHOR_NAME'] . '" <' . $arMessage['AUTHOR_EMAIL'] . '>';
                 } elseif ($arMailParams['USE_EMAIL'] == 'Y' && $arMessage["EMAIL"] != '') {
                     $arFields["FROM_EMAIL"] = '"' . $arMessage['AUTHOR_NAME'] . '" <' . $arMessage['EMAIL'] . '>';
                 } else {
                     $arFields["FROM_EMAIL"] = '"' . $arMessage['AUTHOR_NAME'] . '" <' . $arMailParams['EMAIL'] . '>';
                 }
                 if ($arMessage["NEW_TOPIC"] == "Y") {
                     $arFields["=Message-Id"] = $arFields["MSG_ID"] = "<" . $arTopic["XML_ID"] . ">";
                 } else {
                     $arFields["TOPIC_TITLE"] = "Re" . ($arMessage["TOPIC_INFO"]["POSTS"] > 1 ? "[" . $arMessage["TOPIC_INFO"]["POSTS"] . "]" : "") . ": " . $arFields["TOPIC_TITLE"];
                     $arFields["=Message-Id"] = $arFields["MSG_ID"] = "<" . $arMessage["XML_ID"] . ">";
                     $arFields["=In-Reply-To"] = $arFields["IN_REPLY_TO"] = "<" . $arTopic["XML_ID"] . ">";
                 }
                 //fill REPLY_TO from the settings of the mail processor
                 $arFields["=Reply-To"] = $arFields["REPLY_TO"] = $arMailParams["EMAIL"];
                 $arFields["FORUM_EMAIL"] = $arMailParams["EMAIL"];
                 $arSocNetGroup = CSocNetGroup::GetById($arTopic["SOCNET_GROUP_ID"]);
                 $arFields["FORUM_NAME"] = $arSocNetGroup["NAME"];
                 if ($arMailParams["SUBJECT_SUF"] != '') {
                     $arFields["TOPIC_TITLE"] .= ' ' . $arMailParams["SUBJECT_SUF"];
                 }
                 if ($arMailParams["USE_SUBJECT"] == "Y") {
                     $arFields["=Subject"] = $arFields["TOPIC_TITLE"];
                 }
                 $arFields["PATH2FORUM"] = CComponentEngine::MakePathFromTemplate($arMailParams["URL_TEMPLATES_MESSAGE"], array("FID" => $arMessage["FORUM_ID"], "TID" => $arMessage["TOPIC_ID"], "TITLE_SEO" => $arMessage["TOPIC_INFO"]["TITLE_SEO"], "MID" => $arMessage["ID"]));
             } else {
                 return false;
             }
         } else {
             return false;
         }
     } else {
         $arForumSites = CForumNew::GetSites($FID);
         foreach ($arForumSites as $site_id => $path) {
             $arForumSites[$site_id] = trim(CForumNew::PreparePath2Message($arForumSites[$site_id], array("FORUM_ID" => $arMessage["FORUM_ID"], "TOPIC_ID" => $arMessage["TOPIC_ID"], "TITLE_SEO" => $arMessage["TOPIC_INFO"]["TITLE_SEO"], "MESSAGE_ID" => $arMessage["ID"], "SOCNET_GROUP_ID" => $arTopic["SOCNET_GROUP_ID"], "OWNER_ID" => $arTopic["OWNER_ID"], "PARAM1" => $arMessage["PARAM1"], "PARAM2" => $arMessage["PARAM2"])));
             if (empty($arForumSites[$site_id])) {
                 $db_lang = CSite::GetByID($site_id);
                 $arForumSites[$site_id] = "/";
                 if ($ar_lang = $db_lang->Fetch()) {
                     $arForumSites[$site_id] = $ar_lang["DIR"];
                 }
                 $arForumSites[$site_id] = COption::GetOptionString("forum", "REL_FPATH", "") . "forum/read.php?FID=#FID#&TID=#TID#&MID=#MID##message#MID#";
             }
         }
         foreach (GetModuleEvents("forum", "onBeforeMailMessageSend", true) as $arEvent) {
             if (ExecuteModuleEventEx($arEvent, array(&$mailTemplate, &$arForumSites, &$arFields, $arForum, $arTopic, $arMessage)) === false) {
                 return false;
             }
         }
     }
     /*
     		??
     		ALTER TABLE dbo.B_FORUM_MESSAGE ADD
     			MSG_ID varchar(255) NULL,
     			MAIL_MESSAGE_ID int NULL
     */
     $arFilter = array("FORUM_ID" => $FID, "TOPIC_ID_OR_NULL" => $TID, "ACTIVE" => "Y", ">=PERMISSION" => $arTopic["APPROVED"] != "Y" || $arMessage["APPROVED"] != "Y" ? "Q" : "E");
     if ($arMessage["NEW_TOPIC"] != "Y") {
         $arFilter["NEW_TOPIC_ONLY"] = "N";
     }
     if ($mailTemplate == "NEW_FORUM_MESSAGE") {
         $arFilter["LAST_SEND_OR_NULL"] = $MID;
     }
     if ($arTopic["SOCNET_GROUP_ID"] > 0) {
         $mailTemplate = "FORUM_NEW_MESSAGE_MAIL";
         $arFilter["SOCNET_GROUP_ID"] = $arTopic["SOCNET_GROUP_ID"];
     } else {
         $arFilter["SOCNET_GROUP_ID"] = false;
     }
     $db_res = CForumSubscribe::GetListEx(array("USER_ID" => "ASC"), $arFilter);
     $arID = array();
     $arSiteFields = array();
     $currentUserID = false;
     while ($res = $db_res->Fetch()) {
         // SUBSC_GET_MY_MESSAGE - Send my messages to myself.
         if ($res["SUBSC_GET_MY_MESSAGE"] == "N" && $res["USER_ID"] == $USER->GetId()) {
             continue;
         }
         // SUBSC_GROUP_MESSAGE  - Group messages.
         if ($currentUserID == $res["USER_ID"]) {
             continue;
         }
         // Check email
         if (empty($res["EMAIL"])) {
             continue;
         }
         if ($mailTemplate == "FORUM_NEW_MESSAGE_MAIL" && $res["USER_ID"] == $arMessage["AUTHOR_ID"]) {
             continue;
         }
         $currentUserID = $res["USER_ID"];
         $arFields_tmp = $arFields;
         if (!is_set($arFields_tmp, "PATH2FORUM")) {
             $arFields_tmp["PATH2FORUM"] = $arForumSites[$res["SITE_ID"]];
         }
         if (!is_set($arFields_tmp, "MESSAGE_TEXT")) {
             if (!isset(${"parser_" . $res["SITE_ID"]})) {
                 ${"parser_" . $res["SITE_ID"]} = new forumTextParser($res["SITE_ID"]);
             }
             if (empty($arSiteFields[$res["SITE_ID"]])) {
                 $arSiteFields[$res["SITE_ID"]] = $event->GetSiteFieldsArray($res["SITE_ID"]);
                 $db_site = CSite::GetByID($res["SITE_ID"]);
                 if ($db_site && ($arSite = $db_site->Fetch())) {
                     $arSiteFields[$res["SITE_ID"]] = array_merge($arSiteFields[$res["SITE_ID"]], $arSite, array("LANG_MESS" => IncludeModuleLangFile(__FILE__, $arSiteFields[$res["SITE_ID"]]["LANGUAGE_ID"], true)));
                     $arSiteFields[$res["SITE_ID"]]["ATTACHED_FILES"] = $arSiteFields[$res["SITE_ID"]]["LANG_MESS"]["F_ATTACHED_FILES"];
                 }
             }
             if (!empty($arSiteFields[$res["SITE_ID"]]["SERVER_NAME"])) {
                 ${"parser_" . $res["SITE_ID"]}->serverName = $arSiteFields[$res["SITE_ID"]]["SERVER_NAME"];
             }
             ${"parser_" . $res["SITE_ID"]}->arFiles = $arFiles;
             $POST_MESSAGE_HTML = $arMessage["POST_MESSAGE"];
             if (COption::GetOptionString("forum", "FILTER", "Y") == "Y") {
                 $POST_MESSAGE_HTML = empty($arMessage["POST_MESSAGE_FILTER"]) ? CFilterUnquotableWords::Filter($POST_MESSAGE_HTML) : $arMessage["POST_MESSAGE_FILTER"];
             }
             $arFields_tmp["MESSAGE_TEXT"] = ${"parser_" . $res["SITE_ID"]}->convert4mail($POST_MESSAGE_HTML);
             $arFields_tmp["PARSED_FILES"] = ${"parser_" . $res["SITE_ID"]}->arFilesIDParsed;
             $tmp = array_diff(array_keys($arFiles), ${"parser_" . $res["SITE_ID"]}->arFilesIDParsed);
             if (!empty($tmp)) {
                 $str = "[FILE ID=" . implode("]\n[FILE ID=", $tmp) . "]";
                 ${"parser_" . $res["SITE_ID"]}->ParserFile($str, ${"parser_" . $res["SITE_ID"]}, "mail");
                 $arFields_tmp["MESSAGE_TEXT"] .= "\n\n" . $arSiteFields[$res["SITE_ID"]]["ATTACHED_FILES"] . "\n" . $str;
             }
         }
         $arFields_tmp["RECIPIENT"] = $res["EMAIL"];
         $event->Send($mailTemplate, $res["SITE_ID"], $arFields_tmp, "N");
         $arID[] = $res["ID"];
         if (count($arID) > 255) {
             CForumSubscribe::UpdateLastSend($MID, implode(",", $arID));
             $arID = array();
         }
     }
     if (count($arID) > 0) {
         CForumSubscribe::UpdateLastSend($MID, implode(",", $arID));
     }
     return true;
 }
Esempio n. 5
0
$arParams["USE_CAPTCHA"] = $arResult["FORUM"]["USE_CAPTCHA"] == "Y" ? "Y" : $arParams["USE_CAPTCHA"];
/********************************************************************
				/Input params
********************************************************************/

/********************************************************************
				Data
********************************************************************/
/************** 3. Get inormation about USER ***********************/
if ($arParams["SHOW_SUBSCRIBE"] == "Y" && $USER->IsAuthorized() && $arResult["USER"]["PERMISSION"] > "E")
{
	// USER subscribes
	$db_res = CForumSubscribe::GetList(
		array(),
		array(
			"USER_ID" => $USER->GetID(),
			"FORUM_ID" => $arParams["FORUM_ID"]
		)
	);
	if ($db_res && $res = $db_res->Fetch())
	{
		do
		{
			$arResult["USER"]["SUBSCRIBE"][] = $res;
			if (intval($res["TOPIC_ID"]) <= 0)
				$arResult["USER"]["FORUM_SUBSCRIBE"] = "Y";
			elseif(intval($res["TOPIC_ID"]) == intval($arResult["FORUM_TOPIC_ID"]))
				$arResult["USER"]["TOPIC_SUBSCRIBE"] = "Y";
		} while ($res = $db_res->Fetch());
	}
}
Esempio n. 6
0
 function Update($ID, $arFields, $skip_counts = False)
 {
     global $DB;
     $ID = intVal($ID);
     $arFields1 = array();
     $arFieldsForFilter = array();
     $bNeedFilter = false;
     if ($ID <= 0 || !CForumTopic::CheckFields("UPDATE", $arFields)) {
         return false;
     }
     /***************** Event onBeforeTopicUpdate **************************/
     $events = GetModuleEvents("forum", "onBeforeTopicUpdate");
     while ($arEvent = $events->Fetch()) {
         if (ExecuteModuleEventEx($arEvent, array(&$ID, &$arFields)) === false) {
             return false;
         }
     }
     /***************** /Event ******************************************/
     if (empty($arFields)) {
         return false;
     }
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!$skip_counts && is_set($arFields, "FORUM_ID") || COption::GetOptionString("forum", "FILTER", "Y") == "Y" || (is_set($arFields, "TITLE") || is_set($arFields, "TAGS")) && IsModuleInstalled("search")) {
         $arTopic_prev = CForumTopic::GetByID($ID, array("NoFilter" => true));
     }
     // Fields "HTML".
     if (COption::GetOptionString("forum", "FILTER", "Y") == "Y") {
         $arFieldsForFilter = array("TITLE" => is_set($arFields, "TITLE") ? $arFields["TITLE"] : $arTopic_prev["TITLE"], "TAGS" => is_set($arFields, "TAGS") ? $arFields["TAGS"] : $arTopic_prev["TAGS"], "DESCRIPTION" => is_set($arFields, "DESCRIPTION") ? $arFields["DESCRIPTION"] : $arTopic_prev["DESCRIPTION"], "LAST_POSTER_NAME" => is_set($arFields, "LAST_POSTER_NAME") ? $arFields["LAST_POSTER_NAME"] : $arTopic_prev["LAST_POSTER_NAME"], "ABS_LAST_POSTER_NAME" => is_set($arFields, "ABS_LAST_POSTER_NAME") ? $arFields["ABS_LAST_POSTER_NAME"] : $arTopic_prev["ABS_LAST_POSTER_NAME"], "USER_START_NAME" => is_set($arFields, "USER_START_NAME") ? $arFields["USER_START_NAME"] : $arTopic_prev["USER_START_NAME"]);
         $bNeedFilter = false;
         foreach ($arFieldsForFilter as $key => $val) {
             if (is_set($arFields, $key)) {
                 $bNeedFilter = true;
                 break;
             }
         }
         if ($bNeedFilter) {
             foreach ($arFieldsForFilter as $key => $val) {
                 $res = CFilterUnquotableWords::Filter($val);
                 if (empty($res) && !empty($val)) {
                     $res = "*";
                 }
                 $arFieldsForFilter[$key] = $res;
             }
             $arFields["HTML"] = serialize($arFieldsForFilter);
         }
     }
     $strUpdate = $DB->PrepareUpdate("b_forum_topic", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strLen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     if (!empty($strUpdate)) {
         $strSql = "UPDATE b_forum_topic SET " . $strUpdate . " WHERE ID = " . $ID;
         $DB->QueryBind($strSql, array("HTML" => $arFields["HTML"]), false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
     }
     $res = array_merge($arFields1, $arFields);
     if (count($res) == 1 && !empty($res["VIEWS"])) {
         if (intVal($res["VIEWS"]) <= 0) {
             $GLOBALS["FORUM_CACHE"]["TOPIC"][$ID]["VIEWS"]++;
             $GLOBALS["FORUM_CACHE"]["TOPIC_FILTER"][$ID]["VIEWS"]++;
         } else {
             $GLOBALS["FORUM_CACHE"]["TOPIC"][$ID]["VIEWS"] = intVal($res["VIEWS"]);
             $GLOBALS["FORUM_CACHE"]["TOPIC_FILTER"][$ID]["VIEWS"] = intVal($res["VIEWS"]);
         }
     } else {
         unset($GLOBALS["FORUM_CACHE"]["FORUM"][$arTopic_prev["FORUM_ID"]]);
         unset($GLOBALS["FORUM_CACHE"]["TOPIC"][$ID]);
         unset($GLOBALS["FORUM_CACHE"]["TOPIC_FILTER"][$ID]);
         if (intVal($arFields1["FORUM_ID"]) > 0) {
             unset($GLOBALS["FORUM_CACHE"]["FORUM"][intVal($arFields1["FORUM_ID"])]);
         }
         if (intVal($arFields["FORUM_ID"]) > 0) {
             unset($GLOBALS["FORUM_CACHE"]["FORUM"][intVal($arFields["FORUM_ID"])]);
         }
     }
     if (count($res) == 1 && !empty($res["VIEWS"])) {
         return $ID;
     }
     if (is_set($arFields, "FORUM_ID") && intVal($arFields["FORUM_ID"]) != intVal($arTopic_prev["FORUM_ID"])) {
         $arFiles = array();
         $db_res = CForumFiles::GetList(array(), array("TOPIC_ID" => $ID));
         if ($db_res && ($res = $db_res->Fetch())) {
             do {
                 $arFiles[] = $res["ID"];
             } while ($res = $db_res->Fetch());
         }
         CForumFiles::UpdateByID($arFiles, array("FORUM_ID" => $arFields["FORUM_ID"]));
     }
     /***************** Event onAfterTopicUpdate ************************/
     $events = GetModuleEvents("forum", "onAfterTopicUpdate");
     if ($events->nSelectedCount > 0) {
         $arTopicFields = CForumTopic::GetByID($ID, array("NoFilter" => true));
     }
     while ($arEvent = $events->Fetch()) {
         ExecuteModuleEventEx($arEvent, array($ID, $arTopicFields));
     }
     /***************** /Event ******************************************/
     // recalc statistic if topic removed from another forum
     if (!$skip_counts && is_set($arFields, "FORUM_ID") && intVal($arFields["FORUM_ID"]) != intVal($arTopic_prev["FORUM_ID"])) {
         $DB->StartTransaction();
         $db_res = CForumMessage::GetList(array(), array("TOPIC_ID" => $ID));
         while ($ar_res = $db_res->Fetch()) {
             CForumMessage::Update($ar_res["ID"], array("FORUM_ID" => $arFields["FORUM_ID"]), true);
         }
         $db_res = CForumSubscribe::GetList(array(), array("TOPIC_ID" => $ID));
         while ($ar_res = $db_res->Fetch()) {
             CForumSubscribe::Update($ar_res["ID"], array("FORUM_ID" => $arFields["FORUM_ID"]));
         }
         $DB->Commit();
         CForumNew::SetStat($arFields["FORUM_ID"]);
         CForumNew::SetStat($arTopic_prev["FORUM_ID"]);
     }
     if (IsModuleInstalled("search")) {
         $bNeedDeleteIndex = false;
         if (is_set($arFields, "FORUM_ID") && intVal($arFields["FORUM_ID"]) != intVal($arTopic_prev["FORUM_ID"])) {
             $res = CForumNew::GetByID($arFields["FORUM_ID"]);
             $bNeedDeleteIndex = $res["INDEXATION"] != "Y" ? true : false;
         }
         if ($bNeedDeleteIndex) {
             CModule::IncludeModule("search");
             CSearch::DeleteIndex("forum", false, $arTopic_prev["FORUM_ID"], $ID);
         } elseif (is_set($arFields, "TITLE") || is_set($arFields, "TAGS") || is_set($arFields, "DESCRIPTION")) {
             $arReindex = array();
             $arFields["FORUM_ID"] = is_set($arFields, "FORUM_ID") ? $arFields["FORUM_ID"] : $arTopic_prev["FORUM_ID"];
             if (is_set($arFields, "TITLE") && trim($arTopic_prev["TITLE"]) != trim($arFields["TITLE"])) {
                 $arReindex["TITLE"] = $bNeedFilter ? $arFieldsForFilter["TITLE"] : $arFields["TITLE"];
             }
             if (is_set($arFields, "DESCRIPTION") && trim($arTopic_prev["DESCRIPTION"]) != trim($arFields["DESCRIPTION"])) {
                 $title = is_set($arReindex, "TITLE") ? $arReindex["TITLE"] : ($bNeedFilter ? $arFieldsForFilter["TITLE"] : $arTopic_prev["TITLE"]);
                 $description = $bNeedFilter ? $arFieldsForFilter["DESCRIPTION"] : $arFields["DESCRIPTION"];
                 $arReindex["TITLE_FOR_FIRST_POST"] = $title . (!empty($description) ? ", " . $description : "");
             }
             if (is_set($arFields, "TAGS") && trim($arTopic_prev["TAGS"]) != trim($arFields["TAGS"])) {
                 $arReindex["TAGS"] = $bNeedFilter ? $arFieldsForFilter["TAGS"] : $arFields["TAGS"];
             }
             if (!empty($arReindex)) {
                 CModule::IncludeModule("search");
                 if (is_set($arReindex, "TITLE")) {
                     $db_res = CForumMessage::GetList(array("ID" => "ASC"), array("FORUM_ID" => $arFields["FORUM_ID"], "TOPIC_ID" => $ID, "NEW_TOPIC" => "Y"));
                     if ($db_res) {
                         while ($arMessage = $db_res->Fetch()) {
                             CForumMessage::Reindex($arMessage['ID'], array_merge($arMessage, $arReindex));
                         }
                     }
                 }
                 if (is_set($arReindex, "TITLE_FOR_FIRST_POST") || is_set($arReindex, "TAGS")) {
                     unset($arReindex["TITLE"]);
                     if (is_set($arReindex, "TITLE_FOR_FIRST_POST")) {
                         $arReindex["TITLE"] = $arReindex["TITLE_FOR_FIRST_POST"];
                         unset($arReindex["TITLE_FOR_FIRST_POST"]);
                     }
                     $db_res = CForumMessage::GetList(array("ID" => "ASC"), array("TOPIC_ID" => $ID, "NEW_TOPIC" => "Y"));
                     if ($db_res && ($arMessage = $db_res->Fetch())) {
                         CForumMessage::Reindex($arMessage['ID'], array_merge($arMessage, $arReindex));
                     }
                 }
             }
         }
     }
     return $ID;
 }
Esempio n. 7
0
 public static function Update($ID, $arFields)
 {
     global $DB;
     $ID = intVal($ID);
     if (!CForumSubscribe::CheckFields("UPDATE", $arFields)) {
         return false;
     }
     $strUpdate = $DB->PrepareUpdate("b_forum_subscribe", $arFields);
     $strSql = "UPDATE b_forum_subscribe SET " . $strUpdate . " WHERE ID = " . $ID;
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     return $ID;
 }
Esempio n. 8
0
********************************************************************/
$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");
Esempio n. 9
0
        $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"));
        ?>

<?php 
        $db_res = CForumSubscribe::GetList(array("FORUM_ID" => "ASC", "TOPIC_ID" => "ASC", "START_DATE" => "ASC"), array("USER_ID" => $UID));
        ?>
<form action="<?php 
        echo $APPLICATION->GetCurPage();
        ?>
" method="post">

<font class="text">
<?php 
        $FID = IntVal($_REQUEST["FID"]);
        $TID = IntVal($_REQUEST["TID"]);
        if ($TID > 0) {
            ?>
<a href="read.php?FID=<?php 
            echo $FID;
            ?>
Esempio n. 10
0
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;
}
Esempio n. 11
0
 function AddComment_Review_CreateRoot_Forum($arElement, $forumID, $bPostFirstMessage = false, $strFirstMessage = "")
 {
     if (!CModule::IncludeModule("forum")) {
         return false;
     }
     if ($bPostFirstMessage && strlen($strFirstMessage) <= 0) {
         return false;
     }
     // Add Topic
     $arUserStart = array("ID" => intVal($arElement["~CREATED_BY"]), "NAME" => $GLOBALS["FORUM_STATUS_NAME"]["guest"]);
     if ($arUserStart["ID"] > 0) {
         $res = array();
         $db_res = CForumUser::GetListEx(array(), array("USER_ID" => $arElement["~CREATED_BY"]));
         if ($db_res && ($res = $db_res->Fetch())) {
             $res["FORUM_USER_ID"] = intVal($res["ID"]);
             $res["ID"] = $res["USER_ID"];
         } else {
             $db_res = CUser::GetByID($arElement["~CREATED_BY"]);
             if ($db_res && ($res = $db_res->Fetch())) {
                 $res["SHOW_NAME"] = COption::GetOptionString("forum", "USER_SHOW_NAME", "Y");
                 $res["USER_PROFILE"] = "N";
             }
         }
         if (!empty($res)) {
             $arUserStart = $res;
             $sName = $res["SHOW_NAME"] == "Y" ? trim($res["NAME"] . " " . $res["LAST_NAME"]) : "";
             $arUserStart["NAME"] = empty($sName) ? trim($res["LOGIN"]) : $sName;
         }
     }
     $arUserStart["NAME"] = empty($arUserStart["NAME"]) ? $GLOBALS["FORUM_STATUS_NAME"]["guest"] : $arUserStart["NAME"];
     $GLOBALS["DB"]->StartTransaction();
     $arFields = array("TITLE" => $arElement["~NAME"], "TAGS" => $arElement["~TAGS"], "FORUM_ID" => $forumID, "USER_START_ID" => $arUserStart["ID"], "USER_START_NAME" => $arUserStart["NAME"], "LAST_POSTER_NAME" => $arUserStart["NAME"], "APPROVED" => "Y", "XML_ID" => "IBLOCK_" . $arElement["ID"]);
     if (isset($arElement["ENTITY_TYPE"]) && $arElement["ENTITY_TYPE"] == SONET_ENTITY_GROUP && isset($arElement["ENTITY_ID"]) && intval($arElement["ENTITY_ID"]) > 0) {
         $arFields["SOCNET_GROUP_ID"] = intval($arElement["ENTITY_ID"]);
     }
     $TOPIC_ID = CForumTopic::Add($arFields);
     if ($bPostFirstMessage && intVal($TOPIC_ID) > 0) {
         if (COption::GetOptionString("forum", "FILTER", "Y") == "Y") {
             $strFirstMessage = CFilterUnquotableWords::Filter($strFirstMessage);
         }
         // Add post as new message
         $arFields = array("POST_MESSAGE" => $strFirstMessage, "AUTHOR_ID" => $arUserStart["ID"], "AUTHOR_NAME" => $arUserStart["NAME"], "FORUM_ID" => $forumID, "TOPIC_ID" => $TOPIC_ID, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => "IB", "PARAM2" => intVal($arElement["ID"]));
         $MID = CForumMessage::Add($arFields, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N"));
         if (intVal($MID) <= 0) {
             $arError[] = array("code" => "message is not added 1", "title" => GetMessage("F_ERR_ADD_MESSAGE"));
             CForumTopic::Delete($TOPIC_ID);
             $TOPIC_ID = 0;
         } elseif ($arParams["SUBSCRIBE_AUTHOR_ELEMENT"] == "Y" && intVal($arResult["ELEMENT"]["~CREATED_BY"]) > 0) {
             if ($arUserStart["USER_PROFILE"] == "N") {
                 $arUserStart["FORUM_USER_ID"] = CForumUser::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"]));
             }
             if (intVal($arUserStart["FORUM_USER_ID"]) > 0) {
                 CForumSubscribe::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"], "FORUM_ID" => $arParams["FORUM_ID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => $TID, "NEW_TOPIC_ONLY" => "N"));
                 BXClearCache(true, "/bitrix/forum/user/" . $arResult["ELEMENT"]["~CREATED_BY"] . "/subscribe/");
                 // Sorry, Max.
             }
         }
     } elseif (intVal($TOPIC_ID) <= 0) {
         $GLOBALS["DB"]->Rollback();
         return false;
     }
     $GLOBALS["DB"]->Commit();
     return $TOPIC_ID;
 }
Esempio n. 12
0
         $sElementPreview = $arResult["ELEMENT"]["~PREVIEW_TEXT"];
         if ($arAllow["HTML"] != "Y") {
             $sElementPreview = strip_tags($sElementPreview);
         }
         $arFields = array("POST_MESSAGE" => str_replace(array("#IMAGE#", "#TITLE#", "#BODY#", "#LINK#"), array($sImage, $arResult["ELEMENT"]["~NAME"], $sElementPreview, $url), $arParams["POST_FIRST_MESSAGE_TEMPLATE"]), "AUTHOR_ID" => $arUserStart["ID"], "AUTHOR_NAME" => $arUserStart["NAME"], "FORUM_ID" => $arParams["FORUM_ID"], "TOPIC_ID" => $TID, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => "IB", "PARAM2" => intVal($arParams["ELEMENT_ID"]));
         $MID = CForumMessage::Add($arFields, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N"));
         if (intVal($MID) <= 0) {
             $arError[] = array("code" => "message is not added 1", "title" => GetMessage("F_ERR_ADD_MESSAGE"));
             CForumTopic::Delete($TID);
             $TID = 0;
         } elseif ($arParams["SUBSCRIBE_AUTHOR_ELEMENT"] == "Y" && intVal($arResult["ELEMENT"]["~CREATED_BY"]) > 0) {
             if ($arUserStart["USER_PROFILE"] == "N") {
                 $arUserStart["FORUM_USER_ID"] = CForumUser::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"]));
             }
             if (intVal($arUserStart["FORUM_USER_ID"]) > 0) {
                 CForumSubscribe::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"], "FORUM_ID" => $arParams["FORUM_ID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => $TID, "NEW_TOPIC_ONLY" => "N"));
                 BXClearCache(true, "/bitrix/forum/user/" . $arResult["ELEMENT"]["~CREATED_BY"] . "/subscribe/");
                 // Sorry, Max.
             }
         }
     }
     // Second exit point
     if (!empty($arError)) {
         $DB->Rollback();
         return false;
     } else {
         $DB->Commit();
     }
 }
 // 1.6.1 Add post comment
 $arFieldsG = array("POST_MESSAGE" => $_POST["REVIEW_TEXT"], "AUTHOR_NAME" => trim($_POST["REVIEW_AUTHOR"]), "AUTHOR_EMAIL" => $_POST["REVIEW_EMAIL"], "USE_SMILES" => $_POST["REVIEW_USE_SMILES"], "PARAM2" => intVal($arParams["ELEMENT_ID"]), "TITLE" => $PRODUCT_NAME);
Esempio n. 13
0
         }
         if ($arAllow["HTML"] != "Y") {
             $arTopic['MESSAGE'] = strip_tags($arTopic['MESSAGE']);
         }
         $arFields = array("POST_MESSAGE" => $arTopic['MESSAGE'], "AUTHOR_ID" => $arUserStart["ID"], "AUTHOR_NAME" => $arUserStart["NAME"], "FORUM_ID" => $arParams["FORUM_ID"], "TOPIC_ID" => $TID, "APPROVED" => "Y", "NEW_TOPIC" => "Y", "PARAM1" => $arParams['ENTITY_TYPE'], "PARAM2" => intVal($arParams["ENTITY_ID"]), "PERMISSION_EXTERNAL" => $arResult['USER']["PERMISSION"], "PERMISSION" => $arResult['USER']["PERMISSION"]);
         $res = CForumMessage::Add($arFields, false, array("SKIP_INDEXING" => "Y", "SKIP_STATISTIC" => "N"));
         if (intVal($res) <= 0) {
             $arError[] = array("code" => "message is not added 1", "title" => GetMessage("F_ERR_ADD_MESSAGE"));
             CForumTopic::Delete($TID);
             $TID = 0;
         } elseif ($arParams["SUBSCRIBE_AUTHOR_ELEMENT"] == "Y" && intVal($arResult["ELEMENT"]["~CREATED_BY"]) > 0) {
             if ($arUserStart["USER_PROFILE"] == "N") {
                 $arUserStart["FORUM_USER_ID"] = CForumUser::Add(array("USER_ID" => $arResult["ELEMENT"]["~CREATED_BY"]));
             }
             if (intVal($arUserStart["FORUM_USER_ID"]) > 0) {
                 CForumSubscribe::Add(array("USER_ID" => $arUserStart["ID"], "FORUM_ID" => $arParams["FORUM_ID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => $TID, "NEW_TOPIC_ONLY" => "N"));
                 BXClearCache(true, "/bitrix/forum/user/" . $arUserStart["ID"] . "/subscribe/");
             }
         }
     }
     // Second exit point
     if (!empty($arError)) {
         $DB->Rollback();
         return false;
     } else {
         $DB->Commit();
         $arResult["FORUM_TOPIC_ID"] = $TID;
     }
 }
 // Add post comment
 $arFieldsG = array("POST_MESSAGE" => $arPost["MESSAGE"], "AUTHOR_NAME" => trim($post["REVIEW_AUTHOR"]), "AUTHOR_EMAIL" => $post["REVIEW_EMAIL"], "USE_SMILES" => isset($post["REVIEW_USE_SMILES"]) ? $post["REVIEW_USE_SMILES"] : "N", "PARAM2" => $arParams["ENTITY_ID"], "PERMISSION_EXTERNAL" => $arResult['USER']["PERMISSION"], "PERMISSION" => $arResult['USER']["PERMISSION"]);
Esempio n. 14
0
    if ($_REQUEST['action_target'] == 'selected') {
        $rsData = CForumUser::GetListEx(array($by => $order), $arFilter);
        while ($arRes = $rsData->Fetch()) {
            $arID[] = $arRes['USER_ID'];
        }
    }
    if (check_bitrix_sessid()) {
        foreach ($arID as $ID) {
            if (strlen($ID) <= 0) {
                continue;
            }
            $ID = intval($ID);
            switch ($_REQUEST['action']) {
                case "delete":
                    if (CForumUser::IsAdmin()) {
                        CForumSubscribe::DeleteUSERSubscribe($ID);
                    }
                    break;
            }
        }
    }
}
$rsData = CForumUser::GetListEx(array($by => $order), $arFilter);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("FM_TITLE_PAGE")));
/*******************************************************************/
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => GetMessage("FM_HEAD_FORUM_USER_ID"), "sort" => "ID", "default" => false), array("id" => "USER_ID", "content" => GetMessage("FM_HEAD_USER_ID"), "sort" => "USER_ID", "default" => true), array("id" => "EMAIL", "content" => GetMessage("FM_HEAD_EMAIL"), "sort" => "EMAIL", "default" => true), array("id" => "LOGIN", "content" => GetMessage("FM_HEAD_LOGIN"), "sort" => "LOGIN", "default" => true), array("id" => "NAME", "content" => GetMessage("FM_HEAD_NAME"), "sort" => "NAME", "default" => true), array("id" => "LAST_NAME", "content" => GetMessage("FM_HEAD_LAST_NAME"), "sort" => "LAST_NAME", "default" => true), array("id" => "SUBSC_COUNT", "content" => GetMessage("FM_HEAD_SUBSC"), "sort" => "SUBSC_COUNT", "default" => true), array("id" => "SUBSC_START_DATE", "content" => GetMessage("FM_HEAD_START_DATE"), "sort" => "SUBSC_START_DATE", "default" => true)));
/*******************************************************************/
while ($arRes = $rsData->NavNext(true, "t_")) {
    $row =& $lAdmin->AddRow($t_USER_ID, $arRes);
Esempio n. 15
0
********************************************************************/
/********************************************************************
				Data
********************************************************************/
/************** Forum subscribe ************************************/
if (!$bDialog && $arParams["USE_COMMENTS"] == "Y" && CModule::IncludeModule("forum")) {
    $arParams["USE_COMMENTS"] = $arParams["FORUM_CAN_VIEW"] = CForumNew::CanUserViewForum($arParams["FORUM_ID"], $GLOBALS['USER']->GetUserGroupArray()) ? "Y" : "N";
    if ($arParams["FORUM_CAN_VIEW"] == "Y" && $GLOBALS['USER']->IsAuthorized()) {
        $bShowSubscribe = true;
        $arUserSubscribe = array();
        $cache_id = "/" . $arParams['IBLOCK_ID'] . "/forum_user_subscribe_" . intVal($currentUserID) . "_" . $arParams["FORUM_ID"];
        if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path_main)) {
            $res = $cache->GetVars();
            $arUserSubscribe = $res["arUserSubscribe"];
        } else {
            $db_res = CForumSubscribe::GetList(array(), array("USER_ID" => $currentUserID, "FORUM_ID" => $arParams["FORUM_ID"]));
            $arUserSubscribe = array();
            if ($db_res && ($res = $db_res->Fetch())) {
                do {
                    $arUserSubscribe[] = $res;
                } while ($res = $db_res->Fetch());
            }
            $arUserSubscribe = array("USER_ID" => intVal($currentUserID), "DATA" => $arUserSubscribe);
            if ($arParams["CACHE_TIME"] > 0) {
                $cache->StartDataCache($arParams["CACHE_TIME"], $cache_id, $cache_path_main);
                $cache->EndDataCache(array("arUserSubscribe" => $arUserSubscribe));
            }
        }
        $arResult["USER"]["SUBSCRIBE"] = $arUserSubscribe["DATA"];
        if (is_array($arResult["USER"]["SUBSCRIBE"])) {
            $arTmp = array("FORUM" => "N", "TOPIC" => "N", "TOPICS" => array());
Esempio n. 16
0
 private function subscribeAuthor($type, $id, $tid)
 {
     if ($this->feed->getentity()->getType() == $type && $this->feed->getentity()->getId() == $id) {
         CForumSubscribe::Add(array("USER_ID" => $this->getUser()->getId(), "FORUM_ID" => $this->arParams["FORUM_ID"], "SITE_ID" => SITE_ID, "TOPIC_ID" => $tid, "NEW_TOPIC_ONLY" => "N"));
         BXClearCache(true, "/bitrix/forum/user/" . $this->getUser()->getId() . "/subscribe/");
     }
 }