9namespace Bitrix\Socialnetwork\Item;
11use Bitrix\Blog\Item\Blog;
12use Bitrix\Blog\Item\Permissions;
13use Bitrix\Blog\Item\Post;
14use Bitrix\Main\AccessDeniedException;
15use Bitrix\Main\ArgumentException;
16use Bitrix\Main\Config\Option;
17use Bitrix\Main\Engine\Controller;
18use Bitrix\Main\Loader;
19use Bitrix\Main\LoaderException;
20use Bitrix\Main\Localization\Loc;
21use Bitrix\Main\ModuleManager;
22use Bitrix\Main\SystemException;
23use Bitrix\Socialnetwork\Component\BlogPostEdit;
24use Bitrix\Socialnetwork\ComponentHelper;
25use Bitrix\Socialnetwork\Controller\Livefeed;
26use Bitrix\Disk\Uf\FileUserType;
30 public static function addBlogPost(
$params, $scope = Controller::SCOPE_AJAX, &$resultFields = [])
49 if (!Loader::includeModule(
'blog'))
51 $APPLICATION->throwException(Loc::getMessage(
'SOCIALNETWORK_ITEM_HELPER_BLOG_MODULE_NOT_INSTALLED'),
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_MODULE_BLOG_NOT_INSTALLED');
55 $blogGroupId = Option::get(
'socialnetwork',
'userbloggroup_id',
false,
$siteId);
56 if (empty($blogGroupId))
61 if (!empty($blogGroupIdList))
63 $blogGroupId = array_shift($blogGroupIdList);
67 $blog = Blog::getByUser([
68 'GROUP_ID' => $blogGroupId,
70 'USER_ID' => $authorId,
76 $APPLICATION->throwException(
'Blog not found',
'SONET_CONTROLLER_LIVEFEED_BLOG_NOT_FOUND');
84 'BLOG_ID' => $blog[
'ID'],
85 'AUTHOR_ID' => $authorId,
86 '=DATE_CREATE' => $helper->getCurrentDateTimeFunction(),
87 '=DATE_PUBLISH' => $helper->getCurrentDateTimeFunction(),
89 'TITLE' => ((
$params[
'POST_TITLE'] ??
'') <>
'' ?
$params[
'POST_TITLE'] :
''),
90 'DETAIL_TEXT' =>
$params[
'POST_MESSAGE'],
91 'DETAIL_TEXT_TYPE' =>
'text',
95 'HAS_SOCNET_ALL' =>
'N'
99 ModuleManager::isModuleInstalled(
'mail')
100 && ModuleManager::isModuleInstalled(
'intranet')
102 !Loader::includeModule(
'bitrix24')
103 || \CBitrix24::isEmailConfirmed()
113 'ERROR_MESSAGE' =>
false,
114 'PUBLISH_STATUS' => $postFields[
'PUBLISH_STATUS']
117 if ($emailUserAllowed)
119 $destinationList =
$params[
'DEST'];
121 $params[
'DEST'] = array_unique($destinationList);
127 'AUTHOR_ID' => $authorId,
128 'MOBILE' => (
$params[
'MOBILE'] ??
'N'),
131 if ($resultFields[
'ERROR_MESSAGE_PUBLIC'] ??
null)
136 if ($resultFields[
'ERROR_MESSAGE'])
138 $APPLICATION->throwException($resultFields[
'ERROR_MESSAGE']);
142 $postFields[
'PUBLISH_STATUS'] = $resultFields[
'PUBLISH_STATUS'];
146 && $scope === Controller::SCOPE_REST
149 if ($emailUserAllowed)
151 $pseudoHttpPostFields = [
153 'INVITED_USER_NAME' => (!empty(
$params[
'INVITED_USER_NAME']) && is_array(
$params[
'INVITED_USER_NAME']) ?
$params[
'INVITED_USER_NAME'] : []),
154 'INVITED_USER_LAST_NAME' => (!empty(
$params[
'INVITED_USER_NAME']) && is_array(
$params[
'INVITED_USER_LAST_NAME']) ?
$params[
'INVITED_USER_LAST_NAME'] : []),
155 'INVITED_USER_CRM_ENTITY' => (!empty(
$params[
'INVITED_USER_CRM_ENTITY']) && is_array(
$params[
'INVITED_USER_CRM_ENTITY']) ?
$params[
'INVITED_USER_CRM_ENTITY'] : []),
156 'INVITED_USER_CREATE_CRM_CONTACT' => (!empty(
$params[
'INVITED_USER_CREATE_CRM_CONTACT']) && is_array(
$params[
'INVITED_USER_CREATE_CRM_CONTACT']) ?
$params[
'INVITED_USER_CREATE_CRM_CONTACT'] : []),
159 'ALLOW_EMAIL_INVITATION' => true
162 if (!empty($temporaryParams[
'ERROR_MESSAGE']))
164 $APPLICATION->throwException($temporaryParams[
'ERROR_MESSAGE'],
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_ADD_ERROR');
168 $params[
'SPERM'] = $pseudoHttpPostFields[
'SPERM'];
172 'ERROR_MESSAGE' =>
false,
173 'PUBLISH_STATUS' => $postFields[
'PUBLISH_STATUS'],
179 'AUTHOR_ID' => $authorId,
183 $postFields[
'PUBLISH_STATUS'] = $resultFields[
'PUBLISH_STATUS'];
184 if (!empty($resultFields[
'ERROR_MESSAGE']))
186 $APPLICATION->throwException($resultFields[
'ERROR_MESSAGE'],
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_ADD_ERROR');
191 !Loader::includeModule(
'extranet')
192 || \CExtranet::isIntranetUser()
195 $postFields[
'SOCNET_RIGHTS'] = [
'UA' ];
198 if (empty($postFields[
'SOCNET_RIGHTS']))
200 $APPLICATION->throwException(
'No destination specified',
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_ADD_ERROR');
204 if ((
string)$postFields[
'TITLE'] ===
'')
206 $postFields[
'MICRO'] =
'Y';
208 $postFields[
'TITLE'] = trim($postFields[
'TITLE'],
" \t\n\r\0\x0B\xA0");
213 &&
$params[
'IMPORTANT'] ===
'Y'
216 $postFields[
'UF_BLOG_POST_IMPRTNT'] =
true;
218 if (!empty(
$params[
'IMPORTANT_DATE_END']))
220 $endDate = \CRestUtil::unConvertDate(
$params[
'IMPORTANT_DATE_END']);
228 if (isset(
$params[
'GRATITUDE_MEDAL'],
$params[
'GRATITUDE_EMPLOYEES']))
231 'medal' =>
$params[
'GRATITUDE_MEDAL'],
232 'employees' =>
$params[
'GRATITUDE_EMPLOYEES']
234 if ($gratitudeElementId)
236 $postFields[
'UF_GRATITUDE'] = $gratitudeElementId;
241 !empty(
$params[
'UF_BLOG_POST_VOTE'])
242 && !empty(
$params[
'UF_BLOG_POST_VOTE_' .
$params[
'UF_BLOG_POST_VOTE'] .
'_DATA'])
245 $postFields[
'UF_BLOG_POST_VOTE'] =
$params[
'UF_BLOG_POST_VOTE'];
246 $GLOBALS[
'UF_BLOG_POST_VOTE_' .
$params[
'UF_BLOG_POST_VOTE'] .
'_DATA'] =
$params[
'UF_BLOG_POST_VOTE_' .
$params[
'UF_BLOG_POST_VOTE'] .
'_DATA'];
249 if (!empty(
$params[
'BACKGROUND_CODE']))
251 $postFields[
'BACKGROUND_CODE'] =
$params[
'BACKGROUND_CODE'];
255 isset(
$params[
'PARSE_PREVIEW'])
256 &&
$params[
'PARSE_PREVIEW'] ===
'Y'
257 && !empty($postFields[
'DETAIL_TEXT'])
261 $postFields[
'UF_BLOG_POST_URL_PRV'] = $urlPreviewValue;
264 $result = \CBlogPost::add($postFields);
268 $APPLICATION->throwException(
'Blog post hasn\'t been added',
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_ADD_ERROR');
274 'authorId' => $postFields[
'AUTHOR_ID']
278 'CONTEXT' =>
'blog_post',
284 &&
$params[
'IMPORTANT'] ===
'Y'
287 \CBlogUserOptions::setOption(
$result,
'BLOG_POST_IMPRTNT',
'Y', $authorId);
289 if (defined(
'BX_COMP_MANAGED_CACHE'))
296 'blogId' => $blog[
'ID'],
297 'tags' =>
$params[
'TAGS'] ??
'',
300 'blogCategoryIdList' => $categoryIdListFromPostData,
301 'postFields' => $postFields,
302 'blogId' => $blog[
'ID'],
304 $categoryIdList = array_merge($categoryIdListFromPostData, $newCategoryIdList);
305 if (!empty($categoryIdList))
307 \CBlogPostCategory::deleteByPostID(
$result);
308 foreach ($categoryIdList as $categoryId)
310 \CBlogPostCategory::add([
311 'BLOG_ID' => $postFields[
'BLOG_ID'],
313 'CATEGORY_ID' => $categoryId
320 'CATEGORY_ID' => implode(
',', $categoryIdList),
327 Option::get(
'disk',
'successfully_converted',
false)
328 && Loader::includeModule(
'disk')
330 && ($folder =
$storage->getFolderForUploadedFiles())
338 && $scope === Controller::SCOPE_REST
341 foreach (
$params[
'FILES'] as $fileData)
343 $fileFields = \CRestUtil::saveFile($fileData);
345 if (is_array($fileFields))
347 $file = $folder->uploadFile(
350 'NAME' => $fileFields[
'name'],
351 'CREATED_BY' => $authorId
359 $filesList[] = FileUserType::NEW_FILE_PREFIX . $file->getId();
365 isset(
$params[
'UF_BLOG_POST_FILE'])
366 && is_array(
$params[
'UF_BLOG_POST_FILE'])
369 $filesList =
$params[
'UF_BLOG_POST_FILE'];
372 if (!empty($filesList))
378 'UF_BLOG_POST_FILE' => $filesList
390 'user_id' => $blog[
'OWNER_ID']
397 'allowVideo' => Option::get(
'blog',
'allow_video',
'Y'),
398 'PATH_TO_POST' => $pathToPost,
399 'user_id' => $authorId,
400 'NAME_TEMPLATE' => \CSite::getNameFormat(
null,
$siteId),
403 $logId = \CBlogPost::notify($postFields, $blog, $paramsNotify);
409 \CSocNetLog::update($logId, [
410 'EVENT_ID' => self::getBlogPostEventId([
411 'postId' =>
$post->getId()
414 'TAG' =>
$post->getTags(),
419 'TYPE' =>
'posts_last',
428 'TITLE' => $postFields[
'TITLE'],
429 'AUTHOR_ID' => $authorId
432 'postUrl' => $postUrl,
433 'socnetRights' => ($logId ?
LogRight::get($logId) : $postFields[
'SOCNET_RIGHTS']),
434 'socnetRightsOld' => [],
435 'mentionListOld' => [],
436 'mentionList' => $mentionList
441 && !empty($postFields[
'SOCNET_RIGHTS'])
444 \CBlogPost::notifyImReady([
447 'TITLE' => $postFields[
'TITLE'],
448 'POST_URL' => $postUrl,
449 'FROM_USER_ID' => $authorId,
450 'TO_SOCNET_RIGHTS' => $postFields[
'SOCNET_RIGHTS']
453 $resultFields[
'WARNING_MESSAGE_PUBLIC'] = Loc::getMessage(
'SOCIALNETWORK_ITEM_HELPER_MODERATION_WARNING');
456 foreach ($postFields[
'SOCNET_RIGHTS'] as $destination)
458 if (preg_match(
'/^SG(\d+)/i', $destination,
$matches))
460 \CSocNetGroup::setLastActivity(
$matches[1]);
471 $postId = (int) (
$params[
'POST_ID'] ??
null);
475 $APPLICATION->throwException(
'Wrong post ID',
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_UPDATE_ERROR');
479 if (!Loader::includeModule(
'blog'))
481 $APPLICATION->throwException(Loc::getMessage(
'SOCIALNETWORK_ITEM_HELPER_BLOG_MODULE_NOT_INSTALLED'),
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_UPDATE_ERROR');
500 $currentUserPerm = self::getBlogPostPerm([
501 'USER_ID' => $currentUserId,
505 if ($currentUserPerm <= Permissions::WRITE)
507 $APPLICATION->throwException(
'No write perms',
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_UPDATE_ERROR');
511 $postFields = Post::getById($postId)->getFields();
512 if (empty($postFields))
514 $APPLICATION->throwException(
'No post found',
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_UPDATE_ERROR');
518 $blog = Blog::getByUser([
519 'GROUP_ID' => Option::get(
'socialnetwork',
'userbloggroup_id',
false,
$siteId),
521 'USER_ID' => $postFields[
'AUTHOR_ID']
526 $APPLICATION->throwException(
'No blog found',
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_UPDATE_ERROR');
531 'PUBLISH_STATUS' => $postFields[
'PUBLISH_STATUS']
534 $updateFields[
'TITLE'] =
'';
535 $updateFields[
'MICRO'] =
'N';
537 if (isset(
$params[
'POST_TITLE']))
539 $updateFields[
'TITLE'] =
$params[
'POST_TITLE'];
543 (
string)$updateFields[
'TITLE'] ===
''
544 && isset(
$params[
'POST_MESSAGE'])
547 $updateFields[
'MICRO'] =
'Y';
549 $updateFields[
'TITLE'] = trim($updateFields[
'TITLE'],
" \t\n\r\0\x0B\xA0");
552 if ((
$params[
'POST_MESSAGE'] ??
'') <>
'')
554 $updateFields[
'DETAIL_TEXT'] =
$params[
'POST_MESSAGE'];
560 ModuleManager::isModuleInstalled(
'mail')
561 && ModuleManager::isModuleInstalled(
'intranet')
563 !Loader::includeModule(
'bitrix24')
564 || \CBitrix24::isEmailConfirmed()
568 $destinationList =
$params[
'DEST'];
570 $params[
'DEST'] = array_unique($destinationList);
574 'ERROR_MESSAGE' =>
false,
575 'PUBLISH_STATUS' => $updateFields[
'PUBLISH_STATUS']
581 'AUTHOR_ID' => $postFields[
'AUTHOR_ID'],
582 'MOBILE' => (
$params[
'MOBILE'] ??
'N'),
585 if ($resultFields[
'ERROR_MESSAGE_PUBLIC'] ??
null)
590 if ($resultFields[
'ERROR_MESSAGE'])
592 $APPLICATION->throwException($resultFields[
'ERROR_MESSAGE'],
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_UPDATE_ERROR');
596 $updateFields[
'PUBLISH_STATUS'] = $resultFields[
'PUBLISH_STATUS'];
599 if (isset(
$params[
'IMPORTANT']))
601 if (
$params[
'IMPORTANT'] ===
'Y')
603 $updateFields[
'UF_BLOG_POST_IMPRTNT'] =
true;
605 if (!empty(
$params[
'IMPORTANT_DATE_END']))
607 $endDate = \CRestUtil::unConvertDate(
$params[
'IMPORTANT_DATE_END']);
616 $updateFields[
'UF_BLOG_POST_IMPRTNT'] =
false;
617 $updateFields[
'UF_IMPRTANT_DATE_END'] =
false;
622 'blogId' => $blog[
'ID'],
623 'tags' =>
$params[
'TAGS'] ??
'',
627 'blogCategoryIdList' => $categoryIdListFromPostData,
628 'postFields' => $postFields,
629 'blogId' => $blog[
'ID'],
631 $categoryIdList = array_merge($categoryIdListFromPostData, $newCategoryIdList);
632 if (!empty($categoryIdList))
634 \CBlogPostCategory::deleteByPostID($postId);
635 foreach ($categoryIdList as $categoryId)
637 \CBlogPostCategory::add([
638 'BLOG_ID' => $postFields[
'BLOG_ID'],
639 'POST_ID' => $postId,
640 'CATEGORY_ID' => $categoryId
644 $updateFields[
'CATEGORY_ID'] = implode(
',', $categoryIdList);
645 $updateFields[
'HAS_TAGS'] =
'Y';
648 if (isset(
$params[
'GRATITUDE_MEDAL']))
651 !empty(
$params[
'GRATITUDE_MEDAL'])
652 && isset(
$params[
'GRATITUDE_EMPLOYEES'])
656 'medal' =>
$params[
'GRATITUDE_MEDAL'],
657 'employees' =>
$params[
'GRATITUDE_EMPLOYEES']
659 if ($gratitudeElementId)
661 $updateFields[
'UF_GRATITUDE'] = $gratitudeElementId;
662 $updateFields[
'HAS_PROPS'] =
'Y';
667 $updateFields[
'UF_GRATITUDE'] =
false;
671 if (isset(
$params[
'UF_BLOG_POST_VOTE']))
674 !empty(
$params[
'UF_BLOG_POST_VOTE'])
675 && !empty(
$params[
'UF_BLOG_POST_VOTE_' .
$params[
'UF_BLOG_POST_VOTE'] .
'_DATA'])
678 $updateFields[
'UF_BLOG_POST_VOTE'] =
$params[
'UF_BLOG_POST_VOTE'];
679 $GLOBALS[
'UF_BLOG_POST_VOTE_' .
$params[
'UF_BLOG_POST_VOTE'] .
'_DATA'] =
$params[
'UF_BLOG_POST_VOTE_' .
$params[
'UF_BLOG_POST_VOTE'] .
'_DATA'];
680 $updateFields[
'HAS_PROPS'] =
'Y';
684 $updateFields[
'UF_BLOG_POST_VOTE'] =
false;
688 if (isset(
$params[
'BACKGROUND_CODE']))
690 $updateFields[
'BACKGROUND_CODE'] = (!empty(
$params[
'BACKGROUND_CODE']) ?
$params[
'BACKGROUND_CODE'] :
false);
694 isset(
$params[
'PARSE_PREVIEW'])
695 &&
$params[
'PARSE_PREVIEW'] ===
'Y'
696 && !empty($updateFields[
'DETAIL_TEXT'])
700 $updateFields[
'UF_BLOG_POST_URL_PRV'] = $urlPreviewValue;
701 $updateFields[
'HAS_PROPS'] =
'Y';
704 if (
$result = \CBlogPost::update($postId, $updateFields))
707 Option::get(
'disk',
'successfully_converted',
false)
708 && Loader::includeModule(
'disk')
709 && (
$storage = \
Bitrix\
Disk\Driver::getInstance()->getStorageByUserId($postFields[
'AUTHOR_ID']))
710 && ($folder =
$storage->getFolderForUploadedFiles())
715 $needToDelete =
false;
720 || !empty(
$params[
'UF_BLOG_POST_FILE'])
722 && $scope === Controller::SCOPE_REST
727 !empty($postUF[
'UF_BLOG_POST_FILE'])
728 && !empty($postUF[
'UF_BLOG_POST_FILE'][
'VALUE'])
731 $filesList = array_merge($filesList, $postUF[
'UF_BLOG_POST_FILE'][
'VALUE']);
740 && in_array(
$key, $filesList)
743 foreach ($filesList as
$i => $v)
747 unset($filesList[
$i]);
748 $needToDelete =
true;
754 $fileFields = \CRestUtil::saveFile($fileData);
756 if (is_array($fileFields))
758 $file = $folder->uploadFile(
761 'NAME' => $fileFields[
'name'],
762 'CREATED_BY' => $postFields[
'AUTHOR_ID']
770 $filesList[] = FileUserType::NEW_FILE_PREFIX . $file->getId();
777 isset(
$params[
'UF_BLOG_POST_FILE'])
778 && is_array(
$params[
'UF_BLOG_POST_FILE'])
783 &&
$params[
'UF_BLOG_POST_FILE'][0] ===
'empty'
787 $needToDelete =
true;
791 $filesList = array_unique(array_merge($filesList, array_map(
static function($value) {
793 preg_match(
'/^' . FileUserType::NEW_FILE_PREFIX .
'(\d+)$/i', $value)
797 },
$params[
'UF_BLOG_POST_FILE'])));
802 !empty(
$params[
'UF_BLOG_POST_FILE'])
803 && $scope === Controller::SCOPE_AJAX
806 $filesList = array_unique(array_merge($filesList, array_map(
static function($value) {
808 preg_match(
'/^' . FileUserType::NEW_FILE_PREFIX .
'(\d+)$/i', $value)
812 },
$params[
'UF_BLOG_POST_FILE'])));
820 \CBlogPost::update($postId, [
822 'UF_BLOG_POST_FILE' => $filesList
832 'TYPE' =>
'post_general',
836 'TYPE' =>
'posts_popular',
840 $updateFields[
'AUTHOR_ID'] = $postFields[
'AUTHOR_ID'];
846 \CBlogPost::deleteLog($postId);
850 \CBlogPost::updateLog($postId, $updateFields, $blog, [
851 'allowVideo' => Option::get(
'blog',
'allow_video',
'Y'),
852 'PATH_TO_SMILE' =>
false
859 &&
$params[
'IMPORTANT'] ===
'Y'
862 \CBlogUserOptions::setOption(
$result,
'BLOG_POST_IMPRTNT',
'Y', $currentUserId);
864 if (defined(
'BX_COMP_MANAGED_CACHE'))
887 $postId = (int)
$params[
'POST_ID'];
894 if (!Loader::includeModule(
'blog'))
896 throw new LoaderException(Loc::getMessage(
'SOCIALNETWORK_ITEM_HELPER_BLOG_MODULE_NOT_INSTALLED'));
914 $currentUserPerm = self::getBlogPostPerm([
915 'USER_ID' => $currentUserId,
919 if ($currentUserPerm < Permissions::FULL)
927 'TYPE' =>
'posts_popular',
932 'POST_ID' => $postId,
935 'TYPE' =>
'post_general',
936 'POST_ID' => $postId,
939 'TYPE' =>
'posts_last_blog',
944 if (!\CBlogPost::delete($postId))
946 throw new SystemException(Loc::getMessage(
'SOCIALNETWORK_ITEM_HELPER_DELETE_ERROR'));
949 $sonetGroupId = (int)(
$params[
'ACTIVITY_SONET_GROUP_ID'] ?? 0);
950 if ($sonetGroupId > 0)
952 \CSocNetGroup::setLastActivity($sonetGroupId);
962 if (!Loader::includeModule(
'blog'))
964 $APPLICATION->throwException(Loc::getMessage(
'SOCIALNETWORK_ITEM_HELPER_BLOG_MODULE_NOT_INSTALLED'),
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_ERROR');
973 : (int)
$USER->getId()
976 $postId = (int)(
$params[
'POST_ID'] ?? 0);
979 $APPLICATION->throwException(
'Wrong post ID',
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_ERROR');
984 \CSocNetUser::isUserModuleAdmin($currentUserId,
SITE_ID)
985 || \CMain::getGroupRight(
'blog') >=
'W'
988 return Permissions::FULL;
991 $postItem = Post::getById($postId);
992 $postFields = $postItem->getFields();
994 if ((
int)$postFields[
'AUTHOR_ID'] === $currentUserId)
1000 $permsResult = $postItem->getSonetPerms([
1001 'CHECK_FULL_PERMS' =>
true
1003 $result = $permsResult[
'PERM'];
1006 && $permsResult[
'READ_BY_OSG']
1019 $tzOffset = \CTimeZone::getOffset();
1021 $cacheTtl = 2592000;
1022 $cacheId =
'blog_post_socnet_general_' . $postId .
'_' . LANGUAGE_ID.($tzOffset <> 0 ?
'_' . $tzOffset :
'') .
'_' . \
Bitrix\
Main\Context::getCurrent()->getCulture()->getDateTimeFormat() .
'_rest';
1024 'TYPE' =>
'post_general',
1025 'POST_ID' => $postId
1028 if (!Loader::includeModule(
'blog'))
1030 $APPLICATION->throwException(Loc::getMessage(
'SOCIALNETWORK_ITEM_HELPER_BLOG_MODULE_NOT_INSTALLED'),
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_MODULE_ERROR');
1034 $cache = new \CPHPCache;
1035 if ($cache->initCache($cacheTtl, $cacheId, $cacheDir))
1037 $postFields = $cache->getVars();
1038 $postItem =
new Post;
1043 $cache->startDataCache();
1044 $postItem = Post::getById($postId);
1045 $postFields = $postItem->getFields();
1046 $cache->endDataCache($postFields);
1056 if (!Loader::includeModule(
'blog'))
1058 throw new SystemException(Loc::getMessage(
'SOCIALNETWORK_ITEM_HELPER_BLOG_MODULE_NOT_INSTALLED'),
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_MODULE_BLOG_NOT_INSTALLED');
1064 throw new SystemException(
'Empty post ID',
'SONET_CONTROLLER_LIVEFEED_BLOGPOST_EMPTY_POST_ID');
1071 isset($postUserFields[
'UF_BLOG_POST_IMPRTNT'][
'VALUE'])
1072 && (
int)$postUserFields[
'UF_BLOG_POST_IMPRTNT'][
'VALUE'] > 0
1078 isset($postUserFields[
'UF_BLOG_POST_VOTE'][
'VALUE'])
1079 && (
int)$postUserFields[
'UF_BLOG_POST_VOTE'][
'VALUE'] > 0
1085 isset($postUserFields[
'UF_GRATITUDE'][
'VALUE'])
1086 && (
int)$postUserFields[
'UF_GRATITUDE'][
'VALUE'] > 0
const BLOG_PUBLISH_STATUS_DRAFT
const BLOG_PUBLISH_STATUS_READY
const BLOG_PUBLISH_STATUS_PUBLISH
const EVENT_ID_POST_IMPORTANT
setFields($fields=array())
static getConnection($name="")
static convertRights($rights, $excludeCodes=[])
static merge(array $data)
static createFromUserTime($timeString)
static parseTagsFromFields(array $params=[])
static getTagsFromPostData(array $params=[])
static convertBlogPostPermToDestinationList($params, &$resultFields)
static notifyBlogPostCreated($params=array())
static getBlogPostCacheDir($params=array())
static checkBlogPostDestinationList($params, &$resultFields)
static getUrlPreviewValue($text, $html=true)
static processBlogPostNewMailUser(&$HTTPPost, &$componentResult)
static getSonetBlogGroupIdList($params)
static getBlogPostSocNetPerms($params=array())
static processBlogPostNewMailUserDestinations(&$destinationList)
static create(array $params=[])
static getUserIds(string $text='')
static get(string $key='', $siteId=SITE_ID)
static updateBlogPost($params=[], $scope=Controller::SCOPE_AJAX, &$resultFields=[])
static addBlogPost($params, $scope=Controller::SCOPE_AJAX, &$resultFields=[])
static getBlogPostEventId(array $params=[])
static getBlogPostFields($postId)
static deleteBlogPost(array $params=[])
static getBlogPostPerm(array $params=[])
static DeleteLog($postID, $bMicroblog=false)
static makeComponentPath($componentName)
static makePathFromTemplate($template, $arParams=array())
static killAllTags($text)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
global $USER_FIELD_MANAGER
BXClearCache($full=false, $initdir='')
$GLOBALS['____1690880296']
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
if(empty($decryptedData)) $storage
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']