16 public const TYPE =
'CREATEENTITY';
42 self::SOURCE_TYPE_BLOG_POST,
43 self::SOURCE_TYPE_TASK,
44 self::SOURCE_TYPE_FORUM_TOPIC,
45 self::SOURCE_TYPE_CALENDAR_EVENT,
46 self::SOURCE_TYPE_TIMEMAN_ENTRY,
47 self::SOURCE_TYPE_TIMEMAN_REPORT,
48 self::SOURCE_TYPE_LOG_ENTRY,
49 self::SOURCE_TYPE_PHOTO_ALBUM,
50 self::SOURCE_TYPE_PHOTO_PHOTO,
51 self::SOURCE_TYPE_WIKI,
52 self::SOURCE_TYPE_LISTS_NEW_ELEMENT,
53 self::SOURCE_TYPE_INTRANET_NEW_USER,
54 self::SOURCE_TYPE_BITRIX24_NEW_USER,
57 self::SOURCE_TYPE_BLOG_COMMENT,
58 self::SOURCE_TYPE_FORUM_POST,
59 self::SOURCE_TYPE_LOG_COMMENT,
63 self::ENTITY_TYPE_BLOG_POST,
64 self::ENTITY_TYPE_TASK,
65 self::ENTITY_TYPE_CALENDAR_EVENT,
76 if ($this->postTypeListInited ===
false)
78 $moduleEvent = new \Bitrix\Main\Event(
80 'onCommentAuxGetPostTypeList',
85 foreach ($moduleEvent->getResults() as $moduleEventResult)
87 if ($moduleEventResult->getType() === \
Bitrix\
Main\EventResult::SUCCESS)
89 $moduleEventParams = $moduleEventResult->getParameters();
92 is_array($moduleEventParams)
93 && !empty($moduleEventParams[
'typeList'])
94 && is_array($moduleEventParams[
'typeList'])
97 foreach ($moduleEventParams[
'typeList'] as
$type)
105 $this->postTypeListInited =
true;
113 if ($this->commentTypeListInited ===
false)
115 $moduleEvent = new \Bitrix\Main\Event(
117 'onCommentAuxGetCommentTypeList',
120 $moduleEvent->send();
122 foreach ($moduleEvent->getResults() as $moduleEventResult)
124 if ($moduleEventResult->getType() === \
Bitrix\
Main\EventResult::SUCCESS)
126 $moduleEventParams = $moduleEventResult->getParameters();
129 is_array($moduleEventParams)
130 && !empty($moduleEventParams[
'typeList'])
131 && is_array($moduleEventParams[
'typeList'])
134 foreach($moduleEventParams[
'typeList'] as
$type)
142 $this->commentTypeListInited =
true;
150 $this->postTypeList[] =
$type;
155 $this->commentTypeList[] =
$type;
172 if (!empty(
$fields[
'SHARE_DEST']))
178 && (
int)
$fields[
'SOURCE_ID'] > 0
179 && in_array(
$fields[
'RATING_TYPE_ID'], [
'FORUM_POST',
'CRM_ENTITY_COMMENT' ])
180 && Loader::includeModule(
'forum')
185 $forumPostLivefeedProvider = new \Bitrix\Socialnetwork\Livefeed\ForumPost();
186 $commentData = $forumPostLivefeedProvider->getAuxCommentCachedData(
$messageId);
192 && !empty($serviceData)
193 && isset($commentData[
'SERVICE_TYPE'])
194 && $commentData[
'SERVICE_TYPE'] === $this->
getForumType()
199 $messageParams = Json::decode($serviceData);
210 $res = MessageTable::getList([
212 '=ID' => (
int)
$fields[
'SOURCE_ID']
217 if ($forumMessageFields =
$res->fetch())
220 if (!empty($serviceData))
224 $messageParams = Json::decode($serviceData);
242 static $userPage =
null;
243 static $parser =
null;
253 || (
int)
$params[
'sourceId'] <= 0
254 || (
int)
$params[
'entityId'] <= 0
268 if ($userPage ===
null)
270 $userPage = Option::get(
281 'userPage' => $userPage,
284 $result = Loc::getMessage(
'SONET_COMMENTAUX_CREATEENTITY_COMMENT_' .
$params[
'sourceType'] . (!empty($sourceData[
'suffix']) ?
'_' . $sourceData[
'suffix'] :
''), [
287 '#A_BEGIN#' => (!empty($sourceData[
'path']) ?
'[URL=' . $sourceData[
'path'] .
']' :
''),
288 '#A_END#' => (!empty($sourceData[
'path']) ?
'[/URL]' :
'')
293 $suffix = (
$options[
'suffix'] ?? (
$params[
'sourceType'] === static::SOURCE_TYPE_BLOG_POST ?
'2' :
''));
295 $result = Loc::getMessage(
'SONET_COMMENTAUX_CREATEENTITY_POST_' .
$params[
'sourceType'] . (!empty($suffix) ?
'_' . $suffix :
''), [
303 if ($parser ===
null)
305 $parser = new \CTextParser();
306 $parser->allow = [
'HTML' =>
'N',
'ANCHOR' =>
'Y' ];
327 $entityType =
$params[
'entityType'];
331 case static::ENTITY_TYPE_TASK:
332 $result = Loc::getMessage(
'SONET_COMMENTAUX_CREATEENTITY_TASK_NOT_FOUND');
334 case static::ENTITY_TYPE_BLOG_POST:
335 $result = Loc::getMessage(
'SONET_COMMENTAUX_CREATEENTITY_BLOG_POST_NOT_FOUND');
337 case static::ENTITY_TYPE_CALENDAR_EVENT:
338 $result = Loc::getMessage(
'SONET_COMMENTAUX_CREATEENTITY_CALENDAR_EVENT_NOT_FOUND');
362 case static::ENTITY_TYPE_TASK:
363 $result = Loc::getMessage(
'SONET_COMMENTAUX_CREATEENTITY_ENTITY_CREATED_TASK');
365 case static::ENTITY_TYPE_BLOG_POST:
366 $result = Loc::getMessage(
'SONET_COMMENTAUX_CREATEENTITY_ENTITY_CREATED_BLOG_POST');
368 case static::ENTITY_TYPE_CALENDAR_EVENT:
369 $result = Loc::getMessage(
'SONET_COMMENTAUX_CREATEENTITY_ENTITY_CREATED_CALENDAR_EVENT');
383 $entityTitle =
$entity[
'title'];
391 if (mb_strlen($entityTitle) <= 0)
396 return (!empty($entityPath) ?
'[URL=' . $entityPath .
']' . $entityTitle .
'[/URL]' : $entityTitle);
415 !empty($handlerParams)
416 && !empty($handlerParams[
'entityType'])
417 && !empty($handlerParams[
'entityId'])
418 && (
int)$handlerParams[
'entityId'] > 0
437 $entityType =
$params[
'entityType'] ??
null;
441 $permissionCacheKey = ($checkPermissions ?
'Y' :
'N');
442 $entityKey = $entityType .
'_' .
$entityId;
444 if (isset($cache[$permissionCacheKey][$entityKey]))
446 $result = $cache[$permissionCacheKey][$entityKey];
454 case static::ENTITY_TYPE_TASK:
455 $provider = new \Bitrix\Socialnetwork\Livefeed\TasksTask();
457 case static::ENTITY_TYPE_BLOG_POST:
458 $provider = new \Bitrix\Socialnetwork\Livefeed\BlogPost();
460 case static::ENTITY_TYPE_CALENDAR_EVENT:
461 $provider = new \Bitrix\Socialnetwork\Livefeed\CalendarEvent();
470 $provider->setOption(
'checkAccess', $checkPermissions);
482 elseif(!$checkPermissions)
484 $result = $cache[$permissionCacheKey][$entityKey] =
false;
493 return 'RATING|' . ($ratingVoteParams[
'VALUE'] >= 0 ?
'' :
'DL|') .
'BLOG_COMMENT|' .
$fields[
'ID'];
498 return \Bitrix\Forum\Comments\Service\Manager::TYPE_ENTITY_CREATED;
503 return $commentData[
'SERVICE_DATA'];
508 return [
'SERVICE_DATA' ];
530 return \Bitrix\Socialnetwork\Livefeed\Provider::init([
531 'ENTITY_TYPE' => (
$params[
'sourceType'] ??
$params[
'sourcetype']),
533 'LOG_ID' => (
int)(
$options[
'logId'] ?? 0)
547 $userPage = ($additionalParams[
'userPage'] ??
'');
552 $params[
'sourceType'] === static::SOURCE_TYPE_BLOG_COMMENT
553 && Loader::includeModule(
'blog')
554 && (
$comment = static::$blogCommentClass::getById(
$params[
'sourceId']))
555 && (
$post = static::$blogPostClass::getById(
$comment[
'POST_ID']))
562 ? str_replace([
'#user_id#',
'#USER_ID#' ],
$post[
'AUTHOR_ID'], $userPage) .
'blog/' .
$post[
'ID'] .
'/?commentId=' .
$params[
'sourceId'] .
'#com' .
$params[
'sourceId']
579 $commentProvider->setEntityId((
int)
$params[
'sourceId']);
580 $commentProvider->setLogId(
$options[
'logId']);
581 $commentProvider->initSourceFields();
583 $result[
'path'] = $commentProvider->getLiveFeedUrl();
587 $result[
'suffix'] = (
$options[
'suffix'] ?? (
$params[
'sourceType'] === static::SOURCE_TYPE_BLOG_COMMENT ?
'2' :
''));
const SITE_DIR(!defined('LANG'))
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)