112 $logId = (int)(
$params[
'logId'] ?? 0);
113 $currentUserId = (int)(
$params[
'currentUserId'] ??
$USER->getId());
114 $crm = (isset(
$params[
'crm']) &&
$params[
'crm'] ===
'Y' ?
'Y' :
'N');
115 $languageId = (string)(
$params[
'languageId'] ?? LANGUAGE_ID);
117 $commentParams = (isset(
$params[
'commentParams']) && is_array(
$params[
'commentParams']) ?
$params[
'commentParams'] : []);
119 $forumId = (int)(
$params[
'forumId'] ?? 0);
120 $commentUid = (string)(
$params[
'commentUid'] ??
'');
121 $dateTimeFormat = (string)(
$params[
'dateTimeFormat'] ?? \CSite::getTimeFormat());
122 $nameTemplate = (string)(
$params[
'nameTemplate'] ?? \CSite::getNameFormat(
null, $siteId));
123 $showLogin = (string)(
$params[
'showLogin'] ??
'N');
124 $avatarSize = (int)(
$params[
'avatarSize'] ?? 100);
125 $pull = (string)(
$params[
'pull'] ??
'N');
127 $pathToSmile = (string)(
$params[
'pathToSmile'] ??
'');
128 $pathToLogEntry = (string)(
$params[
'pathToLogEntry'] ??
'');
129 $pathToUser = (string)(
$params[
'pathToUser'] ??
'');
130 $pathToUserBlogPost = (string)(
$params[
'pathToUserBlogPost'] ??
'');
131 $pathToGroupBlogPost = (string)(
$params[
'pathToGroupBlogPost'] ??
'');
132 $pathToUserMicroBlogPost = (string)(
$params[
'pathToUserMicroBlogPost'] ??
'');
133 $pathToGroupMicroBlogPost = (string)(
$params[
'pathToGroupMicroBlogPost'] ??
'');
134 $blogAllowPostCode = (string)(
$params[
'blogAllowPostCode'] ??
'N');
141 if (!isset(
$params[
'currentUserExternalAuthId']))
143 $currentUserExternalAuthId =
'';
145 if (
$USER->isAuthorized())
147 $res = \CUser::getById($currentUserId);
148 if ($userFields =
$res->fetch())
150 $currentUserExternalAuthId = $userFields[
'EXTERNAL_AUTH_ID'];
156 $currentUserExternalAuthId =
'';
159 if ($logFields = \CSocNetLog::getById($logId))
162 'CHECK_RIGHTS' =>
'Y',
163 'USE_SUBSCRIBE' =>
'N'
167 $currentUserExternalAuthId !==
'email'
168 && mb_strpos($logFields[
'ENTITY_TYPE'],
'CRM') === 0
170 !in_array($logFields[
'EVENT_ID'], [
'crm_lead_message',
'crm_deal_message',
'crm_company_message',
'crm_contact_message',
'crm_activity_add' ])
173 && ModuleManager::isModuleInstalled(
'crm')
178 'CHECK_CRM_RIGHTS' =>
'Y'
190 || !($logFields =
$res->fetch())
193 $result[
'strMessage'] = Loc::getMessage(
'SONET_LOG_COMMENT_NO_PERMISSIONS',
false, $languageId);
205 if (!$canAddComments)
207 $result[
'strMessage'] = Loc::getMessage(
'SONET_LOG_COMMENT_NO_PERMISSIONS',
false, $languageId);
211 $editCommentSourceId = (
212 isset($commentParams[1]) && (int)$commentParams[1] > 0
213 ? (
int)$commentParams[1]
219 'PATH_TO_SMILE' => $pathToSmile,
220 'PATH_TO_LOG_ENTRY' => $pathToLogEntry,
221 'PATH_TO_USER_BLOG_POST' => $pathToUserBlogPost,
222 'PATH_TO_GROUP_BLOG_POST' => $pathToGroupBlogPost,
223 'PATH_TO_USER_MICROBLOG_POST' => $pathToUserMicroBlogPost,
224 'PATH_TO_GROUP_MICROBLOG_POST' => $pathToGroupMicroBlogPost,
225 'BLOG_ALLOW_POST_CODE' => $blogAllowPostCode,
228 $commentText = preg_replace(
"/\xe2\x81\xa0/is",
' ',
$message);
229 $commentText = trim($commentText);
231 if ($commentText ===
'')
233 $result[
'strMessage'] = Loc::getMessage(
'SONET_LOG_COMMENT_EMPTY',
false, $languageId);
239 if ($commentEvent[
'EVENT_ID'] ===
'forum')
241 $searchParams[
'FORUM_ID'] = $forumId;
242 $searchParams[
'PATH_TO_GROUP_FORUM_MESSAGE'] = (
244 ? static::replaceGroupPath($logFields[
'URL'], $siteId)
247 $searchParams[
'PATH_TO_USER_FORUM_MESSAGE'] = (
253 elseif ($commentEvent[
'EVENT_ID'] ===
'files_comment')
257 if ((
string)$logFields[
'PARAMS'] !==
'')
260 foreach ($logParams as $prm)
262 [
$k, $v ] = explode(
'=', $prm);
263 if (
$k ===
'forum_id')
265 $filesForumId = (int)$v;
271 $searchParams[
'FILES_FORUM_ID'] = $filesForumId;
272 $searchParams[
'PATH_TO_GROUP_FILES_ELEMENT'] = (
274 ? static::replaceGroupPath($logFields[
'URL'], $siteId)
277 $searchParams[
'PATH_TO_USER_FILES_ELEMENT'] = (
283 elseif ($commentEvent[
'EVENT_ID'] ===
'photo_comment')
287 if ((
string)$logFields[
'PARAMS'] !==
'')
289 $logParams = unserialize(
htmlspecialcharsback($logFields[
'PARAMS']), [
'allowed_classes' =>
false ]);
291 isset($logParams[
'FORUM_ID'])
292 && (
int)$logParams[
'FORUM_ID'] > 0
295 $photoForumId = $logParams[
"FORUM_ID"];
298 $searchParams[
'PHOTO_FORUM_ID'] = $photoForumId;
299 $searchParams[
'PATH_TO_GROUP_PHOTO_ELEMENT'] = (
301 ? static::replaceGroupPath($logFields[
'URL'], $siteId)
304 $searchParams[
'PATH_TO_USER_PHOTO_ELEMENT'] = (
310 elseif ($commentEvent[
'EVENT_ID'] ===
'wiki_comment')
312 $searchParams[
'PATH_TO_GROUP_WIKI_POST_COMMENT'] = (
314 ? Option::get(
'socialnetwork',
'workgroups_page',
'', $siteId) .
'group/#group_id#/wiki/#wiki_name#/?MID=#message_id##message#message_id#'
318 elseif ($commentEvent[
"EVENT_ID"] ===
'tasks_comment')
320 if (Loader::includeModule(
'tasks'))
326 $tasksForumId = \CTasksTools::getForumIdForIntranet();
332 if ($tasksForumId > 0)
334 $searchParams[
'TASK_FORUM_ID'] = $tasksForumId;
335 $searchParams[
'PATH_TO_GROUP_TASK_ELEMENT'] = (
337 ? Option::get(
'socialnetwork',
'workgroups_page',
'', $siteId) .
'group/#group_id#/tasks/task/view/#task_id#/'
340 $searchParams[
'PATH_TO_USER_TASK_ELEMENT'] = (
342 ? Option::get(
'socialnetwork',
'user_page',
'', $siteId) .
'user/#user_id#/tasks/task/view/#task_id#/'
348 elseif ($commentEvent[
'EVENT_ID'] ===
'calendar_comment')
350 $searchParams[
'PATH_TO_GROUP_CALENDAR_ELEMENT'] = (
352 ? Option::get(
'socialnetwork',
'workgroups_page',
'', $siteId) .
'group/#group_id#/calendar/?EVENT_ID=#element_id#'
356 elseif ($commentEvent[
'EVENT_ID'] ===
'lists_new_element_comment')
358 $searchParams[
'PATH_TO_WORKFLOW'] =
'/services/processes/#list_id#/bp_log/#workflow_id#/';
361 global $bxSocNetSearch;
364 !empty($searchParams)
365 && !is_object($bxSocNetSearch)
368 $bxSocNetSearch = new \CSocNetSearch(
373 AddEventHandler(
'search',
'BeforeIndex', [ $bxSocNetSearch,
'BeforeIndex' ]);
376 if ($editCommentSourceId > 0)
379 'EVENT_ID' => $commentEvent[
'EVENT_ID'],
380 'MESSAGE' => $commentText,
381 'TEXT_MESSAGE' => $commentText,
382 'BLOG_ALLOW_POST_CODE' =>
$options[
'BLOG_ALLOW_POST_CODE']
388 'ENTITY_TYPE' => $logFields[
'ENTITY_TYPE'],
389 'ENTITY_ID' => $logFields[
'ENTITY_ID'],
390 'EVENT_ID' => $commentEvent[
'EVENT_ID'],
391 '=LOG_DATE' => \CDatabase::currentTimeFunction(),
392 'MESSAGE' => $commentText,
393 'TEXT_MESSAGE' => $commentText,
394 'MODULE_ID' =>
false,
395 'LOG_ID' => $logFields[
'ID'],
396 'USER_ID' => $currentUserId,
397 'PATH_TO_USER_BLOG_POST' =>
$options[
'PATH_TO_USER_BLOG_POST'],
398 'PATH_TO_GROUP_BLOG_POST' =>
$options[
'PATH_TO_GROUP_BLOG_POST'],
399 'PATH_TO_USER_MICROBLOG_POST' =>
$options[
'PATH_TO_USER_MICROBLOG_POST'],
400 'PATH_TO_GROUP_MICROBLOG_POST' =>
$options[
'PATH_TO_GROUP_MICROBLOG_POST'],
401 'BLOG_ALLOW_POST_CODE' =>
$options[
'BLOG_ALLOW_POST_CODE']
408 array_key_exists(
'UF_SONET_COM_FILE',
$fields)
409 && !empty(
$fields[
'UF_SONET_COM_FILE'])
412 if (is_array(
$fields[
'UF_SONET_COM_FILE']))
414 foreach (
$fields[
"UF_SONET_COM_FILE"] as
$key => $fileID)
418 || !array_key_exists(
'MFI_UPLOADED_FILES_' . $commentUid, $_SESSION)
419 || !in_array($fileID, $_SESSION[
'MFI_UPLOADED_FILES_' . $commentUid],
true)
428 || !array_key_exists(
'MFI_UPLOADED_FILES_' . $commentUid, $_SESSION)
429 || !in_array(
$fields[
'UF_SONET_COM_FILE'], $_SESSION[
'MFI_UPLOADED_FILES_' . $commentUid],
true)
432 unset(
$fields[
'UF_SONET_COM_FILE']);
438 if (!empty($inlineTagList))
440 $fields[
'TAG'] = $inlineTagList;
443 $updatedCommentId = 0;
445 if ($editCommentSourceId > 0)
447 $updatedCommentLogId = 0;
448 $updatedCommentUserId = 0;
451 isset($commentEvent[
'ADD_CALLBACK'])
452 && is_callable($commentEvent[
'ADD_CALLBACK'])
455 $res = \CSocNetLogComments::getList(
458 'EVENT_ID' => $commentEvent[
'EVENT_ID'],
459 'SOURCE_ID' => $editCommentSourceId
463 [
'ID',
'USER_ID',
'LOG_ID',
'SOURCE_ID' ]
465 if ($commentFields =
$res->fetch())
467 $updatedCommentId = $commentFields[
'ID'];
468 $updatedCommentLogId = $commentFields[
'LOG_ID'];
469 $updatedCommentUserId = $commentFields[
'USER_ID'];
473 if ((
int)$updatedCommentId <= 0)
475 $res = \CSocNetLogComments::getList(
478 'ID' => $editCommentSourceId,
482 [
'ID',
'USER_ID',
'LOG_ID',
'SOURCE_ID' ]
484 if ($commentFields =
$res->fetch())
486 $updatedCommentId = $commentFields[
'ID'];
487 $updatedCommentLogId = $commentFields[
'LOG_ID'];
488 $updatedCommentUserId = $commentFields[
'USER_ID'];
494 if ((
int)$updatedCommentId > 0)
496 $canUpdate = \CSocNetLogComponent::canUserChangeComment(
array(
498 'LOG_ID' => $updatedCommentLogId,
499 'LOG_EVENT_ID' => $logFields[
'EVENT_ID'],
500 'LOG_SOURCE_ID' => $logFields[
'SOURCE_ID'],
501 'COMMENT_ID' => $updatedCommentId,
502 'COMMENT_USER_ID' => $updatedCommentUserId
508 $commentId = \CSocNetLogComments::update($updatedCommentId,
$fields,
true);
512 $result[
'strMessage'] = Loc::getMessage(
"SONET_LOG_COMMENT_NO_PERMISSIONS_UPDATE",
false, $languageId);
513 $result[
"commentText"] = $commentText;
520 $commentId = \CSocNetLogComments::add(
$fields,
true,
false);
523 if ((
int)$commentId <= 0)
528 $bSkipCounterIncrement =
false;
530 if ($editCommentSourceId <= 0)
532 $res = getModuleEvents(
'socialnetwork',
'OnAfterSocNetLogEntryCommentAdd');
538 'SITE_ID' => $siteId,
539 'COMMENT_ID' => $commentId,
544 $res = getModuleEvents(
'socialnetwork',
'OnBeforeSocNetLogCommentCounterIncrement');
549 $bSkipCounterIncrement =
true;
556 $bSkipCounterIncrement =
true;
559 if (!$bSkipCounterIncrement)
561 \CSocNetLog::counterIncrement(
566 \CSocNetLogRights::checkForUserAll($logFields[
'ID'])
570 $result[
'commentID'] = $commentId;
572 if ($commentFields = \CSocNetLogComments::getById(
$result[
'commentID']))
579 'ACTION' => ((
int)$updatedCommentId <= 0 ?
'ADD' :
"UPDATE"),
580 'SOURCE_ID' => $editCommentSourceId,
581 'TIME_FORMAT' => $dateTimeFormat,
582 "PATH_TO_USER" => $pathToUser,
583 'PATH_TO_LOG_ENTRY' => $pathToLogEntry,
584 'NAME_TEMPLATE' => $nameTemplate,
585 'SHOW_LOGIN' => $showLogin,
586 'AVATAR_SIZE' => $avatarSize,
587 'PATH_TO_SMILE' => $pathToSmile,
588 'LANGUAGE_ID' => $languageId,
589 'SITE_ID' => $siteId,
673 $timeZoneOffzet = (isset(
$options[
'timeZoneOffzet']) && (int)
$options[
'timeZoneOffzet'] > 0 ? (
int)
$options[
'timeZoneOffzet'] : 0);
674 $commentEvent = (isset(
$options[
'commentEvent']) && is_array(
$options[
'commentEvent']) ?
$options[
'commentEvent'] : []);
675 $commentProvider = (
$options[
'commentProvider'] ??
false);
677 $cacheTime = 31536000;
680 $useCache = (
$params[
'COMMENT_ID'] <= 0);
684 $cache = new \CPHPCache;
687 $cacheIdPartsList = [];
689 'AVATAR_SIZE_COMMENT',
691 'NAME_TEMPLATE_WO_NOBR',
696 'PATH_TO_CONPANY_DEPARTMENT',
700 foreach ($keysList as $paramKey)
702 $cacheIdPartsList[$paramKey] = (
703 array_key_exists($paramKey,
$params)
712 $cacheId = implode(
'_', [
715 md5(serialize($cacheIdPartsList)),
725 $cachePath =
'/sonet/log/' . (int)((
int)
$params[
'LOG_ID'] / 1000) .
'/' .
$params[
'LOG_ID'] .
'/comments/';
731 && $cache->initCache($cacheTime, $cacheId, $cachePath)
734 $cacheVariables = $cache->getVars();
735 $result = $cacheVariables[
'COMMENTS_FULL_LIST'];
737 $navResultData = $cacheVariables[
'NAV_RESULT_DATA'];
738 $navResult = new \CDBResult;
739 $navResult->bShowAll = $navResultData[
'bShowAll'];
740 $navResult->bDescPageNumbering = $navResultData[
'bDescPageNumbering'];
741 $navResult->NavNum = $navResultData[
'NavNum'];
742 $navResult->NavRecordCount = $navResultData[
'NavRecordCount'];
743 $navResult->NavPageNomer = $navResultData[
'NavPageNomer'];
744 $navResult->NavPageSize = $navResultData[
'NavPageSize'];
746 if (!empty($cacheVariables[
'Assets']))
748 if (!empty($cacheVariables[
'Assets'][
'CSS']))
750 foreach ($cacheVariables[
'Assets'][
'CSS'] as $cssFile)
752 Asset::getInstance()->addCss($cssFile);
756 if (!empty($cacheVariables[
'Assets'][
'JS']))
758 foreach ($cacheVariables[
"Assets"][
'JS'] as $jsFile)
760 Asset::getInstance()->addJs($jsFile);
769 $cache->startDataCache($cacheTime, $cacheId, $cachePath);
772 if (defined(
'BX_COMP_MANAGED_CACHE'))
785 $logCommentId =
$params[
'COMMENT_ID'];
789 && !empty(
$params[
'FILTER'][
'<ID'])
790 && (
int)
$params[
'FILTER'][
'<ID'] > 0
793 $logCommentId = (int)
$params[
'FILTER'][
'<ID'];
797 !empty($commentEvent)
798 && !empty($commentEvent[
'RATING_TYPE_ID'])
802 $res = \CSocNetLogComments::getList(
805 'RATING_TYPE_ID' => $commentEvent[
'RATING_TYPE_ID'],
806 'RATING_ENTITY_ID' => $logCommentId,
813 if ($logCommentFields =
$res->fetch())
815 $logCommentId = (int)$logCommentFields[
'ID'];
819 if ($logCommentId > 0)
823 $filter[
'>=ID'] = $logCommentId;
827 && !empty(
$params[
'FILTER'][
'<ID'])
828 && (
int)
$params[
'FILTER'][
'<ID'] > 0
831 $filter[
'<ID'] = $logCommentId;
836 'ID',
'LOG_ID',
'SOURCE_ID',
'ENTITY_TYPE',
'ENTITY_ID',
'USER_ID',
'EVENT_ID',
'LOG_DATE',
'MESSAGE',
'LOG_DATE_TS',
'TEXT_MESSAGE',
'URL',
'MODULE_ID',
837 'GROUP_NAME',
'GROUP_OWNER_ID',
'GROUP_VISIBLE',
'GROUP_OPENED',
'GROUP_IMAGE_ID',
838 'USER_NAME',
'USER_LAST_NAME',
'USER_SECOND_NAME',
'USER_LOGIN',
'USER_PERSONAL_PHOTO',
'USER_PERSONAL_GENDER',
839 'CREATED_BY_NAME',
'CREATED_BY_LAST_NAME',
'CREATED_BY_SECOND_NAME',
'CREATED_BY_LOGIN',
'CREATED_BY_PERSONAL_PHOTO',
'CREATED_BY_PERSONAL_GENDER',
'CREATED_BY_EXTERNAL_AUTH_ID',
841 'LOG_SITE_ID',
'LOG_SOURCE_ID',
842 'RATING_TYPE_ID',
'RATING_ENTITY_ID',
847 'USE_SUBSCRIBE' =>
'N',
848 'CHECK_RIGHTS' =>
'N'
860 'iNumPage' => $navPage,
861 'nPageSize' =>
$params[
'COMMENTS_IN_EVENT'],
867 'nTopCount' => $nTopCount,
876 $res = \CSocNetLogComments::getList(
877 [
'LOG_DATE' =>
'DESC',
'ID' =>
'DESC' ],
885 $navResultData =
null;
886 if (
$res->NavNum !==
null)
889 'bShowAll' =>
$res->bShowAll,
890 'bDescPageNumbering' =>
$res->bDescPageNumbering,
891 'NavNum' =>
$res->NavNum,
892 'NavRecordCount' =>
$res->NavRecordCount,
893 'NavPageNomer' =>
$res->NavPageNomer,
894 'NavPageSize' =>
$res->NavPageSize,
899 !empty($eventData[
'EVENT_FORMATTED'])
900 && !empty($eventData[
'EVENT_FORMATTED'][
'DESTINATION'])
901 && is_array($eventData[
'EVENT_FORMATTED'][
'DESTINATION'])
904 foreach ($eventData[
'EVENT_FORMATTED'][
'DESTINATION'] as $destination)
906 if (!empty($destination[
'CRM_USER_ID']))
908 $params[
'ENTRY_HAS_CRM_USER'] =
true;
914 $commentsList = $commentSourceIdList = [];
915 while ($commentFields =
$res->getNext())
917 if (!empty($commentFields[
'SHARE_DEST']))
922 if (defined(
'BX_COMP_MANAGED_CACHE'))
924 $CACHE_MANAGER->registerTag(
'USER_NAME_'.(
int)$commentFields[
'USER_ID']);
927 $commentFields[
'UF'] = $usetFieldsMetaData;
928 foreach ($usetFieldsMetaData as $fieldName => $userFieldData)
930 if (array_key_exists($fieldName, $commentFields))
932 $commentFields[
'UF'][$fieldName][
'VALUE'] = $commentFields[$fieldName];
933 $commentFields[
'UF'][$fieldName][
'ENTITY_VALUE_ID'] = $commentFields[
'ID'];
934 if (method_exists(
$GLOBALS[
'USER_FIELD_MANAGER'],
'getCustomData'))
936 $commentFields[
'UF'][$fieldName][
'CUSTOM_DATA'] =
$GLOBALS[
'USER_FIELD_MANAGER']->getCustomData(
937 $commentFields[
'UF'][$fieldName],
938 (
int)$commentFields[
'ID']
944 $commentsList[] = $commentFields;
945 if ((
int)$commentFields[
'SOURCE_ID'] > 0)
947 $commentSourceIdList[] = (int)$commentFields[
'SOURCE_ID'];
952 !empty($commentSourceIdList)
953 && !empty($commentProvider)
956 $sourceAdditonalData = $commentProvider->getAdditionalData([
957 'id' => $commentSourceIdList
960 if (!empty($sourceAdditonalData))
966 && isset($sourceAdditonalData[
$comment[
'SOURCE_ID']])
969 $commentsList[
$key][
'ADDITIONAL_DATA'] = $sourceAdditonalData[
$comment[
'SOURCE_ID']];
975 foreach ($commentsList as $commentFields)
982 && $navResultData ===
null
985 $navResult = \CSocNetLogComments::getList(
990 'nPageSize' =>
$params[
'COMMENTS_IN_EVENT'],
998 'bShowAll' => $navResult->bShowAll,
999 'bDescPageNumbering' => $navResult->bDescPageNumbering,
1000 'NavNum' => $navResult->NavNum,
1001 'NavRecordCount' => $navResult->NavRecordCount,
1002 'NavPageNomer' => $navResult->NavPageNomer,
1003 'NavPageSize' => $navResult->NavPageSize,
1010 'COMMENTS_FULL_LIST' =>
$result,
1011 'NAV_RESULT_DATA' => $navResultData,
1014 $cache->endDataCache($cacheData);
1015 if (defined(
'BX_COMP_MANAGED_CACHE'))
1022 $arResult[
'NAV_RESULT'] = $navResult ??
null;
1031 $extranetUserIdList = $arExtranetUserID;
1033 static $userCache =
array();
1036 $timestamp = makeTimeStamp(array_key_exists(
'LOG_DATE_FORMAT',
$comment)
1041 $timeFormated = formatDateFromDB(
$comment[
'LOG_DATE'],
1043 mb_stripos(
$params[
'DATE_TIME_FORMAT'],
'a')
1045 $params[
'DATE_TIME_FORMAT'] ===
'FULL'
1053 $dateTimeFormated = formatDate(
1054 (!empty(
$params[
'DATE_TIME_FORMAT'])
1055 ? (
$params[
'DATE_TIME_FORMAT'] ===
'FULL'
1056 ? \CDatabase::dateFormatToPHP(str_replace(
':SS',
'',
FORMAT_DATETIME))
1065 strcasecmp(LANGUAGE_ID,
'EN') !== 0
1066 && strcasecmp(LANGUAGE_ID,
'DE') !== 0
1069 $dateTimeFormated = mb_strtolower($dateTimeFormated);
1074 !empty(
$params[
'DATE_TIME_FORMAT'])
1076 $params[
'DATE_TIME_FORMAT'] ===
'j F Y G:i'
1077 ||
$params[
'DATE_TIME_FORMAT'] ===
'j F Y g:i a'
1081 $dateTimeFormated = ltrim($dateTimeFormated,
'0');
1082 $currentYear = date(
'Y');
1083 $dateTimeFormated = str_replace(
array(
'-'.$currentYear,
'/'.$currentYear,
' '.$currentYear,
'.'.$currentYear),
'', $dateTimeFormated);
1088 ? \CComponentEngine::MakePathFromTemplate(
$params[
'PATH_TO_GROUP'], [
'group_id' =>
$comment[
'ENTITY_ID'] ])
1089 : \CComponentEngine::MakePathFromTemplate(
$params[
'PATH_TO_USER'], [
'user_id' =>
$comment[
'ENTITY_ID'] ])
1095 is_array($extranetUserIdList)
1096 && in_array(
$comment[
'USER_ID'], $extranetUserIdList)
1097 ? Loc::getMessage(
'SONET_LOG_EXTRANET_SUFFIX')
1102 'NAME' =>
$comment[
'~CREATED_BY_NAME'],
1103 'LAST_NAME' =>
$comment[
'~CREATED_BY_LAST_NAME'],
1104 'SECOND_NAME' =>
$comment[
'~CREATED_BY_SECOND_NAME'],
1105 'LOGIN' =>
$comment[
'~CREATED_BY_LOGIN']
1107 $useLogin = (
$params[
"SHOW_LOGIN"] !==
"N");
1108 $createdByFields = [
1109 'FORMATTED' => \CUser::formatName(
$params[
'NAME_TEMPLATE'], $userFields, $useLogin).$suffix,
1116 $createdByFields[
'TOOLTIP_FIELDS'] = [
1118 'NAME' =>
$comment[
'~CREATED_BY_NAME'],
1119 'LAST_NAME' =>
$comment[
'~CREATED_BY_LAST_NAME'],
1120 'SECOND_NAME' =>
$comment[
'~CREATED_BY_SECOND_NAME'],
1121 'LOGIN' =>
$comment[
'~CREATED_BY_LOGIN'],
1122 'PERSONAL_GENDER' =>
$comment[
'~CREATED_BY_PERSONAL_GENDER'],
1123 'USE_THUMBNAIL_LIST' =>
'N',
1124 'PATH_TO_SONET_MESSAGES_CHAT' =>
$params[
'PATH_TO_MESSAGES_CHAT'] ??
null,
1125 'PATH_TO_SONET_USER_PROFILE' =>
$params[
'PATH_TO_USER'] ??
null,
1126 'PATH_TO_VIDEO_CALL' =>
$params[
'PATH_TO_VIDEO_CALL'] ??
null,
1127 'DATE_TIME_FORMAT' =>
$params[
'DATE_TIME_FORMAT'],
1128 'SHOW_YEAR' =>
$params[
'SHOW_YEAR'],
1129 'CACHE_TYPE' =>
$params[
'CACHE_TYPE'] ??
null,
1130 'CACHE_TIME' =>
$params[
'CACHE_TIME'] ??
null,
1131 'NAME_TEMPLATE' =>
$params[
'NAME_TEMPLATE'].$suffix,
1132 'SHOW_LOGIN' =>
$params[
'SHOW_LOGIN'],
1133 'PATH_TO_CONPANY_DEPARTMENT' =>
$params[
'PATH_TO_CONPANY_DEPARTMENT'] ??
null,
1135 'EXTERNAL_AUTH_ID' =>
$comment[
'~CREATED_BY_EXTERNAL_AUTH_ID']
1138 isset(
$params[
'ENTRY_HAS_CRM_USER'])
1139 &&
$params[
'ENTRY_HAS_CRM_USER']
1140 && ModuleManager::isModuleInstalled(
'crm')
1143 if (isset($userCache[
$comment[
'USER_ID']]))
1145 $userFields = $userCache[
$comment[
'USER_ID']];
1149 $res = UserTable::getList([
1153 'select' => [
'ID',
'UF_USER_CRM_ENTITY' ]
1155 if ($userFields =
$res->fetch())
1157 $userCache[$userFields[
'ID']] = $userFields;
1161 if (!empty($userFields))
1163 $createdByFields[
'TOOLTIP_FIELDS'] = array_merge($createdByFields[
'TOOLTIP_FIELDS'], $userFields);
1169 $createdByFields = [
1170 'FORMATTED' => Loc::getMessage(
"SONET_C73_CREATED_BY_ANONYMOUS")
1176 'LAST_NAME' =>
$comment[
'~USER_LAST_NAME'],
1177 'SECOND_NAME' =>
$comment[
'~USER_SECOND_NAME'],
1182 $temporaryParams[
'AVATAR_SIZE'] = (
$params[
'AVATAR_SIZE_COMMON'] ??
$params[
'AVATAR_SIZE']);
1184 $commentEventFields = [
1186 'LOG_DATE' =>
$comment[
'LOG_DATE'],
1187 'LOG_DATE_TS' => makeTimeStamp(
$comment[
'LOG_DATE']),
1188 'LOG_DATE_DAY' => convertTimeStamp(makeTimeStamp(
$comment[
'LOG_DATE']),
'SHORT'),
1189 'LOG_TIME_FORMAT' => $timeFormated,
1190 'LOG_DATETIME_FORMAT' => $dateTimeFormated,
1191 'TITLE_TEMPLATE' =>
'',
1193 'TITLE_FORMAT' =>
'',
1197 : \CUser::formatName(
$params[
'NAME_TEMPLATE'], $userFields, $useLogin)
1199 'ENTITY_PATH' => $path2Entity,
1200 'CREATED_BY' => $createdByFields,
1201 'AVATAR_SRC' => \CSocNetLogTools::formatEvent_CreateAvatar(
$comment, $temporaryParams)
1204 $commentEventData = \CSocNetLogTools::findLogCommentEventByID(
$comment[
'EVENT_ID']);
1205 $formattedFields = [];
1208 is_array($commentEventData)
1209 && array_key_exists(
'CLASS_FORMAT', $commentEventData)
1210 && array_key_exists(
'METHOD_FORMAT', $commentEventData)
1214 (
$params[
'USER_COMMENTS'] ??
'') ===
"Y"
1217 'TITLE' =>
$comment[
'~LOG_TITLE'] ??
'',
1218 'URL' =>
$comment[
'~LOG_URL'] ??
'',
1219 'PARAMS' =>
$comment[
'~LOG_PARAMS'] ?? null
1223 $formattedFields = call_user_func([ $commentEventData[
'CLASS_FORMAT'], $commentEventData[
'METHOD_FORMAT'] ],
$comment,
$params,
false, $logFields);
1226 (
$params[
'USE_COMMENTS'] ??
null) !==
'Y'
1227 && array_key_exists(
'CREATED_BY', $formattedFields)
1228 && isset($formattedFields[
'CREATED_BY'][
'TOOLTIP_FIELDS']))
1230 $commentEventFields[
'CREATED_BY'][
'TOOLTIP_FIELDS'] = $formattedFields[
'CREATED_BY'][
'TOOLTIP_FIELDS'];
1234 $commentAuxProvider = \Bitrix\Socialnetwork\CommentAux\Base::findProvider(
1236 'POST_TEXT' =>
$comment[
'MESSAGE'],
1237 'SHARE_DEST' =>
$comment[
'SHARE_DEST'],
1238 'SOURCE_ID' => (
int)
$comment[
'SOURCE_ID'],
1239 'EVENT_ID' =>
$comment[
'EVENT_ID'],
1240 'RATING_TYPE_ID' =>
$comment[
'RATING_TYPE_ID'],
1247 if ($commentAuxProvider)
1249 $commentAuxProvider->setOptions([
1250 'suffix' => (!empty(
$params[
'COMMENT_ENTITY_SUFFIX']) ?
$params[
'COMMENT_ENTITY_SUFFIX'] :
''),
1253 'parseBBCode' =>
true,
1257 $formattedFields[
"EVENT_FORMATTED"][
"FULL_MESSAGE_CUT"] = nl2br($commentAuxProvider->getText());
1262 is_array($formattedFields)
1263 && array_key_exists(
'EVENT_FORMATTED', $formattedFields)
1264 && array_key_exists(
'MESSAGE', $formattedFields[
'EVENT_FORMATTED'])
1265 ? $formattedFields[
'EVENT_FORMATTED'][
'MESSAGE']
1266 : $commentEventFields[
'EVENT'][
'MESSAGE']
1275 $formattedFields[
'EVENT_FORMATTED'][
'DATETIME'] = (
1276 $commentEventFields[
'LOG_DATE_DAY'] == convertTimeStamp()
1280 $commentEventFields[
'EVENT_FORMATTED'] = $formattedFields[
'EVENT_FORMATTED'];
1281 $commentEventFields[
'EVENT_FORMATTED'][
'URLPREVIEW'] =
false;
1284 isset(
$comment[
'UF'][
'UF_SONET_COM_URL_PRV'])
1285 && !empty(
$comment[
'UF'][
'UF_SONET_COM_URL_PRV'][
'VALUE'])
1293 'NAME_TEMPLATE' =>
$params[
'NAME_TEMPLATE'],
1294 'PATH_TO_USER' =>
$params[
'~PATH_TO_USER']
1297 if (!empty($urlPreviewText))
1299 $commentEventFields[
'EVENT_FORMATTED'][
'URLPREVIEW'] =
true;
1300 $commentEventFields[
'EVENT_FORMATTED'][
'FULL_MESSAGE_CUT'] .= $urlPreviewText;
1303 $assets[
'CSS'] = array_merge($assets[
'CSS'], array_diff(
$APPLICATION->sPath2css, $css));
1304 $assets[
'JS'] = array_merge($assets[
'JS'], array_diff(
$APPLICATION->arHeadScripts, $js));
1306 $commentEventFields[
'UF_HIDDEN'][
'UF_SONET_COM_URL_PRV'] =
$comment[
'UF'][
'UF_SONET_COM_URL_PRV'];
1307 unset(
$comment[
'UF'][
'UF_SONET_COM_URL_PRV']);
1310 $commentEventFields[
'UF'] =
$comment[
'UF'];
1313 isset($commentEventFields[
'EVENT_FORMATTED'])
1314 && is_array($commentEventFields[
'EVENT_FORMATTED'])
1324 foreach ($commentEventFields[
'EVENT_FORMATTED'] as $field => $value)
1326 if (!in_array($field, $fields2Cache,
true))
1328 unset($commentEventFields[
'EVENT_FORMATTED'][$field]);
1334 isset($commentEventFields[
'EVENT'])
1335 && is_array($commentEventFields[
'EVENT'])
1338 if (!empty($commentEventFields[
"EVENT"][
"URL"]))
1340 $commentEventFields[
'EVENT'][
'URL'] = str_replace(
1342 Option::get(
'socialnetwork',
'workgroups_page',
'/workgroups/',
SITE_ID),
1343 $commentEventFields[
'EVENT'][
'URL']
1366 && (
int)
$params[
'COMMENT_ID'] > 0
1370 $fields2Cache[] =
'MESSAGE';
1373 foreach ($commentEventFields[
'EVENT'] as $field => $value)
1375 if (!in_array($field, $fields2Cache,
true))
1377 unset($commentEventFields[
'EVENT'][$field]);
1383 isset($commentEventFields[
'CREATED_BY'])
1384 && is_array($commentEventFields[
'CREATED_BY'])
1392 foreach ($commentEventFields[
'CREATED_BY'] as $field => $value)
1394 if (!in_array($field, $fields2Cache,
true))
1396 unset($commentEventFields[
'CREATED_BY'][$field]);
1401 isset($commentEventFields[
'CREATED_BY'][
'TOOLTIP_FIELDS'])
1402 && is_array($commentEventFields[
'CREATED_BY'][
'TOOLTIP_FIELDS'])
1407 'PATH_TO_SONET_USER_PROFILE',
1415 'UF_USER_CRM_ENTITY',
1418 foreach ($commentEventFields[
'CREATED_BY'][
'TOOLTIP_FIELDS'] as $field => $value)
1420 if (!in_array($field, $fields2Cache,
true))
1422 unset($commentEventFields[
'CREATED_BY'][
'TOOLTIP_FIELDS'][$field]);
1428 foreach ($commentEventFields[
'EVENT'] as
$key => $value)
1430 if (mb_strpos(
$key,
'~') === 0)
1432 unset($commentEventFields[
'EVENT'][
$key]);
1436 return $commentEventFields;