2##############################################
3# Bitrix Site Manager Forum #
4# Copyright (c) 2002-2009 Bitrix #
6# mailto:admin@bitrixsoft.com #
7##############################################
8require_once(
$_SERVER[
"DOCUMENT_ROOT"].
"/bitrix/modules/forum/classes/general/forum_new.php");
22 foreach (
GetModuleEvents(
"forum",
"onBeforeForumAdd",
true) as $arEvent)
37 $DB->Query(
"INSERT INTO b_forum2site (FORUM_ID, SITE_ID, PATH2FORUM_MESSAGE) VALUES(".
$ID.
", '".
$DB->ForSql(
$key, 2).
"', '".
$DB->ForSql($value, 250).
"')");
51 public static function reindex(&
$NS, $oCallback = NULL, $callback_method =
"")
58 $lastMessageId = intval(
$NS[
"ID"]);
59 if (
$NS[
"MODULE"] ==
"forum" && $lastMessageId > 0)
62 "FM.ID>".$lastMessageId :
63 "FM.ID>=".$lastMessageId
67 if (
$NS[
"SITE_ID"] !=
"")
69 $join[] =
" INNER JOIN b_forum2site FS ON (FS.FORUM_ID=F.ID) ";
70 $filter[] =
"FS.SITE_ID='".$DB->ForSQL(
$NS[
"SITE_ID"]).
"' ";
72 if (array_key_exists(
"FILTER",
$NS))
73 foreach (
$NS[
"FILTER"] as
$f)
75 if (array_key_exists(
"JOIN",
$NS))
76 foreach (
$NS[
"JOIN"] as $j)
81 "SELECT FT.ID as TID, FM.ID as MID,
82 ".CForumTopic::GetSelectFields(
array(
"sPrefix" =>
"FT_",
"sReturnResult" =>
"string")).
",
83 FM.*, ".
$DB->DateToCharFunction(
"FM.POST_DATE",
"FULL").
" as POST_DATE,
84 ".
$DB->DateToCharFunction(
"FM.EDIT_DATE",
"FULL").
" as EDIT_DATE,
85 FU.SHOW_NAME, FU.DESCRIPTION, FU.NUM_POSTS, FU.POINTS as NUM_POINTS, FU.SIGNATURE, FU.AVATAR, FU.RANK_ID,
86 ".
$DB->DateToCharFunction(
"FU.DATE_REG",
"SHORT").
" as DATE_REG,
87 U.EMAIL, U.PERSONAL_ICQ, U.LOGIN, U.NAME, U.SECOND_NAME, U.LAST_NAME, U.PERSONAL_PHOTO
88 FROM b_forum_message FM
89 LEFT JOIN b_forum_topic FT ON (FM.TOPIC_ID = FT.ID)
90 LEFT JOIN b_forum F ON (F.ID = FT.FORUM_ID)
91 LEFT JOIN b_forum_user FU ON (FM.AUTHOR_ID = FU.USER_ID)
92 LEFT JOIN b_user U ON (FM.AUTHOR_ID = U.ID)
93 ".implode(
" ", $join).
"
94 WHERE (F.INDEXATION = 'Y' AND FM.APPROVED = 'Y') ".(empty(
$filter) ?
"" :
" AND ".implode(
" AND ",
$filter)).
"
96 $cnt = intval(COption::GetOptionInt(
"forum",
"search_message_count", 50));
98 $strSql .=
" LIMIT ".$cnt;
101 if (COption::GetOptionString(
"forum",
"FILTER",
"Y") ==
"Y")
110 static $permissions =
array();
114 $lastMessageId =
$res[
"ID"];
116 if (!array_key_exists(
$res[
"FORUM_ID"], $permissions))
118 $permissions[
$res[
"FORUM_ID"]] =
array();
122 if ($group[1] >=
"E")
124 $permissions[
$res[
"FORUM_ID"]][] = $group[0];
134 "LAST_MODIFIED" => ((!empty(
$res[
"EDIT_DATE"])) ?
$res[
"EDIT_DATE"] :
$res[
"POST_DATE"]),
135 "PARAM1" =>
$res[
"FORUM_ID"],
136 "PARAM2" =>
$res[
"TOPIC_ID"],
137 "USER_ID" =>
$res[
"AUTHOR_ID"],
138 "ENTITY_TYPE_ID" => (
$res[
"NEW_TOPIC"] ==
"Y" ?
"FORUM_TOPIC" :
"FORUM_POST"),
139 "ENTITY_ID" => (
$res[
"NEW_TOPIC"] ==
"Y" ?
$res[
"TOPIC_ID"] :
$res[
"ID"]),
140 "PERMISSIONS" => $permissions[
$res[
"FORUM_ID"]],
141 "TITLE" =>
$res[
"FT_TITLE"].(
$res[
"NEW_TOPIC"] ==
"Y" && !empty(
$res[
"FT_DESCRIPTION"]) ?
142 ", ".
$res[
"FT_DESCRIPTION"] :
""),
143 "TAGS" => (
$res[
"NEW_TOPIC"] ==
"Y" ?
$res[
"FT_TAGS"] :
""),
146 COption::GetOptionString(
"forum",
"FILTER",
"Y") !=
"Y" ?
$res[
"POST_MESSAGE"] :
$res[
"POST_MESSAGE_FILTER"]),
148 "INDEX_TITLE" =>
$res[
"NEW_TOPIC"] ==
"Y",
150 if (!array_key_exists(
$res[
"FORUM_ID"],
$sites))
156 "FORUM_ID"=>
$res[
"FORUM_ID"],
157 "TOPIC_ID"=>
$res[
"TOPIC_ID"],
158 "TITLE_SEO"=>
$res[
"FT_TITLE_SEO"],
159 "MESSAGE_ID"=>
$res[
"ID"],
160 "SOCNET_GROUP_ID" =>
$res[
"FT_SOCNET_GROUP_ID"],
161 "OWNER_ID" =>
$res[
"FT_OWNER_ID"],
162 "PARAM1" =>
$res[
"PARAM1"],
163 "PARAM2" =>
$res[
"PARAM2"]));
170 static $defaultUrl =
array();
171 if (array_key_exists(
$res[
"FORUM_ID"], $defaultUrl))
173 $defaultUrl[
$res[
"FORUM_ID"]] =
"/";
178 $defaultUrl[
$res[
"FORUM_ID"]] =
$lang[
"DIR"];
182 $defaultUrl[
$res[
"FORUM_ID"]] .= COption::GetOptionString(
"forum",
"REL_FPATH",
"").
"forum/read.php?FID=#FID#&TID=#TID#&MID=#MID##message#MID#";
185 $defaultUrl[
$res[
"FORUM_ID"]],
187 "FORUM_ID"=>
$res[
"FORUM_ID"],
188 "TOPIC_ID"=>
$res[
"TOPIC_ID"],
189 "TITLE_SEO"=>
$res[
"FT_TITLE_SEO"],
190 "MESSAGE_ID"=>
$res[
"ID"],
191 "SOCNET_GROUP_ID" =>
$res[
"FT_SOCNET_GROUP_ID"],
192 "OWNER_ID" =>
$res[
"FT_OWNER_ID"],
193 "PARAM1" =>
$res[
"PARAM1"],
194 "PARAM2" =>
$res[
"PARAM2"]
200 foreach(
GetModuleEvents(
"forum",
"onMessageIsIndexed",
true) as $arEvent)
211 if ($oCallback && !call_user_func(
array($oCallback, $callback_method),
$result))
224 if ($oCallback && ($cnt > 0) && ($rownum >= ($cnt - 1)))
225 return $lastMessageId;
235 $ResultType = (in_array($ResultType,
array(
"timestamp",
"time")) ? $ResultType :
"timestamp");
237 $db_res =
$DB->Query(
"SELECT ".
$DB->DateToCharFunction(
$DB->GetNowFunction(),
"FULL").
" FORUM_DATE");
247 return "TRIM(BOTH '".$glue.
"' FROM REPLACE(CONCAT_WS('".$glue.
"',".implode(
",", $pieces).
"), '".$glue.$glue.
"', '".$glue.
"'))";
262 if(CACHED_b_forum_group !==
false)
263 $GLOBALS[
"CACHE_MANAGER"]->CleanDir(
"b_forum_group");
266 while ($arEvent = $events->Fetch())
281 $arInsert =
$DB->PrepareInsert(
"b_forum_group_lang",
$l);
282 $strSql =
"INSERT INTO b_forum_group_lang(FORUM_GROUP_ID, ".$arInsert[0].
") VALUES(".
$ID.
", ".$arInsert[1].
")";
288 foreach (
GetModuleEvents(
"forum",
"onAfterGroupForumsAdd",
true) as $arEvent)
304 if(CACHED_b_forum_group !==
false)
305 $GLOBALS[
"CACHE_MANAGER"]->CleanDir(
"b_forum_group");
307 foreach (
GetModuleEvents(
"forum",
"onBeforeGroupForumsUpdate",
true) as $arEvent)
315 $strUpdate =
$DB->PrepareUpdate(
"b_forum_group",
$arFields);
316 if (!empty($strUpdate))
318 $strSql =
"UPDATE b_forum_group SET ".$strUpdate.
" WHERE ID = ".
$ID;
323 $DB->Query(
"DELETE FROM b_forum_group_lang WHERE FORUM_GROUP_ID = ".
$ID);
327 $arInsert =
$DB->PrepareInsert(
"b_forum_group_lang",
$l);
328 $strSql =
"INSERT INTO b_forum_group_lang(FORUM_GROUP_ID, ".$arInsert[0].
") VALUES(".
$ID.
", ".$arInsert[1].
")";
334 foreach (
GetModuleEvents(
"forum",
"onAfterGroupForumsUpdate",
true) as $arEvent)
static Resort($ID=0, $cnt=0, $depth=0)
static CheckFields($ACTION, &$arFields, $ID=false)
static GetAccessPermissions($ID, $TYPE="ONE")
static PreparePath2Message($strPath, $arVals=array())
static CheckFields($ACTION, &$arFields)
static SetAccessPermissions($ID, $arGROUP_ID)
static Update($ID, $arFields)
static reindex(&$NS, $oCallback=NULL, $callback_method="")
static GetNowTime($ResultType="timestamp")
static Concat($glue="", $pieces=array())
static clearAllTags($text)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
if(!defined('SITE_ID')) $lang
if(!defined('NOT_CHECK_PERMISSIONS')) $NS
ExecuteModuleEventEx($arEvent, $arParams=[])
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
GetMessage($name, $aReplace=null)
MakeTimeStamp($datetime, $format=false)
if(empty($signedUserToken)) $key
$GLOBALS['_____370096793']