- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/livefeed/blogcomment.php
- Класс: BitrixSocialnetworkLivefeedBlogComment
- Вызов: BlogComment::initSourceFields
public function initSourceFields()
{
$commentId = $this->entityId;
if ($commentId <= 0 || !Loader::includeModule('blog'))
{
return;
}
$res = CBlogComment::getList(
[],
['ID' => $commentId],
false,
false,
[
'ID',
'BLOG_ID',
'POST_ID',
'PARENT_ID',
'AUTHOR_ID',
'AUTHOR_NAME',
'AUTHOR_EMAIL',
'AUTHOR_IP',
'AUTHOR_IP1',
'TITLE',
'POST_TEXT',
'SHARE_DEST',
'PUBLISH_STATUS',
]
);
if (
!($comment = $res->fetch())
|| (
$comment['PUBLISH_STATUS'] === BLOG_PUBLISH_STATUS_READY
&& !$this->isCurrentUserAdmin()
)
)
{
return;
}
$res = CBlogPost::getList([], ['ID' => $comment['POST_ID']]);
if (!($post = $res->fetch()))
{
return;
}
if (
$this->getOption('checkAccess') !== false
&& !BlogPost::canRead(['POST' => $post])
)
{
return;
}
if (!empty($post['DETAIL_TEXT']))
{
$post['DETAIL_TEXT'] = Emoji::decode($post['DETAIL_TEXT']);
}
$this->setSourceFields(array_merge($comment, ['POST' => $post]));
$this->setSourceDescription(htmlspecialcharsback($comment['POST_TEXT']));
$title = htmlspecialcharsback($comment['POST_TEXT']);
$title = Mention::clear($title);
$title = (new blogTextParser())->convert($title, false);
$title = preg_replace(
[
"/n+/is" . BX_UTF_PCRE_MODIFIER,
"/s+/is" . BX_UTF_PCRE_MODIFIER,
"/ +/is" . BX_UTF_PCRE_MODIFIER
],
" ",
blogTextParser::killAllTags($title)
);
$this->setSourceTitle(truncateText($title, 100));
$this->setSourceAttachedDiskObjects($this->getAttachedDiskObjects($this->cloneDiskObjects));
$this->setSourceDiskObjects($this->getDiskObjects($commentId, $this->cloneDiskObjects));
$this->setSourceOriginalText($comment['POST_TEXT']);
$this->setSourceAuxData($comment);
}