- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/component/userprofile/profilepost.php
- Класс: BitrixIntranetComponentUserProfileProfilePost
- Вызов: ProfilePost::sendProfileBlogPostFormAction
public function sendProfileBlogPostFormAction(array $params = [])
{
global $USER, $USER_FIELD_MANAGER;
$result = false;
$permissions = $this->getPermissions();
$title = '';
$text = (!empty($params['text']) ? trim($params['text']) : '');
$additionalData = (!empty($params['additionalData']) ? $params['additionalData'] : []);
if ($text == '')
{
return $result;
}
if (
!empty($additionalData['UF_BLOG_POST_FILE'])
&& is_array($additionalData['UF_BLOG_POST_FILE'])
)
{
$additionalData['UF_BLOG_POST_FILE'] = array_filter($additionalData['UF_BLOG_POST_FILE'], function($val) { return !empty($val); });
}
if (
(
$permissions['edit']
|| $USER->getId() == $this->getProfileId()
)
&& Loader::includeModule('blog')
)
{
$postFilesList = [];
$action = 'add';
if ($postId = $this->getPostId())
{
$action = 'update';
}
$blogParams = [
"GROUP_ID" => Option::get("socialnetwork", "userbloggroup_id", false, SITE_ID),
"SITE_ID" => SITE_ID,
"USER_ID" => $this->getProfileId(),
"CREATE" => "Y",
];
if ($action == 'update')
{
$blogParams["CREATE"] = "Y";
}
$blog = BitrixBlogItemBlog::getByUser($blogParams);
if (!$blog)
{
return $result;
}
$connection = BitrixMainApplication::getConnection();
$helper = $connection->getSqlHelper();
if ($postId)
{
$postUF = $USER_FIELD_MANAGER->GetUserFields("BLOG_POST", $postId, LANGUAGE_ID);
if (
!empty($postUF['UF_BLOG_POST_FILE'])
&& !empty($postUF['UF_BLOG_POST_FILE']['VALUE'])
)
{
$postFilesList = $postUF['UF_BLOG_POST_FILE']['VALUE'];
}
$updateFields = $this->buildBlogPostFields([
'title' => $title,
'text' => $text,
'files' => $additionalData['UF_BLOG_POST_FILE']
]);
$result = CBlogPost::update($postId, $updateFields);
}
else
{
$addFields = $this->buildBlogPostFields([
'title' => $title,
'text' => $text,
'files' => $additionalData['UF_BLOG_POST_FILE']
]);
$addFields = array_merge($addFields, [
'BLOG_ID' => $blog["ID"],
'AUTHOR_ID' => $this->getProfileId(),
'=DATE_CREATE' => $helper->getCurrentDateTimeFunction(),
'=DATE_PUBLISH' => $helper->getCurrentDateTimeFunction(),
'DETAIL_TEXT_TYPE' => 'text',
'PUBLISH_STATUS' => BLOG_PUBLISH_STATUS_PUBLISH,
'HAS_IMAGES' => 'N',
'HAS_TAGS' => 'N',
'HAS_SOCNET_ALL' => 'N',
'SOCNET_RIGHTS' => [ 'UP'.$this->getProfileId() ]
]);
$postId = CBlogPost::add($addFields);
$result = $postId;
}
if (
$result
&& (
!empty($additionalData['UF_BLOG_POST_FILE'])
|| !empty($postFilesList)
)
)
{
CBlogPost::update($postId, [
"HAS_PROPS" => (
!empty($additionalData['UF_BLOG_POST_FILE'])
? 'Y'
: 'N'
),
"UF_BLOG_POST_FILE" => (
!empty($additionalData['UF_BLOG_POST_FILE'])
? $additionalData['UF_BLOG_POST_FILE']
: []
)
]);
}
}
return $result;
}