1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
message.php
См. документацию.
1<?php
2
3
5
6
10
12{
13 public static function index(Forum\Forum $forum, Forum\Topic $topic, array $message)
14 {
15 if (!Main\Loader::includeModule("search") || $message["SERVICE_TYPE"] > 0)
16 {
17 return;
18 }
19
20 if (Main\Config\Option::get("forum", "FILTER", "Y") == "Y" && $message["POST_MESSAGE_FILTER"] !== null)
21 {
22 $message["POST_MESSAGE"] = $message["POST_MESSAGE_FILTER"];
23 }
24
25 $arParams = [
26 "PERMISSION" => [1],
27 "SITE" => $forum->getSites(),
28 "DEFAULT_URL" => "/"
29 ];
30
31 foreach ($forum->getPermissions() as $groupId => $permission)
32 {
33 if (
34 $message["APPROVED"] == "Y" && $permission >= Permission::CAN_READ
35 ||
36 $message["APPROVED"] != "Y" && $permission >= Permission::CAN_MODERATE
37 )
38 {
39 $arParams["PERMISSION"][] = $groupId;
40 }
41 }
42
43
44 $arSearchInd = array(
45 "LID" => array(),
46 "LAST_MODIFIED" => $message["POST_DATE"],
47 "PARAM1" => $message["FORUM_ID"],
48 "PARAM2" => $message["TOPIC_ID"],
49 "ENTITY_TYPE_ID" => ($message["NEW_TOPIC"] == "Y"? "FORUM_TOPIC": "FORUM_POST"),
50 "ENTITY_ID" => ($message["NEW_TOPIC"] == "Y"? $message["TOPIC_ID"]: $message["ID"]),
51 "USER_ID" => $message["AUTHOR_ID"],
52 "PERMISSIONS" => $arParams["PERMISSION"],
53 "TITLE" => $topic["TITLE"].( $message["NEW_TOPIC"] == "Y" && !empty($topic["DESCRIPTION"]) ? ", ".$topic["DESCRIPTION"] : ""),
54 "TAGS" => ($message["NEW_TOPIC"] == "Y" ? $topic["TAGS"] : ""),
55 "BODY" => GetMessage("AVTOR_PREF")." ".$message["AUTHOR_NAME"].". ".(\CSearch::KillTags(\forumTextParser::clearAllTags($message["POST_MESSAGE"]))),
56 "URL" => "",
57 "INDEX_TITLE" => $message["NEW_TOPIC"] == "Y",
58 );
59
60 // get mentions
61 $arMentionedUserID = \CForumMessage::GetMentionedUserID($message["POST_MESSAGE"]);
62 if (!empty($arMentionedUserID))
63 {
64 $arSearchInd["PARAMS"] = array(
65 "mentioned_user_id" => $arMentionedUserID
66 );
67 }
68
69 $urlPatterns = array(
70 "FORUM_ID" => $message["FORUM_ID"],
71 "TOPIC_ID" => $message["TOPIC_ID"],
72 "TITLE_SEO" => $topic["TITLE_SEO"],
73 "MESSAGE_ID" => $message["ID"],
74 "SOCNET_GROUP_ID" => $topic["SOCNET_GROUP_ID"],
75 "OWNER_ID" => $topic["OWNER_ID"],
76 "PARAM1" => $message["PARAM1"],
77 "PARAM2" => $message["PARAM2"]);
78 foreach ($arParams["SITE"] as $key => $val)
79 {
80 $arSearchInd["LID"][$key] = \CForumNew::PreparePath2Message($val, $urlPatterns);
81 if (empty($arSearchInd["URL"]) && !empty($arSearchInd["LID"][$key]))
82 $arSearchInd["URL"] = $arSearchInd["LID"][$key];
83 }
84
85 if (empty($arSearchInd["URL"]) && ($res = \CLang::GetByID(SITE_ID)->fetch()))
86 {
87 $arParams["DEFAULT_URL"] .= $res["DIR"].
88 Main\Config\Option::get("forum", "REL_FPATH", "").
89 "forum/read.php?FID=#FID#&TID=#TID#&MID=#MID##message#MID#";
90 $arSearchInd["URL"] = \CForumNew::PreparePath2Message($arParams["DEFAULT_URL"], $urlPatterns);
91 }
92 /***************** Events onMessageIsIndexed ***********************/
93 $index = true;
94 foreach(GetModuleEvents("forum", "onMessageIsIndexed", true) as $arEvent)
95 {
96 if (ExecuteModuleEventEx($arEvent, array($message["ID"], $message, &$arSearchInd)) === false)
97 {
98 $index = false;
99 break;
100 }
101 }
102 /***************** /Events *****************************************/
103 if ($index == true)
104 {
105 \CSearch::Index("forum", $message["ID"], $arSearchInd, true);
106 }
107 }
108
109 public static function deleteIndex(array $message)
110 {
111 if (Main\Loader::includeModule("search"))
112 {
113 \CSearch::DeleteIndex("forum", $message['ID']);
114 }
115 }
116}
$arParams
Определения access_dialog.php:21
static index(Forum\Forum $forum, Forum\Topic $topic, array $message)
Определения message.php:13
static deleteIndex(array $message)
Определения message.php:109
const CAN_READ
Определения permission.php:68
const CAN_MODERATE
Определения permission.php:71
static get($moduleId, $name, $default="", $siteId=false)
Определения option.php:30
static includeModule($moduleName)
Определения loader.php:67
static GetMentionedUserID($strMessage)
Определения message.php:1176
static PreparePath2Message($strPath, $arVals=array())
Определения forum_new.php:1801
static DeleteIndex($MODULE_ID, $ITEM_ID=false, $PARAM1=false, $PARAM2=false, $SITE_ID=false)
Определения search.php:2922
static KillTags($str)
Определения search.php:2092
static Index($MODULE_ID, $ITEM_ID, $arFields, $bOverWrite=false, $SEARCH_SESS_ID='')
Определения search.php:1302
static clearAllTags($text)
Определения textparser.php:2358
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$message
Определения payment.php:8
if(empty($signedUserToken)) $key
Определения quickway.php:257
$val
Определения options.php:1793
const SITE_ID
Определения sonet_set_content_view.php:12