5Loc::loadMessages(__FILE__);
9 public static function setMessageLiveFeed($users, $elementId, $workflowId, $flagCompleteProcess)
11 $elementId = intval($elementId);
12 $elementObject = CIBlockElement::getList(
14 array(
'ID' => $elementId),
17 array(
'ID',
'CREATED_BY',
'IBLOCK_NAME',
'NAME',
'IBLOCK_ID',
'LANG_DIR',
'IBLOCK_CODE')
19 $element = $elementObject->fetch();
21 if (!CLists::getLiveFeed($element[
"IBLOCK_ID"] ??
null))
26 $listSystemIblockCode =
array(
31 'bitrix_incoming_doc',
32 'bitrix_outgoing_doc',
35 $params = serialize(
array(
"ELEMENT_NAME" => $element[
'NAME']));
38 if (in_array($element[
'IBLOCK_CODE'], $listSystemIblockCode))
40 $element[
'NAME'] = preg_replace_callback(
41 '#^[^\[\]]+?\[(\d+)\]#i',
46 if (
$ar = $db->GetNext())
49 return '<a class="feed-post-user-name" href="/company/personal/user/'.$userId.
'/"
50 bx-post-author-id="'.
$userId.
'" bx-post-author-gender="'.
$ar[
'PERSONAL_GENDER'].
'" bx-tooltip-user-id="'.
$userId.
'">'.CUser::FormatName(CSite::GetNameFormat(
false),
$ar,
true,
false).
'</a>';
58 $path = rtrim($element[
'LANG_DIR'],
'/');
59 $urlElement =
$path.COption::GetOptionString(
'lists',
'livefeed_url').
'?livefeed=y&list_id='.$element[
"IBLOCK_ID"].
'&element_id='.$elementId;
60 $createdBy = $element[
'CREATED_BY'];
61 if(!Loader::includeModule(
'socialnetwork') || $createdBy <= 0)
66 $userObject = CUser::getByID($createdBy);
68 $siteObject = CSite::getList(
"sort",
"desc",
array(
"ACTIVE" =>
"Y"));
69 while (
$site = $siteObject->fetch())
72 if ($userObject->fetch())
77 'EVENT_ID' =>
'lists_new_element',
79 '=LOG_UPDATE' =>
$DB->currentTimeFunction(),
80 'SOURCE_ID' => $sourceId,
81 'USER_ID' => $createdBy,
82 'MODULE_ID' =>
'lists',
83 'TITLE_TEMPLATE' => $urlElement,
84 'TITLE' => $element[
'IBLOCK_NAME'],
86 'MESSAGE' => $workflowId,
87 'CALLBACK_FUNC' =>
false,
89 'ENABLE_COMMENTS' =>
'Y',
90 'RATING_TYPE_ID' =>
'LISTS_NEW_ELEMENT',
91 'RATING_ENTITY_ID' => $sourceId,
92 'URL' =>
'#SITE_DIR#'.COption::GetOptionString(
'socialnetwork',
'user_page',
false,
SITE_ID).
'log/',
95 $logObject = CSocNetLog::getList(
array(),
array(
96 'ENTITY_TYPE' => $soFields[
'ENTITY_TYPE'],
97 'ENTITY_ID' => $soFields[
'ENTITY_ID'],
98 'EVENT_ID' => $soFields[
'EVENT_ID'],
99 'SOURCE_ID' => $soFields[
'SOURCE_ID'],
102 $iblockPicture = CIBlock::getArrayByID($element[
'IBLOCK_ID'],
'PICTURE');
103 $imageFile = CFile::getFileArray($iblockPicture);
104 if($imageFile !==
false)
106 $imageFile = CFile::ResizeImageGet(
108 array(
"width" => 36,
"height" => 30),
113 if(empty($imageFile[
'src']))
114 $imageFile[
'src'] =
'/bitrix/images/lists/default.png';
116 $soFields[
'TEXT_MESSAGE'] =
'
117 <span class="bp-title-desc">
118 <span class="bp-title-desc-icon">
119 <img src="'.$imageFile[
'src'].
'" width="36" height="30" border="0" />
125 if($log = $logObject->fetch())
127 if (intval($log[
'ID']) > 0)
131 CSocNetLog::update($log[
'ID'], $soFields);
142 CSocNetLog::update($log[
'ID'], $soFields);
145 CSocNetLogRights::deleteByLogID($log[
'ID']);
146 $rightsCounter =
self::getRights($users, $log[
'ID'], $createdBy,
'counter');
147 CSocNetLogRights::add($log[
'ID'], $rightsCounter,
false,
false);
148 CSocNetLog::counterIncrement($log[
'ID'], $soFields[
'EVENT_ID'],
false,
'L',
false);
151 CSocNetLogRights::deleteByLogID($log[
'ID']);
152 CSocNetLogRights::add($log[
'ID'],
$rights,
false,
false);
159 if ($flagCompleteProcess)
166 $users[] = $createdBy;
167 CSocNetLogRights::deleteByLogID($log[
'ID']);
168 $rightsCounter =
self::getRights($users, $log[
'ID'], $createdBy,
'counter');
169 CSocNetLogRights::add($log[
'ID'], $rightsCounter,
false,
false);
170 CSocNetLog::counterIncrement($log[
'ID'], $soFields[
'EVENT_ID'],
false,
'L',
false);
173 CSocNetLogRights::deleteByLogID($log[
'ID']);
174 CSocNetLogRights::add($log[
'ID'],
$rights,
false,
false);
185 $soFields[
'=LOG_DATE'] =
$DB->currentTimeFunction();
186 $logId = CSocNetLog::add($soFields,
false);
187 if (intval($logId) > 0)
190 CSocNetLogRights::add($logId,
$rights,
false,
false);
194 CSocNetLog::counterIncrement($logId, $soFields[
'EVENT_ID'],
false,
'L',
false);
204 global $arSocNetAllowedSubscribeEntityTypesDesc;
206 'USE_CB_FILTER' =>
'Y',
208 'TITLE_ENTITY' =>
'',
214 $socnetLogEvents[
'lists_new_element'] =
array(
218 'FORUM_COMMENT_ENTITY' =>
'WF',
219 'CLASS_FORMAT' =>
'CListsLiveFeed',
220 'METHOD_FORMAT' =>
'formatListsElement',
222 'FULL_SET' =>
array(
'lists_new_element',
'lists_new_element_comment'),
223 'COMMENT_EVENT' =>
array(
224 'MODULE_ID' =>
'lists_new_element',
225 'EVENT_ID' =>
'lists_new_element_comment',
226 'OPERATION' =>
'view',
227 'OPERATION_ADD' =>
'log_rights',
228 'ADD_CALLBACK' =>
array(
'CListsLiveFeed',
'addCommentLists'),
229 'UPDATE_CALLBACK' =>
array(
'CSocNetLogTools',
'UpdateComment_Forum'),
230 'DELETE_CALLBACK' =>
array(
'CListsLiveFeed',
'deleteCommentLists'),
231 'CLASS_FORMAT' =>
'CSocNetLogTools',
232 'METHOD_FORMAT' =>
'FormatComment_Forum',
233 "RATING_TYPE_ID" =>
"FORUM_POST",
244 'CREATED_BY' =>
array(),
246 'EVENT_FORMATTED' =>
array(),
249 $userObject = CUser::getByID(
$fields[
'ENTITY_ID']);
250 $user = $userObject->fetch();
257 $rightsQuery = CSocNetLogRights::getList(
array(),
array(
'LOG_ID' =>
$fields[
'ID']));
258 while (
$right = $rightsQuery->fetch())
263 if(defined(
'BX_COMP_MANAGED_CACHE'))
269 'bitrix:bizproc.workflow.livefeed',
272 'WORKFLOW_ID' =>
$fields[
'MESSAGE'],
273 'SITE_TEMPLATE_ID' => (isset(
$params[
'SITE_TEMPLATE_ID']) ?
$params[
'SITE_TEMPLATE_ID'] :
''),
276 array(
'HIDE_ICONS' =>
'Y')
280 $url = CSocNetLogTools::formatEvent_GetURL(
$fields,
true);
281 $url = str_replace(
'#SITE_DIR#', $siteDir,
$url);
282 $url .=
''.$fields[
'ID'].
'/';
284 $componentResultMessage = $componentResult ? $componentResult[
'MESSAGE'] :
null;
287 'EVENT_FORMATTED' =>
array(
288 'TITLE_24' =>
'<a href="'.
$fields[
'TITLE_TEMPLATE'].
'" class="bx-lists-live-feed-title-link">'.
$fields[
'TITLE'].
'</a>',
289 'MESSAGE' =>
$fields[
'TEXT_MESSAGE'] . $componentResultMessage,
290 'IS_IMPORTANT' =>
false,
291 'STYLE' =>
'new-employee',
292 'AVATAR_STYLE' =>
'avatar-info',
293 'DESTINATION' => CSocNetLogTools::formatDestinationFromRights(
$rights, array_merge(
$params,
array(
'CREATED_BY' =>
$fields[
'USER_ID']))),
296 'CREATED_BY' => CSocNetLogTools::formatEvent_GetCreatedBy(
$fields,
$params, $mail),
297 'AVATAR_SRC' => CSocNetLog::formatEvent_CreateAvatar(
$fields,
$params),
298 'CACHED_JS_PATH' => $componentResult[
'CACHED_JS_PATH'] ??
null,
299 'CACHED_CSS_PATH' => $componentResult[
'CACHED_CSS_PATH'] ??
null,
303 $element[
'EVENT_FORMATTED'][
'TITLE_24'] = Loc::getMessage(
'LISTS_LF_MOBILE_DESTINATION');
304 $element[
'EVENT_FORMATTED'][
'TITLE_24_2'] =
$fields[
'TITLE'];
305 unset($element[
'CACHED_CSS_PATH']);
308 if (CModule::IncludeModule(
'bizproc'))
315 $element[
'EVENT'][
'SOURCE_ID'] = $workflowId;
326 if (!CModule::IncludeModule(
'forum') || !CModule::IncludeModule(
'bizproc'))
331 $fieldsMessage =
array();
336 $authorId = (int)(
$fields[
'USER_ID'] ?? 0);
344 array(
'ID',
'SOURCE_ID',
'SITE_ID',
'MESSAGE',
'USER_ID')
346 if($sonetLog = $sonetLogQuery->fetch())
348 $workflowId = $sonetLog[
'MESSAGE'];
351 if(preg_match_all(
"/(?<=\[USER=)(?P<id>[0-9]+)(?=\])/",
$fields[
'TEXT_MESSAGE'],
$matches))
354 $users = array_unique(array_merge($users, $mentions));
357 $users[] = $sonetLog[
'USER_ID'];
360 $forumId = CBPHelper::getForumId();
364 if ($topicQuery && ($topic = $topicQuery->fetch()))
366 $topicId = $topic[
'ID'];
372 'TITLE' =>
'WF_'.$sonetLog[
'MESSAGE'],
374 'MESSAGE' =>
'WF_'.$sonetLog[
'MESSAGE'],
375 'XML_ID' =>
'WF_'.$sonetLog[
'MESSAGE'],
379 "ID" => $dataTopic[
"AUTHOR_ID"],
380 "NAME" =>
$GLOBALS[
"FORUM_STATUS_NAME"][
"guest"],
383 $DB->StartTransaction();
384 $topicFields = Array(
385 "TITLE" => $dataTopic[
"TITLE"],
386 "TAGS" => $dataTopic[
"TAGS"],
387 "FORUM_ID" => $forumId,
388 "USER_START_ID" => $userStart[
"ID"],
389 "USER_START_NAME" => $userStart[
"NAME"],
390 "LAST_POSTER_NAME" => $userStart[
"NAME"],
391 "XML_ID" => $dataTopic[
"XML_ID"],
393 "PERMISSION_EXTERNAL" =>
'Q',
399 if (intval($topicId) > 0)
401 $dataTopic[
'MESSAGE'] = strip_tags($dataTopic[
'MESSAGE']);
404 "POST_MESSAGE" => $dataTopic[
'MESSAGE'],
405 "AUTHOR_ID" => $userStart[
"ID"],
406 "AUTHOR_NAME" => $userStart[
"NAME"],
407 "FORUM_ID" => $forumId,
408 "TOPIC_ID" => $topicId,
413 "PERMISSION_EXTERNAL" =>
'Q',
416 $startMessageId =
CForumMessage::Add($dataFields,
false,
array(
"SKIP_INDEXING" =>
"Y",
"SKIP_STATISTIC" =>
"N"));
417 if (intval($startMessageId) <= 0)
424 if (intval($topicId) <= 0)
436 $fieldsMessage =
array(
437 'POST_MESSAGE' =>
$fields[
'TEXT_MESSAGE'],
439 'PERMISSION_EXTERNAL' =>
'Q',
448 if (array_key_exists(
'UF_SONET_COM_DOC',
$tmp))
450 $GLOBALS[
'UF_FORUM_MESSAGE_DOC'] =
$tmp[
'UF_SONET_COM_DOC'];
452 elseif (array_key_exists(
'UF_SONET_COM_FILE',
$tmp))
454 $fieldsMessage[
'FILES'] =
array();
455 foreach(
$tmp[
'UF_SONET_COM_FILE'] as $fileId)
457 $fieldsMessage[
'FILES'][] =
array(
'FILE_ID' => $fileId);
461 if (array_key_exists(
"UF_SONET_COM_URL_PRV",
$tmp))
463 $GLOBALS[
"UF_FORUM_MES_URL_PRV"] =
$tmp[
"UF_SONET_COM_URL_PRV"];
471 $addedMessageFilesQuery = CForumFiles::getList(
array(
'ID' =>
'ASC'),
array(
'MESSAGE_ID' =>
$messageId));
472 while ($addedMessageFiles = $addedMessageFilesQuery->fetch())
474 $ufFileId[] = $addedMessageFiles[
'FILE_ID'];
485 $error = Loc::getMessage(
'LISTS_LF_ADD_COMMENT_SOURCE_ERROR');
495 'MESSAGE' => ($fieldsMessage ? $fieldsMessage[
'POST_MESSAGE'] :
false),
496 'RATING_TYPE_ID' =>
'FORUM_POST',
503 'URL_PREVIEW' => $ufUrlPreview,
512 if (empty($parentResult[
'ERROR']) && CModule::IncludeModule(
'bizproc'))
515 $authorId = (int)
$fields[
'USER_ID'];
520 return $parentResult;
531 $users[] = $createdBy;
551 $users[] = mb_substr($user, 1);
563 $logFollowObject = CSocNetLogFollow::getList(
565 $logFollow = $logFollowObject->fetch();
566 if(!empty($logFollow) && $logFollow[
'TYPE'] ==
'Y' && !$logFollow[
'BY_WF'])
568 CSocNetLogFollow::delete(
$userId,
'L'.$logId,
false);
570 ConvertTimeStamp(time() + CTimeZone::GetOffset(),
"FULL",
SITE_ID),
SITE_ID,
true);
574 && method_exists(
'\Bitrix\Socialnetwork\ComponentHelper',
'userLogSubscribe')
581 'COUNTER_COMMENT_PUSH',
594 $logFollowObject = CSocNetLogFollow::getList(
596 $logFollow = $logFollowObject->fetch();
600 || ($logFollow[
'BY_WF'] ==
'Y' || $addingComment)
603 CSocNetLogFollow::delete(
$userId,
'L'.$logId,
false);
605 if (method_exists(
'\Bitrix\Socialnetwork\ComponentHelper',
'userLogSubscribe'))
612 'COUNTER_COMMENT_PUSH',
614 'followDate' =>
'CURRENT',
615 'followByWF' =>
true,
620 CSocNetLogFollow::set(
$userId,
'L'.$logId,
'Y',
621 ConvertTimeStamp(time() + CTimeZone::GetOffset(),
"FULL",
SITE_ID),
SITE_ID,
true);
630 $logFollowObject = CSocNetLogFollow::getList(
632 $logFollow = $logFollowObject->fetch();
636 || $logFollow[
'BY_WF'] ==
'Y'
639 CSocNetLogFollow::set(
$userId,
'L'.$logId,
'N',
false,
SITE_ID,
true);
648 return COption::getOptionString(
'main',
'site_name',
'');
653 static $bizprocForumId =
false;
655 if (!$bizprocForumId)
657 $bizprocForumId = intval(COption::GetOptionString(
'bizproc',
'forum_id'));
661 isset(
$fields[
'ENTITY_TYPE_ID'])
662 &&
$fields[
'ENTITY_TYPE_ID'] ==
'FORUM_POST'
663 && intval(
$fields[
'PARAM1']) == $bizprocForumId
665 && !empty($bxSocNetSearch->_params[
"PATH_TO_WORKFLOW"])
666 && CModule::IncludeModule(
"forum")
667 && CModule::IncludeModule(
"bizproc")
675 && !empty($topic[
"XML_ID"])
678 if (preg_match(
'/^WF_([0-9a-f\.]+)/', $topic[
"XML_ID"], $match))
680 $workflowId = $match[1];
681 $state = CBPStateService::GetStateDocumentId($workflowId);
685 && $state[1] ==
'BizprocDocument'
686 && CModule::IncludeModule(
'iblock')
687 && (intval($state[2]) > 0)
690 $iblockElementQuery = CIBlockElement::GetList(
693 "ID" => intval($state[2]),
697 array(
"ID",
"IBLOCK_ID")
700 if ($iblockElement = $iblockElementQuery->Fetch())
702 $listId = $iblockElement[
"IBLOCK_ID"];
704 $fields[
"URL"] = $bxSocNetSearch->Url(
706 array(
"#list_id#",
"#workflow_id#"),
707 array($listId, urlencode($workflowId)),
708 $bxSocNetSearch->_params[
"PATH_TO_WORKFLOW"]
741 if (
$comment[
"EVENT_ID"] !=
"lists_new_element_comment")
746 $logQuery = CSocNetLog::getList(
750 "EVENT_ID" =>
"lists_new_element",
754 array(
"ID",
"SOURCE_ID",
"URL",
"TITLE",
"USER_ID",
"PARAMS")
757 if (($log = $logQuery->fetch()) && (intval($log[
"SOURCE_ID"]) > 0))
759 $params = unserialize($log[
"PARAMS"], [
'allowed_classes' =>
false]);
762 $userIdsToNotify = self::getUserIdsFromRights($log[
'ID']);
764 foreach ($userIdsToNotify as
$userId)
766 CListsLiveFeed::notifyComment(
769 "MESSAGE_ID" =>
$comment[
"SOURCE_ID"],
771 "FROM_USER_ID" =>
$comment[
"USER_ID"],
772 "URL" => $log[
"URL"],
788 if ($entityType !=
"WF")
791 $logQuery = CSocNetLog::getList(
795 "EVENT_ID" =>
"lists_new_element",
799 array(
"ID",
"SOURCE_ID",
"URL",
"TITLE",
"USER_ID",
"PARAMS")
802 if (($log = $logQuery->fetch()) && (intval($log[
"SOURCE_ID"]) > 0))
804 $params = unserialize($log[
"PARAMS"], [
'allowed_classes' =>
false]);
807 $userIdsToNotify = self::getUserIdsFromRights($log[
'ID']);
809 foreach ($userIdsToNotify as
$userId)
811 CListsLiveFeed::notifyComment(
813 "LOG_ID" => $log[
"ID"],
814 "MESSAGE_ID" =>
$comment[
"MESSAGE_ID"],
816 "FROM_USER_ID" =>
$comment[
"USER_ID"],
817 "URL" => $log[
"URL"],
827 if (!Loader::includeModule(
"im"))
833 $url = str_replace(
'#SITE_DIR#', $siteDir,
$comment[
"URL"]);
834 $url .=
''.$comment[
'LOG_ID'].
'/';
836 $messageAddComment = Loc::getMessage(
"LISTS_LF_COMMENT_MESSAGE_ADD",
837 array(
"#PROCESS#" =>
'<a href="'.
$url.
'" class="bx-notifier-item-action">'.
$comment[
"TITLE"].
'</a>'));
838 $userQuery = CUser::getList(
844 if ($user = $userQuery->fetch())
846 switch ($user[
"PERSONAL_GENDER"])
850 $messageAddComment = Loc::getMessage(
"LISTS_LF_COMMENT_MESSAGE_ADD" .
'_' . $user[
"PERSONAL_GENDER"],
851 array(
"#PROCESS#" =>
'<a href="'.
$url.
'" class="bx-notifier-item-action">'.
$comment[
"TITLE"].
'</a>'));
859 "TO_USER_ID" =>
$comment[
"TO_USER_ID"],
860 "FROM_USER_ID" =>
$comment[
"FROM_USER_ID"],
862 "NOTIFY_MODULE" =>
"lists",
863 "NOTIFY_TAG" =>
"SONET|EVENT|".
$comment[
"LOG_ID"],
864 "NOTIFY_SUB_TAG" =>
"FORUM|COMMENT|".
$comment[
"MESSAGE_ID"].
"|".
$comment[
"TO_USER_ID"],
865 "NOTIFY_EVENT" =>
"event_lists_comment_add",
866 "NOTIFY_MESSAGE" => $messageAddComment,
874 if (!in_array($commentFields[
"EVENT_ID"],
array(
"lists_new_element_comment")))
879 if (!CModule::IncludeModule(
"socialnetwork"))
887 "ID" => $commentFields[
"LOG_ID"],
891 array(
"ID",
"TITLE",
"SOURCE_ID",
"PARAMS")
894 if ($log =
$dbLog->GetNext())
897 $dbUser = CUser::GetByID($commentFields[
"USER_ID"]);
898 if($user = $dbUser->Fetch())
900 $genderSuffix = $user[
"PERSONAL_GENDER"];
903 $params = unserialize($log[
"~PARAMS"], [
'allowed_classes' =>
false]);
905 $entityName =
GetMessage(
"LISTS_LF_COMMENT_MENTION_TITLE", Array(
"#PROCESS#" =>
$title));
906 $notifyMessage =
GetMessage(
"LISTS_LF_COMMENT_MENTION" . ($genderSuffix <>
'' ?
"_" . $genderSuffix :
""), Array(
"#title#" =>
"<a href=\"#url#\" class=\"bx-notifier-item-action\">".$entityName.
"</a>"));
907 $notifyMessageOut =
GetMessage(
"LISTS_LF_COMMENT_MENTION" . ($genderSuffix <>
'' ?
"_" . $genderSuffix :
""), Array(
"#title#" => $entityName)) .
" (" .
"#server_name##url#)";
909 $strPathToLogEntry = str_replace(
"#log_id#", $log[
"ID"], COption::GetOptionString(
"socialnetwork",
"log_entry_page",
"/company/personal/log/#log_id#/",
SITE_ID));
910 $strPathToLogEntryComment = $strPathToLogEntry . (mb_strpos($strPathToLogEntry,
"?") !==
false ?
"&" :
"?") .
"commentID=" . $commentFields[
"ID"] .
"#com" . $commentFields[
"ID"];
913 "URL" => $strPathToLogEntryComment,
914 "NOTIFY_MODULE" =>
"lists",
915 "NOTIFY_TAG" =>
"LISTS|COMMENT_MENTION|".$commentFields[
"ID"],
916 "NOTIFY_MESSAGE" => $notifyMessage,
917 "NOTIFY_MESSAGE_OUT" => $notifyMessageOut,
930 $iblockIdList =
array();
931 $res = \CIBlock::getList(
array(),
array(
"SOCNET_GROUP_ID" => $groupId));
934 $iblockIdList[] =
$iblock[
"ID"];
937 if (empty($iblockIdList))
950 private static function getUserIdsFromRights(
int $logId):
array
952 $userIdsToNotify = [];
953 $rightsResult = \CSocNetLogRights::getList([], [
'LOG_ID' => $logId]);
954 while (
$right = $rightsResult->fetch())
962 return $userIdsToNotify;
if(! $messageFields||!isset($messageFields['message_id'])||!isset($messageFields['status'])||!CModule::IncludeModule("messageservice")) $messageId
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static createFromUserTime($timeString)
static userLogSubscribe($params=array())
static GetByID($ID, $arAddParams=array())
static getWorkflowIntegerId($workflowId)
static getWorkflowByIntegerId($integerId)
static getWorkflowParticipants($workflowId, $userStatus=null)
static Add($arFields, $strUploadDir=false, $arParams=array())
static GetList($arOrder=Array("SORT"=>"ASC"), $arFilter=Array(), $bCount=false, $iNum=0, $arAddParams=array())
static OnSendMentionGetEntityFields($commentFields)
static OnForumCommentIMNotify($entityType, $entityId, $comment)
static getRights($users, $logId, $createdBy, $method)
static OnSocNetGroupDelete($groupId)
static onFillSocNetAllowedSubscribeEntityTypes(&$socnetEntityTypes)
static getUserIdForRight($rights)
static setSocnetFollow($users, $logId, $type, $manualMode=false, $addingComment=false)
static NotifyComment($comment)
static formatListsElement($fields, $params, $mail=false)
static deleteCommentLists($fields)
static addCommentLists($fields)
static OnAfterSonetLogEntryAddComment($comment)
static onFillSocNetLogEvents(&$socnetLogEvents)
static BeforeIndexSocNet($bxSocNetSearch, $fields)
static setMessageLiveFeed($users, $elementId, $workflowId, $flagCompleteProcess)
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array(), $arParams=array())
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="")
global $USER_FIELD_MANAGER
if(! $catalogEdit->isSuccess()) $iblock
const SONET_LISTS_NEW_POST_ENTITY(!defined("CACHED_b_lists_field_prefix"))
const BX_RESIZE_IMAGE_PROPORTIONAL
const SITE_DIR(!defined('LANG'))
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
GetMessage($name, $aReplace=null)
randString($pass_len=10, $pass_chars=false)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
$GLOBALS['_____370096793']
if(CModule::IncludeModule("forum")) if(CModule::IncludeModule("blog")) $dbLog