コード例 #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"];
コード例 #2
0
ファイル: component.php プロジェクト: akniyev/arteva.ru
$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());
	}
}
コード例 #3
0
ファイル: component.php プロジェクト: rasuldev/torino
$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";
コード例 #4
0
ファイル: user.php プロジェクト: rasuldev/torino
 public static function CheckFields($ACTION, &$arFields)
 {
     if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && intVal($arFields["USER_ID"]) <= 0) {
         return false;
     }
     if ((is_set($arFields, "FORUM_ID") || $ACTION == "ADD") && intVal($arFields["FORUM_ID"]) <= 0) {
         return false;
     }
     if ((is_set($arFields, "SITE_ID") || $ACTION == "ADD") && strLen($arFields["SITE_ID"]) <= 0) {
         return false;
     }
     if ((is_set($arFields, "TOPIC_ID") || $ACTION == "ADD") && intVal($arFields["TOPIC_ID"]) <= 0) {
         $arFields["TOPIC_ID"] = false;
     }
     if ((is_set($arFields, "NEW_TOPIC_ONLY") || $ACTION == "ADD") && $arFields["NEW_TOPIC_ONLY"] != "Y") {
         $arFields["NEW_TOPIC_ONLY"] = "N";
     }
     if ($arFields["TOPIC_ID"] !== false) {
         $arFields["NEW_TOPIC_ONLY"] = "N";
     }
     if ($ACTION == "ADD") {
         $arFilter = array("USER_ID" => intVal($arFields["USER_ID"]), "FORUM_ID" => intVal($arFields["FORUM_ID"]), "TOPIC_ID" => intVal($arFields["TOPIC_ID"]));
         if ($arFields["SOCNET_GROUP_ID"]) {
             $arFilter["SOCNET_GROUP_ID"] = $arFields["SOCNET_GROUP_ID"];
         }
         $db_res = CForumSubscribe::GetList(array(), $arFilter);
         if ($res = $db_res->Fetch()) {
             return false;
         }
     }
     return True;
 }
コード例 #5
0
ファイル: topic.php プロジェクト: k-kalashnikov/geekcon_new
 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;
 }
コード例 #6
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;
            ?>
コード例 #7
0
ファイル: component.php プロジェクト: mrdeadmouse/u136006
********************************************************************/
/********************************************************************
				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());
コード例 #8
0
ファイル: component.php プロジェクト: ASDAFF/bitrix-5
$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::GetList(
	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"];