3use \Bitrix\Main\Localization\Loc;
24 if (!self::IsEnabledSocnet())
27 self::$iSocNetId = intval($SOCNET_GROUP_ID);
32 $arFilter[
'SOCNET_GROUP_ID'] = self::$iSocNetId;
34 $rsSection = CIBlockSection::GetList(Array($by=>
$order),
$arFilter,
true);
35 $obSection = $rsSection->GetNextElement();
37 if ($obSection !==
false)
41 self::$iCatLeftBorder =
$arResult[
'LEFT_MARGIN'];
42 self::$iCatRightBorder =
$arResult[
'RIGHT_MARGIN'];
46 $arWorkGroup = CSocNetGroup::GetById(self::$iSocNetId);
51 'SOCNET_GROUP_ID' => self::$iSocNetId,
52 'CHECK_PERMISSIONS' =>
'N',
53 'NAME' => $arWorkGroup[
'NAME']
57 if (self::$iCatId ==
false)
62 $rsSection = CIBlockSection::GetList(Array($by=>
$order),
$arFilter,
true);
63 $obSection = $rsSection->GetNextElement();
64 if ($obSection ==
false)
70 self::$iCatLeftBorder =
$arResult[
'LEFT_MARGIN'];
71 self::$iCatRightBorder =
$arResult[
'RIGHT_MARGIN'];
74 self::$bInit = CSocNetFeatures::IsActiveFeature(
SONET_ENTITY_GROUP, self::$iSocNetId,
'wiki');
81 return self::$bActive;
84 $rsEvents =
GetModuleEvents(
'socialnetwork',
'OnFillSocNetFeaturesList');
85 while($arEvent = $rsEvents->Fetch())
87 if($arEvent[
'TO_MODULE_ID'] ==
'wiki'
88 && $arEvent[
'TO_CLASS'] ==
'CWikiSocnet')
106 if(!self::IsEnabledSocnet())
108 RegisterModuleDependences(
'socialnetwork',
'OnFillSocNetFeaturesList',
'wiki',
'CWikiSocnet',
'OnFillSocNetFeaturesList');
110 RegisterModuleDependences(
'socialnetwork',
'OnParseSocNetComponentPath',
'wiki',
'CWikiSocnet',
'OnParseSocNetComponentPath');
111 RegisterModuleDependences(
'socialnetwork',
'OnInitSocNetComponentVariables',
'wiki',
'CWikiSocnet',
'OnInitSocNetComponentVariables');
116 if(self::IsEnabledSocnet())
121 UnRegisterModuleDependences(
'socialnetwork',
'OnInitSocNetComponentVariables',
'wiki',
'CWikiSocnet',
'OnInitSocNetComponentVariables');
131 'operations' =>
array(
136 'operation_titles' =>
array(
141 'minoperation' =>
array(
'view'),
142 'subscribe_events' =>
array(
146 'TITLE' =>
GetMessage(
'SOCNET_LOG_WIKI_GROUP'),
147 'TITLE_SETTINGS' =>
GetMessage(
'SOCNET_LOG_WIKI_GROUP_SETTINGS'),
148 'TITLE_SETTINGS_1' =>
GetMessage(
'SOCNET_LOG_WIKI_GROUP_SETTINGS_1'),
149 'TITLE_SETTINGS_2' =>
GetMessage(
'SOCNET_LOG_WIKI_GROUP_SETTINGS_2')
152 'OPERATION' =>
'view',
153 'CLASS_FORMAT' =>
'CWikiSocnet',
154 'METHOD_FORMAT' =>
'FormatEvent_Wiki',
156 'FULL_SET' =>
array(
"wiki",
"wiki_del",
"wiki_comment"),
157 "COMMENT_EVENT" =>
array(
158 "EVENT_ID" =>
"wiki_comment",
159 "OPERATION" =>
"view",
160 "OPERATION_ADD" =>
"view",
161 "ADD_CALLBACK" =>
array(
"CWikiSocnet",
"AddComment_Wiki"),
162 "UPDATE_CALLBACK" =>
array(
"CSocNetLogTools",
"UpdateComment_Forum"),
163 "DELETE_CALLBACK" =>
array(
"CSocNetLogTools",
"DeleteComment_Forum"),
164 "CLASS_FORMAT" =>
"CWikiSocnet",
165 "METHOD_FORMAT" =>
"FormatComment_Wiki",
166 "RATING_TYPE_ID" =>
"FORUM_POST"
172 'TITLE' =>
GetMessage(
'SOCNET_LOG_WIKI_DEL_GROUP')
175 'OPERATION' =>
'view',
176 'CLASS_FORMAT' =>
'CWikiSocnet',
177 'METHOD_FORMAT' =>
'FormatEvent_Wiki',
187 $arResult[
'AllowSettings'][
'wiki'] =
true;
189 $arResult[
'CanView'][
'wiki'] = ((array_key_exists(
'ActiveFeatures',
$arResult) ? array_key_exists(
'wiki',
$arResult[
'ActiveFeatures']) :
true) && CSocNetFeaturesPerms::CanPerformOperation(
$GLOBALS[
'USER']->GetID(),
$arParams[
'ENTITY_TYPE'],
$arParams[
'ENTITY_ID'],
'wiki',
'view', CSocNetUser::IsCurrentUserModuleAdmin()));
196 if (!array_key_exists(
'PAGE_VAR',
$arResult))
199 if (!array_key_exists(
'GROUP_VAR',
$arResult))
210 $arMyUrlTemplates =
array(
211 'group_wiki_index' =>
'page=group_wiki_index&group_id=#group_id#',
212 'group_wiki_categories' =>
'page=group_wiki_categories&group_id=#group_id#',
213 'group_wiki_search' =>
'page=group_wiki_search&group_id=#group_id#',
214 'group_wiki_post' =>
'page=group_wiki_post&group_id=#group_id#&title=#wiki_name#',
215 'group_wiki_post_edit' =>
'page=group_wiki_post_edit&group_id=#group_id#&title=#wiki_name#',
216 'group_wiki_post_history' =>
'page=group_wiki_post_history&group_id=#group_id#&title=#wiki_name#',
217 'group_wiki_post_history_diff' =>
'page=group_wiki_post_history_diff&group_id=#group_id#&title=#wiki_name#',
218 'group_wiki_post_discussion' =>
'page=group_wiki_post_discussion&group_id=#group_id#&title=#wiki_name#',
219 'group_wiki_post_category' =>
'page=group_wiki_post_category&group_id=#group_id#&title=#wiki_name#',
220 'group_wiki_post_comment' =>
'page=group_wiki_post_comment&#message_id=#message_id#'
225 $arMyUrlTemplates =
array(
226 'group_wiki_index' =>
'group/#group_id#/wiki/',
227 'group_wiki_categories' =>
'group/#group_id#/wiki/categories/',
228 'group_wiki_search' =>
'group/#group_id#/wiki/search/',
229 'group_wiki_post' =>
'group/#group_id#/wiki/#wiki_name#/',
230 'group_wiki_post_edit' =>
'group/#group_id#/wiki/#wiki_name#/edit/',
231 'group_wiki_post_history' =>
'group/#group_id#/wiki/#wiki_name#/history/',
232 'group_wiki_post_history_diff' =>
'group/#group_id#/wiki/#wiki_name#/history/diff/',
233 'group_wiki_post_discussion' =>
'group/#group_id#/wiki/#wiki_name#/discussion/',
234 'group_wiki_post_category' =>
'group/#group_id#/wiki/#wiki_name#/',
235 'group_wiki_post_comment' =>
'group/#group_id#/wiki/#wiki_name#/?MID=#message_id##message#message_id#'
239 static $base_path =
false;
242 if(file_exists(
$_SERVER[
'DOCUMENT_ROOT'].
'/bitrix/php_interface/wiki/'.
SITE_ID.
'/group_index.php'))
243 $base_path =
'/bitrix/php_interface/wiki/'.SITE_ID.
'/';
244 elseif(file_exists(
$_SERVER[
'DOCUMENT_ROOT'].
'/bitrix/php_interface/wiki/group_index.php'))
245 $base_path =
'/bitrix/php_interface/wiki/';
247 $base_path =
'/bitrix/modules/wiki/socnet/';
250 foreach($arMyUrlTemplates as
$page =>
$url)
253 $arCustomPagesPath[
$page] = $base_path;
259 $arVariableAliases[
'wiki_name'] =
'wiki_name';
260 $arVariableAliases[
'title'] =
'title';
261 $arVariableAliases[
'oper'] =
'oper';
262 $arVariableAliases[
'message_id'] =
'message_id';
267 $GLOBALS[
'APPLICATION']->SetAdditionalCSS(
'/bitrix/themes/.default/wiki_sonet_log.css');
271 'CREATED_BY' =>
array(),
273 'EVENT_FORMATTED' =>
array(),
274 "CACHED_CSS_PATH" =>
array(
"/bitrix/themes/.default/wiki_sonet_log.css")
294 $arSocNetAllowedSubscribeEntityTypesDesc = CSocNetAllowed::GetAllowedEntityTypesDesc();
307 $wiki_tmp =
'<a href="'.$arFields[
'URL'].
'">'.
$arFields[
'TITLE'].
'</a>';
313 $title_tmp = ($bMail ?
GetMessage(
'WIKI_SOCNET_LOG_TITLE_MAIL') :
GetMessage(
'WIKI_SOCNET_LOG_TITLE'));
314 $title_tmp_24 =
GetMessage(
"WIKI_SOCNET_LOG_TITLE_24");
318 $title_tmp = ($bMail ? Loc::getMessage(
'WIKI_DEL_SOCNET_LOG_TITLE_MAIL') : Loc::getMessage(
'WIKI_DEL_SOCNET_LOG_TITLE'));
319 $title_tmp_24 = Loc::getMessage(
"WIKI_DEL_SOCNET_LOG_TITLE_24", [
325 array(
'#TITLE#',
'#ENTITY#',
'#CREATED_BY#'),
332 "TITLE_24" => $title_tmp_24,
348 $arFieldsParams = explode(
'&',
$arFields[
'PARAMS']);
349 if (is_array($arFieldsParams) &&
count($arFieldsParams) > 0)
350 foreach ($arFieldsParams as
$tmp)
352 list(
$key, $value) = explode(
'=',
$tmp);
353 if (
$key ==
'forum_id')
368 $arAllow =
array(
"HTML" =>
"Y",
"ANCHOR" =>
"Y",
"BIU" =>
"Y",
"IMG" =>
"Y",
"QUOTE" =>
"Y",
"CODE" =>
"Y",
"FONT" =>
"Y",
"LIST" =>
"Y",
"SMILES" =>
"Y",
"NL2BR" =>
"N",
"MULTIPLE_BR" =>
"Y",
"VIDEO" =>
"Y",
"LOG_VIDEO" =>
"Y",
"TABLE" =>
"Y");
380 $GLOBALS[
'APPLICATION']->SetAdditionalCSS(
'/bitrix/components/bitrix/wiki.show/templates/.default/style.css');
381 $arResult[
"CACHED_CSS_PATH"][] =
"/bitrix/components/bitrix/wiki.show/templates/.default/style.css";
385 $arResult[
"EVENT_FORMATTED"][
"SHORT_MESSAGE"] = $parserLog->html_cut(
397 "STYLE" =>
"sonetgroups",
398 "TITLE" =>
$arResult[
"ENTITY"][
"FORMATTED"][
"NAME"],
399 "URL" =>
$arResult[
"ENTITY"][
"FORMATTED"][
"URL"],
400 "IS_EXTRANET" => (is_array(
$GLOBALS[
"arExtranetGroupID"]) && in_array(
$arFields[
"ENTITY_ID"],
$GLOBALS[
"arExtranetGroupID"]))
412 "EVENT_FORMATTED" =>
array()
423 && array_key_exists(
'URL', $arLog)
424 && $arLog[
'URL'] <>
''
426 $wiki_tmp =
'<a href="'.$arLog[
'URL'].
'">'.$arLog[
'TITLE'].
'</a>';
428 $wiki_tmp = $arLog[
'TITLE'];
431 array(
'#TITLE#',
'#ENTITY#',
'#CREATED_BY#'),
433 ($bMail ?
GetMessage(
'WIKI_SOCNET_LOG_COMMENT_TITLE_MAIL') :
GetMessage(
'WIKI_SOCNET_LOG_COMMENT_TITLE'))
449 static $parserLog =
false;
450 if (CModule::IncludeModule(
"forum"))
458 "ANCHOR" =>
"Y",
"BIU" =>
"Y",
459 "IMG" =>
"Y",
"QUOTE" =>
"Y",
460 "CODE" =>
"Y",
"FONT" =>
"Y",
461 "LIST" =>
"Y",
"SMILES" =>
"Y",
462 "NL2BR" =>
"Y",
"VIDEO" =>
"Y",
463 "LOG_VIDEO" =>
"N",
"SHORT_ANCHOR" =>
"Y",
468 $parserLog->pathToUser = $parserLog->userPath =
$arParams[
"PATH_TO_USER"];
469 $parserLog->arUserfields =
$arFields[
"UF"];
470 $parserLog->bMobile = (
$arParams[
"MOBILE"] ==
"Y");
479 "HTML" =>
"Y",
"ANCHOR" =>
"Y",
"BIU" =>
"Y",
480 "IMG" =>
"Y",
"LOG_IMG" =>
"N",
481 "QUOTE" =>
"Y",
"LOG_QUOTE" =>
"N",
482 "CODE" =>
"Y",
"LOG_CODE" =>
"N",
483 "FONT" =>
"Y",
"LOG_FONT" =>
"N",
487 "MULTIPLE_BR" =>
"Y",
488 "VIDEO" =>
"Y",
"LOG_VIDEO" =>
"N"
499 if (CModule::IncludeModule(
"forum"))
500 $arResult[
"EVENT_FORMATTED"][
"SHORT_MESSAGE"] = $parserLog->html_cut(
505 $arResult[
"EVENT_FORMATTED"][
"SHORT_MESSAGE"] = $parserLog->html_cut(
519 if (!CModule::IncludeModule(
'iblock'))
522 if (!CModule::IncludeModule(
'socialnetwork'))
529 array(
'ID' =>
'DESC'),
533 array(
'ID',
'SOURCE_ID',
'PARAMS',
'URL')
539 if ($arLog[
'PARAMS'] <>
'')
541 $arFieldsParams = explode(
'&', $arLog[
'PARAMS']);
542 if (is_array($arFieldsParams) &&
count($arFieldsParams) > 0)
543 foreach ($arFieldsParams as
$tmp)
545 list(
$key, $value) = explode(
'=',
$tmp);
546 if (
$key ==
'forum_id')
548 $FORUM_ID = intval($value);
553 if ($FORUM_ID > 0 && intval($arLog[
'SOURCE_ID']) > 0)
562 $arSelectedFields =
array(
563 'IBLOCK_ID',
'ID',
'NAME',
'TAGS',
'CODE',
'IBLOCK_SECTION_ID',
'DETAIL_PAGE_URL',
564 'CREATED_BY',
'PREVIEW_PICTURE',
'PREVIEW_TEXT',
'PROPERTY_FORUM_TOPIC_ID',
'PROPERTY_FORUM_MESSAGE_CNT'
579 $arElement[
"ENTITY_TYPE"] =
$arFields[
"ENTITY_TYPE"];
580 $arElement[
"ENTITY_ID"] =
$arFields[
"ENTITY_ID"];
589 'FORUM_ID' => $FORUM_ID,
590 'PARAM2' => $arElement[
'ID']
601 $TOPIC_ID = $arMessage[
'TOPIC_ID'];
603 if(intval($TOPIC_ID) > 0)
607 $arFieldsMessage =
array(
608 'POST_MESSAGE' =>
$arFields[
'TEXT_MESSAGE'],
610 'PARAM2' => $arElement[
'ID'],
614 $GLOBALS[
"USER_FIELD_MANAGER"]->EditFormAddFields(
"SONET_COMMENT",
$arTmp);
617 if (array_key_exists(
"UF_SONET_COM_DOC",
$arTmp))
621 $arFieldsMessage[
"FILES"] =
array();
622 foreach(
$arTmp[
"UF_SONET_COM_FILE"] as $file_id)
623 $arFieldsMessage[
"FILES"][] =
array(
"FILE_ID" => $file_id);
627 $messageID =
ForumAddMessage(
'REPLY', $FORUM_ID, $TOPIC_ID, 0, $arFieldsMessage, $sError, $sNote);
634 while ($arAddedMessageFiles = $dbAddedMessageFiles->Fetch())
635 $ufFileID[] = $arAddedMessageFiles[
"FILE_ID"];
637 $ufDocID =
$GLOBALS[
"USER_FIELD_MANAGER"]->GetUserFieldValue(
"FORUM_MESSAGE",
"UF_FORUM_MESSAGE_DOC", $messageID, LANGUAGE_ID);
641 $userID =
$GLOBALS[
"USER"]->GetID();
644 CModule::IncludeModule(
"im")
645 && intval($arElement[
"CREATED_BY"]) > 0
646 && $arElement[
"CREATED_BY"] != $userID
649 $rsUnFollower = CSocNetLogFollow::GetList(
651 "USER_ID" => $arElement[
"CREATED_BY"],
652 "CODE" =>
"L".$arLog[
"ID"],
658 $arUnFollower = $rsUnFollower->Fetch();
661 $arMessageFields =
array(
663 "TO_USER_ID" => $arElement[
"CREATED_BY"],
664 "FROM_USER_ID" => $userID,
665 "LOG_ID" => $arLog[
"ID"],
667 "NOTIFY_MODULE" =>
"wiki",
668 "NOTIFY_EVENT" =>
"comment",
671 $arParams[
"TITLE"] = str_replace(Array(
"\r\n",
"\n"),
" ", $arElement[
"NAME"]);
676 $serverName =
$arTmp[
"SERVER_NAME"];
679 $arMessageFields[
"NOTIFY_TAG"] =
"WIKI|COMMENT|".$arElement[
'ID'];
680 $arMessageFields[
"NOTIFY_MESSAGE"] =
GetMessage(
"WIKI_SONET_FROM_LOG_IM_COMMENT", Array(
688 $arMessageFields[
"NOTIFY_MESSAGE_OUT"] =
GetMessage(
"WIKI_SONET_FROM_LOG_IM_COMMENT", Array(
691 ?
" (".$serverName.$url.
")"
695 CIMNotify::Add($arMessageFields);
710 'SOURCE_ID' => $messageID,
711 'RATING_TYPE_ID' =>
'FORUM_POST',
712 'RATING_ENTITY_ID' => $messageID,
724 if(!CModule::IncludeModule(
'iblock'))
727 $arWikiIblockID =
array();
728 $iblock_id_tmp = COption::GetOptionString(
"wiki",
"socnet_iblock_id",
false,
"");
729 if (intval($iblock_id_tmp) > 0)
730 $arWikiIblockID[] = $iblock_id_tmp;
732 $rsSite = CSite::GetList(
"sort",
"asc",
array(
"ACTIVE"=>
"Y"));
733 while($arSite = $rsSite->Fetch())
735 $iblock_id_tmp = COption::GetOptionString(
"wiki",
"socnet_iblock_id",
false, $arSite[
"LID"]);
736 if (intval($iblock_id_tmp) > 0)
737 $arWikiIblockID[] = $iblock_id_tmp;
740 if (
count($arWikiIblockID) > 0)
742 $rsWikiSection = CIBlockSection::GetList(
743 array(
"timestamp_x"=>
"desc"),
745 "IBLOCK_ID" => array_unique($arWikiIblockID),
746 "SOCNET_GROUP_ID" => $SocNetGroupID
751 if ($arWikiSection = $rsWikiSection->Fetch())
752 return $arWikiSection[
"IBLOCK_ID"];
767 $retText =
"<div class='wiki_post_feed'>".$text.
"</div>";
779 static $isSonetEnable =
false;
780 static $sonetForumId =
false;
784 $isSonetEnable = COption::GetOptionString(
'wiki',
'socnet_enable');
789 $sonetForumId = intval(COption::GetOptionString(
'wiki',
'socnet_forum_id'));
793 $arFields[
'ENTITY_TYPE_ID'] ==
'FORUM_POST'
794 && $isSonetEnable ==
'Y'
795 && intval(
$arFields[
'PARAM1']) == $sonetForumId
796 && CModule::IncludeModule(
"socialnetwork")
799 if($bxSocNetSearch->_group_id)
801 $arFields = $bxSocNetSearch->BeforeIndexForum(
804 $bxSocNetSearch->_group_id,
807 $bxSocNetSearch->Url(
811 $bxSocNetSearch->_params[
"PATH_TO_GROUP_WIKI_POST_COMMENT"]
814 "MID" =>
"#message_id#"
816 "message#message_id#"
static FormatEvent_CreateAvatar($arFields, $arParams, $source="CREATED_BY_")
static GetList($arOrder=Array("ID"=>"ASC"), $arFilter=Array(), $iNum=0, $arAddParams=array())
static GetList($arOrder=Array("ID"=>"ASC"), $arFilter=Array(), $bCount=false, $iNum=0, $arAddParams=array())
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array(), $arParams=array())
static killAllTags($text)
static Init($SOCNET_GROUP_ID, $IBLOCK_ID)
static OnFillSocNetMenu(&$arResult, $arParams=array())
static EnableSocnet($bActive=false)
static FormatComment_Wiki($arFields, $arParams, $bMail=false, $arLog=array())
static OnParseSocNetComponentPath(&$arUrlTemplates, &$arCustomPagesPath, $arParams)
static FormatEvent_Wiki($arFields, $arParams, $bMail=false)
static __ProcessPath($arUrl, $user_id)
static BeforeIndexSocNet($bxSocNetSearch, $arFields)
static OnInitSocNetComponentVariables(&$arVariableAliases, &$arCustomPagesPath)
static PrepareTextForFeed($text)
static RecalcIBlockID($SocNetGroupID)
static AddComment_Wiki($arFields)
static OnFillSocNetFeaturesList(&$arSocNetFeaturesSettings)
if(!is_array($prop["VALUES"])) $tmp
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
ForumAddMessage( $MESSAGE_TYPE, $FID, $TID, $MID, $arFieldsG, &$strErrorMessage, &$strOKMessage, $iFileSize=false, $captcha_word="", $captcha_sid=0, $captcha_code="")
$_SERVER["DOCUMENT_ROOT"]
htmlspecialcharsback($str)
RegisterModuleDependences($FROM_MODULE_ID, $MESSAGE_ID, $TO_MODULE_ID, $TO_CLASS="", $TO_METHOD="", $SORT=100, $TO_PATH="", $TO_METHOD_ARG=[])
UnRegisterModuleDependences($FROM_MODULE_ID, $MESSAGE_ID, $TO_MODULE_ID, $TO_CLASS="", $TO_METHOD="", $TO_PATH="", $TO_METHOD_ARG=[])
HTMLToTxt($str, $strSiteUrl="", $aDelete=[], $maxlen=70)
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
TruncateText($strText, $intLen)
if(intval($iTestTransaction) > 0) $arTmp
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
const SONET_SUBSCRIBE_ENTITY_GROUP
const SONET_ROLES_MODERATOR
if( $_SERVER $arSocNetFeaturesSettings['REQUEST_METHOD']=="GET" &&($RestoreDefaults ?? null)<> '' && $SONET_RIGHT=="W" &&check_bitrix_sessid())
$GLOBALS['_____370096793']