%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.blog.post.edit/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.blog.post.edit/component.php |
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var CBitrixComponent $this */
/** @var array $arParams */
/** @var array $arResult */
/** @var string $componentPath */
/** @var string $componentName */
/** @var string $componentTemplate */
/** @global CDatabase $DB */
/** @global CUser $USER */
/** @global CMain $APPLICATION */
/** @global CCacheManager $CACHE_MANAGER */
/** @global CUserTypeManager $USER_FIELD_MANAGER */
use Bitrix\Main\ModuleManager;
use Bitrix\Main\Loader;
use Bitrix\Socialnetwork\ComponentHelper;
global $CACHE_MANAGER, $USER_FIELD_MANAGER;
if (!Loader::includeModule("blog"))
{
ShowError(GetMessage("BLOG_MODULE_NOT_INSTALL"));
return false;
}
if (!Loader::includeModule("socialnetwork"))
{
return false;
}
$feature = "blog";
$arParams["SOCNET_GROUP_ID"] = IntVal($arParams["SOCNET_GROUP_ID"]);
$arResult["bExtranetUser"] = (Loader::includeModule("extranet") && !CExtranet::IsIntranetUser());
$arResult["bExtranetSite"] = (Loader::includeModule("extranet") && CExtranet::IsExtranetSite());
$arResult["ERROR_MESSAGE"] = "";
$arParams["ID"] = IntVal($arParams["ID"]);
$arParams["LAZY_LOAD"] = 'Y';
$arResult["SHOW_FULL_FORM"] = (
(
!empty($_POST)
&& (
!isset($_POST["TYPE"])
|| $_POST["TYPE"] != "AUTH"
)
)
|| $arParams["ID"] > 0
|| !empty($_REQUEST["WFILES"])
|| !empty($_REQUEST["bp_setting"])
);
$arResult["ALLOW_EMAIL_INVITATION"] = (
ModuleManager::isModuleInstalled('mail')
&& ModuleManager::isModuleInstalled('intranet')
&& (
!Loader::includeModule('bitrix24')
|| \CBitrix24::isEmailConfirmed()
)
);
$bCalendar = true;
if (!ModuleManager::isModuleInstalled('intranet')) // Disable calendar feature for non cp
{
$bCalendar = false;
}
if ($bCalendar && $arResult["bExtranetUser"]) // Disable calendar feature for extranet users
{
$bCalendar = false;
}
if(IntVal($arParams["SOCNET_GROUP_ID"]) > 0)
{
$bCalendar = false;
}
elseif (
!CSocNetFeaturesPerms::CurrentUserCanPerformOperation(
SONET_ENTITY_USER,
$USER->getId(),
"calendar",
"view"
)
)
{
$bCalendar = false;
}
$arParams["B_CALENDAR"] = $bCalendar;
$arResult["bGroupMode"] = false;
if (
IntVal($arParams["SOCNET_GROUP_ID"]) > 0
|| IntVal($arParams["USER_ID"]) > 0
)
{
$arResult["bGroupMode"] = (IntVal($arParams["SOCNET_GROUP_ID"]) > 0);
if($arResult["bGroupMode"])
{
if($arGroupSoNet = CSocNetGroup::GetByID($arParams["SOCNET_GROUP_ID"]))
{
if(!CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], $feature))
{
ShowError(GetMessage("BLOG_SONET_GROUP_MODULE_NOT_AVAIBLE"));
return false;
}
}
else
{
return false;
}
}
}
if (!is_array($arParams["GROUP_ID"]))
{
$arParams["GROUP_ID"] = array($arParams["GROUP_ID"]);
}
foreach ($arParams["GROUP_ID"] as $k=>$v)
{
if (IntVal($v) <= 0)
{
unset($arParams["GROUP_ID"][$k]);
}
}
if (empty($arParams["GROUP_ID"]))
{
$tmpVal = COption::GetOptionString("socialnetwork", "sonet_blog_group", false, SITE_ID);
if ($tmpVal)
{
$arTmpVal = unserialize($tmpVal);
if (is_array($arTmpVal))
{
$arParams["GROUP_ID"] = $arTmpVal;
}
elseif(intval($tmpVal) > 0)
{
$arParams["GROUP_ID"] = array($arTmpVal);
}
}
}
else
{
$tmpVal = COption::GetOptionString("socialnetwork", "sonet_blog_group", false, SITE_ID);
if (!$tmpVal)
{
COption::SetOptionString("socialnetwork", "sonet_blog_group", serialize($arParams["GROUP_ID"]), false, SITE_ID);
}
}
if(strLen($arParams["BLOG_VAR"])<=0)
$arParams["BLOG_VAR"] = "blog";
if(strLen($arParams["PAGE_VAR"])<=0)
$arParams["PAGE_VAR"] = "page";
if(strLen($arParams["USER_VAR"])<=0)
$arParams["USER_VAR"] = "id";
if(strLen($arParams["POST_VAR"])<=0)
$arParams["POST_VAR"] = "id";
$applicationCurPage = $APPLICATION->GetCurPage();
$arParams["PATH_TO_BLOG"] = trim($arParams["PATH_TO_BLOG"]);
if(strlen($arParams["PATH_TO_BLOG"])<=0)
$arParams["PATH_TO_BLOG"] = htmlspecialcharsbx($applicationCurPage."?".$arParams["PAGE_VAR"]."=blog&".$arParams["BLOG_VAR"]."=#blog#");
$arParams["PATH_TO_BLOG"] = CHTTP::urlDeleteParams($arParams["PATH_TO_BLOG"], array("WFILES"));
$arParams["PATH_TO_POST"] = trim($arParams["PATH_TO_POST"]);
if(strlen($arParams["PATH_TO_POST"])<=0)
$arParams["PATH_TO_POST"] = htmlspecialcharsbx($applicationCurPage."?".$arParams["PAGE_VAR"]."=post&".$arParams["BLOG_VAR"]."=#blog#&".$arParams["POST_VAR"]."=#post_id#");
$arParams["PATH_TO_POST_EDIT"] = trim($arParams["PATH_TO_POST_EDIT"]);
if(strlen($arParams["PATH_TO_POST_EDIT"])<=0)
$arParams["PATH_TO_POST_EDIT"] = htmlspecialcharsbx($applicationCurPage."?".$arParams["PAGE_VAR"]."=post_edit&".$arParams["BLOG_VAR"]."=#blog#&".$arParams["POST_VAR"]."=#post_id#");
$arParams["PATH_TO_USER"] = trim($arParams["PATH_TO_USER"]);
if(strlen($arParams["PATH_TO_USER"])<=0)
$arParams["PATH_TO_USER"] = htmlspecialcharsbx($applicationCurPage."?".$arParams["PAGE_VAR"]."=user&".$arParams["USER_VAR"]."=#user_id#");
$arParams["PATH_TO_DRAFT"] = trim($arParams["PATH_TO_DRAFT"]);
if(strlen($arParams["PATH_TO_DRAFT"])<=0)
$arParams["PATH_TO_DRAFT"] = htmlspecialcharsbx($applicationCurPage."?".$arParams["PAGE_VAR"]."=draft&".$arParams["BLOG_VAR"]."=#blog#");
$arParams["PATH_TO_GROUP_BLOG"] = trim($arParams["PATH_TO_GROUP_BLOG"]);
if(strlen($arParams["PATH_TO_GROUP_BLOG"])<=0)
$arParams["PATH_TO_GROUP_BLOG"] = "/workgroups/group/#group_id#/blog/";
if(strlen($arParams["PATH_TO_GROUP_POST"])<=0)
$arParams["PATH_TO_GROUP_POST"] = "/workgroups/group/#group_id#/blog/#post_id#/";
if(strlen($arParams["PATH_TO_GROUP_POST_EDIT"])<=0)
$arParams["PATH_TO_GROUP_POST_EDIT"] = "/workgroups/group/#group_id#/blog/edit/#post_id#/";
if(strlen($arParams["PATH_TO_GROUP_DRAFT"])<=0)
$arParams["PATH_TO_GROUP_DRAFT"] = "/workgroups/group/#group_id#/blog/draft/";
$arParams["PATH_TO_SMILE"] = strlen(trim($arParams["PATH_TO_SMILE"]))<=0 ? false : trim($arParams["PATH_TO_SMILE"]);
$arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]);
$arParams["USE_CUT"] = ($arParams["USE_CUT"] == "Y") ? "Y" : "N";
$arParams["EDITOR_RESIZABLE"] = $arParams["EDITOR_RESIZABLE"] !== "N";
$arParams["EDITOR_CODE_DEFAULT"] = $arParams["EDITOR_CODE_DEFAULT"] === "Y";
$arParams["EDITOR_DEFAULT_HEIGHT"] = intVal($arParams["EDITOR_DEFAULT_HEIGHT"]);
if(IntVal($arParams["EDITOR_DEFAULT_HEIGHT"]) <= 0)
$arParams["EDITOR_DEFAULT_HEIGHT"] = '120px';
$user_id = $USER->GetID();
$arResult["UserID"] = $user_id;
$arResult["allowVideo"] = COption::GetOptionString("blog","allow_video", "Y");
$arParams["ALLOW_POST_CODE"] = $arParams["ALLOW_POST_CODE"] !== "N";
$arParams["USE_GOOGLE_CODE"] = $arParams["USE_GOOGLE_CODE"] === "Y";
$arParams["IMAGE_MAX_WIDTH"] = 400;
$arParams["IMAGE_MAX_HEIGHT"] = 400;
$arParams["POST_PROPERTY_SOURCE"] = $arParams["POST_PROPERTY"] = (is_array($arParams["POST_PROPERTY"]) ? $arParams["POST_PROPERTY"] : array($arParams["POST_PROPERTY"]));
$arParams["POST_PROPERTY"][] = "UF_BLOG_POST_DOC";
$arParams["POST_PROPERTY"][] = "UF_BLOG_POST_IMPRTNT";
$arParams["POST_PROPERTY"][] = "UF_IMPRTANT_DATE_END";
if(
Loader::includeModule("webdav")
|| Loader::includeModule("disk")
)
{
$arParams["POST_PROPERTY"][] = "UF_BLOG_POST_FILE";
$arParams["POST_PROPERTY"][] = "UF_BLOG_POST_F_EDIT";
}
if (ModuleManager::isModuleInstalled("vote"))
{
$arParams["POST_PROPERTY"][] = "UF_BLOG_POST_VOTE";
}
$arParams["POST_PROPERTY"][] = "UF_BLOG_POST_URL_PRV";
$arResult['BLOG_POST_LISTS'] = (
Loader::includeModule("lists")
&& CLists::isFeatureEnabled()
&& !$arResult["bExtranetSite"]
&& !$arParams["SOCNET_GROUP_ID"]
&& ModuleManager::isModuleInstalled('intranet')
);
$arResult['BLOG_POST_TASKS'] = ModuleManager::isModuleInstalled("tasks");
if (
$arResult['BLOG_POST_TASKS']
&& !CSocNetFeaturesPerms::CurrentUserCanPerformOperation(
$arResult["bGroupMode"] ? SONET_ENTITY_GROUP : SONET_ENTITY_USER,
$arResult["bGroupMode"] ? $arParams["SOCNET_GROUP_ID"] : $USER->getId(),
"tasks",
"create_tasks"
)
)
{
$arResult['BLOG_POST_TASKS'] = false;
}
if (
$arResult['BLOG_POST_TASKS']
&& Loader::includeModule('bitrix24')
&& !\CBitrix24BusinessTools::isToolAvailable($USER->getId(), 'tasks')
)
{
$arResult['BLOG_POST_TASKS'] = false;
}
if (
$arResult['BLOG_POST_TASKS']
&& $arResult["bGroupMode"]
&& ($arUserActiveFeatures = CSocNetFeatures::GetActiveFeatures(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"]))
&& is_array($arUserActiveFeatures)
&& !in_array('tasks', $arUserActiveFeatures)
)
{
$arResult['BLOG_POST_TASKS'] = false;
}
$a = new CAccess;
$a->UpdateCodes();
$arResult["perms"] = BLOG_PERMS_DENY;
if($arResult["bGroupMode"])
{
if (
CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "full_post", CSocNetUser::IsCurrentUserModuleAdmin())
|| $APPLICATION->GetGroupRight("blog") >= "W"
)
{
$arResult["perms"] = BLOG_PERMS_FULL;
}
elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "moderate_post"))
{
$arResult["perms"] = BLOG_PERMS_MODERATE;
}
elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "write_post"))
{
$arResult["perms"] = BLOG_PERMS_WRITE;
}
elseif (CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"], "blog", "premoderate_post"))
{
$arResult["perms"] = BLOG_PERMS_PREMODERATE;
}
}
elseif (
$arParams["USER_ID"] == $user_id
|| $APPLICATION->GetGroupRight("blog") >= "W"
|| CSocNetFeaturesPerms::CanPerformOperation($user_id, SONET_ENTITY_USER, $arParams["USER_ID"], "blog", "full_post", CSocNetUser::IsCurrentUserModuleAdmin())
)
{
$arResult["perms"] = BLOG_PERMS_FULL;
}
$arBlog = \Bitrix\Blog\Item\Blog::getByUser(array(
"GROUP_ID" => $arParams["GROUP_ID"],
"SITE_ID" => SITE_ID,
"USER_ID" => $arParams["USER_ID"],
"USE_SOCNET" => "Y"
));
$arResult["Blog"] = $arBlog;
$arResult["urlToBlog"] = CComponentEngine::MakePathFromTemplate(
($arResult["bGroupMode"] ? $arParams["PATH_TO_GROUP_BLOG"] : $arParams["PATH_TO_BLOG"]),
array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"])
);
$arPostFields = $USER_FIELD_MANAGER->GetUserFields("BLOG_POST", $arParams["ID"], LANGUAGE_ID);
$arResult["POST_PROPERTIES"] = array("SHOW" => "N", "DATA" => array());
$arParams["CACHE_TIME"] = defined("BX_COMP_MANAGED_CACHE") ? 3600*24*365 : 3600*24;
$arResult["PostToShow"]["GRATS"] = array();
$arResult["PostToShow"]["GRATS_DEF"] = false;
$cache = new CPHPCache;
$cache_id = "blog_post_grats_".SITE_ID;
$cache_path = "/blog/form/post/new";
if ($arParams["CACHE_TIME"] > 0 && $cache->InitCache($arParams["CACHE_TIME"], $cache_id, $cache_path))
{
$Vars = $cache->GetVars();
$arResult["PostToShow"]["GRATS"] = $Vars["GRATS"];
$arResult["PostToShow"]["GRATS_DEF"] = $Vars["GRATS_DEF"];
$honour_iblock_id = $Vars["GRATS_IBLOCK_ID"];
}
else
{
$honour_iblock_id = 0;
$cache->StartDataCache();
if (
(
!empty($arParams["POST_PROPERTY"])
|| ModuleManager::isModuleInstalled("intranet")
)
&& !$arResult["bExtranetSite"]
&& Loader::includeModule("iblock")
)
{
$rsIBlock = CIBlock::GetList(array(), array("CODE" => "honour", "TYPE" => "structure"));
if ($arIBlock = $rsIBlock->Fetch())
{
$honour_iblock_id = $arIBlock["ID"];
if (defined("BX_COMP_MANAGED_CACHE"))
$CACHE_MANAGER->StartTagCache($cache_path);
$rsIBlockPropertyEnum = CIBlockPropertyEnum::GetList(
array(
"SORT" => "ASC",
"XML_ID" => "ASC"
),
array(
"CODE" => "GRATITUDE",
"IBLOCK_ID" => $arIBlock["ID"]
)
);
while($arIBlockPropertyEnum = $rsIBlockPropertyEnum->Fetch())
{
$arResult["PostToShow"]["GRATS"][] = $arIBlockPropertyEnum;
if ($arIBlockPropertyEnum["DEF"] == "Y")
$arResult["PostToShow"]["GRATS_DEF"] = $arIBlockPropertyEnum;
}
if(defined("BX_COMP_MANAGED_CACHE"))
$CACHE_MANAGER->EndTagCache();
}
}
$cache->EndDataCache(
array(
"GRATS" => $arResult["PostToShow"]["GRATS"],
"GRATS_DEF" => $arResult["PostToShow"]["GRATS_DEF"],
"GRATS_IBLOCK_ID" => $honour_iblock_id
)
);
}
if(
$arParams["ID"] > 0
&& $arPost = CBlogPost::GetByID($arParams["ID"])
)
{
$arPost = CBlogTools::htmlspecialcharsExArray($arPost);
$arPost['DETAIL_TEXT'] = preg_replace("/\[tag\](.+?)\[\/tag\]/is".BX_UTF_PCRE_MODIFIER, "\\1", $arPost['DETAIL_TEXT']);
$arPost['~DETAIL_TEXT'] = preg_replace("/\[tag\](.+?)\[\/tag\]/is".BX_UTF_PCRE_MODIFIER, "\\1", $arPost['~DETAIL_TEXT']);
$arResult["Post"] = $arPost;
if($arParams["SET_TITLE"]=="Y")
{
$APPLICATION->SetTitle(GetMessage("BLOG_POST_EDIT"));
}
if(
$arParams["USER_ID"] == $user_id
|| (
$_POST["apply"]
&& CSocNetUser::IsCurrentUserModuleAdmin(SITE_ID, false)
)
|| $APPLICATION->GetGroupRight("blog") >= "W"
)
{
$arResult["perms"] = BLOG_PERMS_FULL;
}
else
{
$arResult["perms"] = CBlogPost::GetSocNetPostPerms($arPost["ID"], true, false, $arPost["AUTHOR_ID"]);
}
// Get UF_GRATITUDE
if (
ModuleManager::isModuleInstalled("intranet")
&& Loader::includeModule("iblock")
&& isset($arPostFields["UF_GRATITUDE"])
&& is_array($arPostFields["UF_GRATITUDE"])
&& intval($arPostFields["UF_GRATITUDE"]["VALUE"]) > 0
)
{
if ($honour_iblock_id > 0)
{
$arGrat = array(
"ID" => false,
"USERS" => array(),
"USERS_FOR_JS" => array(),
"TYPE" => false
);
$rsElementProperty = CIBlockElement::GetProperty(
$honour_iblock_id,
$arPostFields["UF_GRATITUDE"]["VALUE"]
);
while ($arElementProperty = $rsElementProperty->Fetch())
{
if (!$arGrat["ID"])
$arGrat["ID"] = htmlspecialcharsbx($arPostFields["UF_GRATITUDE"]["VALUE"]);
if ($arElementProperty["CODE"] == "USERS")
$arGrat["USERS"][] = htmlspecialcharsbx($arElementProperty["VALUE"]);
elseif ($arElementProperty["CODE"] == "GRATITUDE")
$arGrat["TYPE"] = array(
"VALUE_ENUM" => $arElementProperty["VALUE_ENUM"],
"XML_ID" => $arElementProperty["VALUE_XML_ID"]
);
}
if ($arGrat["ID"])
{
$dbUsers = CUser::GetList(
($sort_by = Array('last_name'=>'asc', 'IS_ONLINE'=>'desc')),
($dummy=''),
array(
"ID" => implode("|", $arGrat["USERS"]),
array(
"FIELDS" => array("ID", "LAST_NAME", "NAME", "SECOND_NAME", "LOGIN", "PERSONAL_PHOTO", "WORK_POSITION", "PERSONAL_PROFESSION")
)
)
);
while($arGratUser = $dbUsers->Fetch())
{
$sName = trim(CUser::FormatName(empty($arParams["NAME_TEMPLATE"]) ? CSite::GetNameFormat(false) : $arParams["NAME_TEMPLATE"], $arGratUser));
$arGrat["USERS_FOR_JS"]["U".$arGratUser["ID"]] = array(
"id" => "U".$arGratUser["ID"],
"entityId" => $arGratUser["ID"],
"name" => $sName,
"avatar" => "",
"desc" => $arGratUser["WORK_POSITION"] ? $arGratUser["WORK_POSITION"] : ($arGratUser["PERSONAL_PROFESSION"] ? $arGratUser["PERSONAL_PROFESSION"] : " ")
);
}
$arResult["PostToShow"]["GRAT_CURRENT"] = $arGrat;
}
}
}
}
else
{
$arParams["ID"] = 0;
if($arParams["SET_TITLE"] == "Y")
{
$APPLICATION->SetTitle(GetMessage("BLOG_NEW_MESSAGE"));
}
}
if (IntVal($_GET["delete_blog_post_id"]) > 0 && $_GET["ajax_blog_post_delete"] == "Y")
{
if (check_bitrix_sessid())
{
$delId = IntVal($_GET["delete_blog_post_id"]);
if($arPost = CBlogPost::GetByID($delId))
{
$perms = (
$arPost["AUTHOR_ID"] == $user_id
? Bitrix\Blog\Item\Permissions::FULL
: CBlogPost::GetSocNetPostPerms($_GET["delete_blog_post_id"], true)
);
if (
$perms < Bitrix\Blog\Item\Permissions::FULL
&& (
CSocNetUser::isCurrentUserModuleAdmin()
|| $APPLICATION->getGroupRight("blog") >= "W"
)
)
{
$perms = Bitrix\Blog\Item\Permissions::FULL;
}
if($perms >= Bitrix\Blog\Item\Permissions::FULL)
{
CBlogPost::DeleteLog($delId);
BXClearCache(True, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'posts_popular',
'SITE_ID' => SITE_ID
)));
BXClearCache(true, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'post',
'POST_ID' => $delId
)));
BXClearCache(true, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'post_general',
'POST_ID' => $delId
)));
BXClearCache(true, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'posts_last_blog',
'SITE_ID' => SITE_ID
)));
BXClearCache(true, CComponentEngine::MakeComponentPath("bitrix:socialnetwork.blog.blog"));
if (!CBlogPost::Delete($delId))
{
$arResult["ERROR_MESSAGE"] .= GetMessage("BLOG_BLOG_BLOG_MES_DEL_ERROR");
}
else
{
$arResult["OK_MESSAGE"] .= GetMessage("BLOG_BLOG_BLOG_MES_DEL_OK");
}
}
else
{
$arResult["ERROR_MESSAGE"] .= GetMessage("BLOG_BLOG_BLOG_MES_DEL_NO_RIGHTS");
}
}
else
{
$arResult["ERROR_MESSAGE"] .= GetMessage("BLOG_BLOG_BLOG_MES_DEL_ERROR");
}
}
else
{
$arResult["ERROR_MESSAGE"] .= GetMessage("BLOG_BLOG_SESSID_WRONG");
}
$arResult["delete_blog_post"] = "Y";
$this->IncludeComponentTemplate();
return true;
}
/*if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_REQUEST['mfi_mode']) && ($_REQUEST['mfi_mode'] == "upload"))
{
CBlogImage::AddImageResizeHandler(array(
'width' => $arParams["IMAGE_MAX_WIDTH"],
'height' => $arParams["IMAGE_MAX_HEIGHT"]
));
}*/
$isPostBeingEdited = $arParams["ID"] > 0;
if ($isPostBeingEdited)
{
$periodsOfShowingImportantPost = ["ALWAYS", "CUSTOM"];
}
else
{
$periodsOfShowingImportantPost = ["ALWAYS", "ONE_DAY", "TWO_DAYS", "WEEK", "MONTH", "CUSTOM"];
}
$arResult["REMAIN_IMPORTANT_TILL"] = [];
foreach ($periodsOfShowingImportantPost as $period)
{
$attributesForPopupList = [
"VALUE" => $period,
"TEXT_KEY" => ("IMPORTANT_FOR_$period"),
];
$arResult["REMAIN_IMPORTANT_TILL"][] = $attributesForPopupList;
}
if (
(
$arParams["ID"] == 0
&& $arResult["perms"] >= BLOG_PERMS_PREMODERATE
)
|| (
$arParams["ID"] > 0
&& $arResult["perms"] >= BLOG_PERMS_FULL
&& $arPost["BLOG_ID"] == $arBlog["ID"]
)
)
{
$arP = Array();
if (
IntVal($arParams["ID"]) > 0
&& $arPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_READY
&& $arPost["AUTHOR_ID"] == $user_id
)
{
$arResult["OK_MESSAGE"] = GetMessage("BPE_HIDDEN_POSTED");
}
$bAllowToAll = ComponentHelper::getAllowToAllDestination();
$bDefaultToAll = (
$bAllowToAll
? (COption::GetOptionString("socialnetwork", "default_livefeed_toall", "Y") == "Y")
: false
);
if (
($_POST["apply"] || $_POST["save"] || $_POST["do_upload"] || $_POST["draft"])
&& (!isset($_POST["changePostFormTab"]) || $_POST["changePostFormTab"] != 'tasks')
)
{
if(check_bitrix_sessid())
{
if ($_POST["decode"] == "Y")
{
CUtil::JSPostUnescape();
}
if (
empty($arBlog)
&& !empty($arParams["GROUP_ID"])
)
{
$arBlog = ComponentHelper::createUserBlog(array(
"BLOG_GROUP_ID" => (is_array($arParams["GROUP_ID"])) ? IntVal($arParams["GROUP_ID"][0]) : IntVal($arParams["GROUP_ID"]),
"USER_ID" => $arParams["USER_ID"],
"SITE_ID" => SITE_ID,
"PATH_TO_BLOG" => $arParams["PATH_TO_BLOG"]
));
if (!$arBlog)
{
$arResult["ERROR_MESSAGE"] .= GetMessage("B_B_MES_NO_BLOG");
}
}
}
else
{
$arResult["ERROR_MESSAGE"] .= GetMessage("BPE_SESS");
}
}
if (
$_GET["image_upload_frame"] == "Y"
|| $_GET["image_upload"]
|| $_POST["do_upload"]
|| $_GET["del_image_id"]
)
{
if (check_bitrix_sessid())
{
if(IntVal($_GET["del_image_id"]) > 0)
{
$del_image_id = IntVal($_GET["del_image_id"]);
$aImg = CBlogImage::GetByID($del_image_id);
if (
$aImg["BLOG_ID"] == $arBlog["ID"]
&& $aImg["POST_ID"] == IntVal($arParams["ID"])
)
{
CBlogImage::Delete($del_image_id);
}
$APPLICATION->RestartBuffer();
die();
}
else
{
$arResult["imageUploadFrame"] = "Y";
$arResult["imageUpload"] = "Y";
$APPLICATION->RestartBuffer();
header("Pragma: no-cache");
$arFields = Array();
if ($_FILES["BLOG_UPLOAD_FILE"]["size"] > 0)
{
$arFields = array(
"BLOG_ID" => $arBlog["ID"],
"POST_ID" => $arParams["ID"],
"USER_ID" => $arResult["UserID"],
"=TIMESTAMP_X" => $DB->GetNowFunction(),
"TITLE" => $_POST["IMAGE_TITLE"],
"IMAGE_SIZE" => $_FILES["BLOG_UPLOAD_FILE"]["size"]
);
$arImage=array_merge(
$_FILES["BLOG_UPLOAD_FILE"],
array(
"MODULE_ID" => "blog",
"del" => "Y"
)
);
$arFields["FILE_ID"] = $arImage;
}
elseif ($_POST["do_upload"] && $_FILES["FILE_ID"]["size"] > 0)
{
$arFields = array(
"BLOG_ID" => $arBlog["ID"],
"POST_ID" => $arParams["ID"],
"USER_ID" => $arResult["UserID"],
"=TIMESTAMP_X" => $DB->GetNowFunction(),
"TITLE" => $_POST["IMAGE_TITLE"],
"IMAGE_SIZE" => $_FILES["FILE_ID"]["size"],
"URL" => $arBlog["URL"],
);
$arImage=array_merge(
$_FILES["FILE_ID"],
array(
"MODULE_ID" => "blog",
"del" => "Y"
)
);
$arFields["FILE_ID"] = $arImage;
}
if(!empty($arFields))
{
if ($imgID = CBlogImage::Add($arFields))
{
$aImg = CBlogImage::GetByID($imgID);
$aImg = CBlogTools::htmlspecialcharsExArray($aImg);
$aImgNew = CFile::ResizeImageGet(
$aImg["FILE_ID"],
array("width" => 90, "height" => 90),
BX_RESIZE_IMAGE_EXACT,
true
);
$aImg["source"] = CFile::ResizeImageGet(
$aImg["FILE_ID"],
array("width" => $arParams["IMAGE_MAX_WIDTH"], "height" => $arParams["IMAGE_MAX_HEIGHT"]),
BX_RESIZE_IMAGE_PROPORTIONAL,
true
);
$aImg["params"] = CFile::_GetImgParams($aImg["FILE_ID"]);
$aImg["fileName"] = substr($aImgNew["src"], strrpos($aImgNew["src"], "/")+1);
$file = "<img src=\"".$aImgNew["src"]."\" width=\"".$aImgNew["width"]."\" height=\"".$aImgNew["height"]."\" id=\"".$aImg["ID"]."\" border=\"0\" style=\"cursor:pointer\" onclick=\"InsertBlogImage_LHEPostFormId_blogPostForm('".$aImg["ID"]."', '".$aImg["source"]['src']."', '".$aImgNew["source"]['width']."');\" title=\"".GetMessage("BLOG_P_INSERT")."\">";
$file = str_replace("'","\'",$file);
$file = str_replace("\r"," ",$file);
$file = str_replace("\n"," ",$file);
$arResult["ImageModified"] = $file;
$arResult["Image"] = $aImg;
}
elseif ($ex = $APPLICATION->GetException())
{
$arResult["ERROR_MESSAGE"] .= $ex->GetString();
}
}
}
}
}
else
{
// Save calendar event from Socialnetwork live feed form
if (
$_POST["save"] == "Y"
&& $_POST["changePostFormTab"] == "calendar"
&& check_bitrix_sessid()
)
{
if (isset($_POST['EVENT_PERM']))
{
$arAccessCodes = array();
foreach($_POST["EVENT_PERM"] as $v => $k)
{
if(strlen($v) > 0 && is_array($k) && !empty($k))
{
foreach($k as $vv)
{
if(strlen($vv) > 0)
{
$arAccessCodes[] = $vv;
}
}
}
}
}
$rrule = $_POST['EVENT_RRULE'];
if ($_POST['rrule_endson'] == 'never')
{
unset($rrule['COUNT']);
unset($rrule['UNTIL']);
}
elseif ($_POST['rrule_endson'] == 'count')
{
unset($rrule['UNTIL']);
}
elseif ($_POST['rrule_endson'] == 'until')
{
unset($rrule['COUNT']);
}
$arFields = array(
"ID" => intVal($_POST['EVENT_ID']),
"DT_FROM_TS" => $_POST['EVENT_FROM_TS'], // For calendar < 16.x.x
"DT_TO_TS" => $_POST['EVENT_TO_TS'], // For calendar < 16.x.x
"DATE_FROM" => $_POST['DATE_FROM'],
"DATE_TO" => $_POST['DATE_TO'],
"TIME_FROM" => $_POST['TIME_FROM'],
"TIME_TO" => $_POST['TIME_TO'],
"TZ_FROM" => $_POST['TZ_FROM'],
"TZ_TO" => $_POST['TZ_TO'],
"DEFAULT_TZ" => $_POST['DEFAULT_TZ'],
"SKIP_TIME" => $_POST['EVENT_FULL_DAY'] == 'Y',
'NAME' => trim($_POST['EVENT_NAME']),
'DESCRIPTION' => trim($_POST['EVENT_DESCRIPTION']),
'SECTION' => intVal($_POST['EVENT_SECTION']),
'ACCESSIBILITY' => $_POST['EVENT_ACCESSIBILITY'],
'IMPORTANCE' => $_POST['EVENT_IMPORTANCE'],
'RRULE' => $rrule,
'LOCATION' => $_POST['EVENT_LOCATION'],
"REMIND" => isset($_POST['EVENT_REMIND']) ? array(0 => array('count' => $_POST['EVENT_REMIND_COUNT'], 'type' => $_POST['EVENT_REMIND_TYPE'])) : null
);
// Userfields for event
$arUFFields = array();
foreach ($_POST as $field => $value)
{
if (substr($field, 0, 3) == "UF_")
{
$arUFFields[$field] = $value;
}
}
CCalendarLiveFeed::EditCalendarEventEntry($arFields, $arUFFields, $arAccessCodes, array(
'type' => 'user',
'userId' => $arBlog["OWNER_ID"]
));
$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("user_id" => $arBlog["OWNER_ID"]));
LocalRedirect($redirectUrl);
}
if (
$_POST["save"] == "Y"
&& $_POST["changePostFormTab"] == "lists"
&& check_bitrix_sessid()
)
{
$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("user_id" => $arBlog["OWNER_ID"]));
LocalRedirect($redirectUrl);
}
if (
(
$_POST["apply"]
|| $_POST["save"]
|| $_POST["draft"]
)
&& empty($_POST["reset"])
&& (!isset($_POST["changePostFormTab"]) || $_POST["changePostFormTab"] != 'tasks')
) // Save on button click
{
if (check_bitrix_sessid())
{
if(strlen($arResult["ERROR_MESSAGE"]) <= 0)
{
$DB->StartTransaction();
$CATEGORYtmp = array();
if(!empty($_POST["TAGS"]))
{
$dbCategory = CBlogCategory::GetList(Array(), Array("BLOG_ID" => $arBlog["ID"]));
while($arCategory = $dbCategory->Fetch())
{
$arCatBlog[ToLower($arCategory["NAME"])] = $arCategory["ID"];
}
$tags = explode (",", $_POST["TAGS"]);
foreach($tags as $tg)
{
$tg = trim($tg);
if(
!in_array($arCatBlog[ToLower($tg)], $CATEGORYtmp)
&& strlen($tg) > 0
)
{
$CATEGORYtmp[] = (
IntVal($arCatBlog[ToLower($tg)]) > 0
? $arCatBlog[ToLower($tg)]
: CBlogCategory::Add(array("BLOG_ID" => $arBlog["ID"], "NAME" => $tg))
);
$tagList[] = $tg;
}
}
}
elseif (!empty($_POST["CATEGORY_ID"]))
{
foreach($_POST["CATEGORY_ID"] as $v)
{
if(substr($v, 0, 4) == "new_")
{
$CATEGORYtmp[] = CBlogCategory::Add(array("BLOG_ID"=>$arBlog["ID"],"NAME"=>substr($v, 4
)));
$arSites = ($arResult["bGroupMode"] && $arGroupSites ? $arGroupSites : array(SITE_ID));
}
else
{
$CATEGORYtmp[] = $v;
}
}
}
else
{
$CATEGORY_ID = "";
}
$DATE_PUBLISH = "";
if (strlen($_POST["DATE_PUBLISH_DEF"]) > 0)
{
$DATE_PUBLISH = $_POST["DATE_PUBLISH_DEF"];
}
elseif (strlen($_POST["DATE_PUBLISH"]) <= 0)
{
$DATE_PUBLISH = ConvertTimeStamp(time()+CTimeZone::GetOffset(), "FULL");
}
else
{
$DATE_PUBLISH = $_POST["DATE_PUBLISH"];
}
$PUBLISH_STATUS = (strlen($_POST["draft"]) > 0 ? BLOG_PUBLISH_STATUS_DRAFT : BLOG_PUBLISH_STATUS_PUBLISH);
$arFields = array(
"TITLE" => trim($_POST["POST_TITLE"]),
"DETAIL_TEXT" => $_POST["POST_MESSAGE"],
"DETAIL_TEXT_TYPE" => "text",
"DATE_PUBLISH" => $DATE_PUBLISH,
"PUBLISH_STATUS" => $PUBLISH_STATUS,
"PATH" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => "#post_id#", "user_id" => $arBlog["OWNER_ID"])),
"URL" => $arBlog["URL"],
);
if(\Bitrix\Main\Config\Configuration::getValue("utf_mode") === true)
{
$conn = \Bitrix\Main\Application::getConnection();
$table = \Bitrix\Blog\PostTable::getTableName();
if ($arFields["TITLE"] <> '')
{
if (!$conn->isUtf8mb4($table, 'TITLE'))
{
$arFields["TITLE"] = \Bitrix\Main\Text\UtfSafeString::escapeInvalidUtf($arFields["TITLE"]);
}
}
if ($arFields["DETAIL_TEXT"] <> '')
{
if (!$conn->isUtf8mb4($table, 'DETAIL_TEXT'))
{
$arFields["DETAIL_TEXT"] = \Bitrix\Main\Text\UtfSafeString::escapeInvalidUtf($arFields["DETAIL_TEXT"]);
}
}
}
if($arParams["ALLOW_POST_CODE"] && strlen(trim($_POST["CODE"])) > 0)
{
$arFields["CODE"] = trim($_POST["CODE"]);
$arPCFilter = array("BLOG_ID" => $arBlog["ID"], "CODE" => $arFields["CODE"]);
if(IntVal($arParams["ID"]) > 0)
$arPCFilter["!ID"] = $arParams["ID"];
$db = CBlogPost::GetList(Array(), $arPCFilter, false, Array("nTopCount" => 1), Array("ID", "CODE", "BLOG_ID"));
if($db->Fetch())
{
$uind = 0;
do
{
$uind++;
$arFields["CODE"] = $arFields["CODE"].$uind;
$arPCFilter["CODE"] = $arFields["CODE"];
$db = CBlogPost::GetList(Array(), $arPCFilter, false, Array("nTopCount" => 1), Array("ID", "CODE", "BLOG_ID"));
}
while ($db->Fetch());
}
}
$arFields["PERMS_POST"] = array();
$arFields["PERMS_COMMENT"] = array();
$arFields["MICRO"] = "N";
$checkTitle = false;
if (
$_POST["ACTION"] == "EDIT_POST"
&& isset($_POST["MOBILE"])
&& $_POST["MOBILE"] == "Y"
&& isset($arPost)
&& isset($arPost["TITLE"])
)
{
$arFields["TITLE"] = $arPost["~TITLE"];
$arFields["MICRO"] = $arPost["MICRO"];
}
elseif (
strlen($arFields["TITLE"]) <= 0
|| $_POST["show_title"] == "N"
)
{
$arFields["MICRO"] = "Y";
$arFields["TITLE"] = preg_replace(array("/\n+/is".BX_UTF_PCRE_MODIFIER, "/\s+/is".BX_UTF_PCRE_MODIFIER), " ", blogTextParser::killAllTags($arFields["DETAIL_TEXT"]));
$parser = new \CTextParser();
$parser->allow = array('CLEAR_SMILES' => 'Y');
$arFields["TITLE"] = preg_replace("/ /is".BX_UTF_PCRE_MODIFIER, "", $parser->convertText($arFields["TITLE"]));
$arFields["TITLE"] = trim($arFields["TITLE"], " \t\n\r\0\x0B\xA0");
$checkTitle = true;
}
$arTagPrev = array();
if(!empty($CATEGORYtmp))
{
$res = CBlogCategory::getList(
array(),
array(
'@ID' => $CATEGORYtmp
),
false,
false,
array('NAME')
);
while($arCategory = $res->fetch())
{
$arTagPrev[] = $arCategory["NAME"];
}
}
$newCategoryIdList = array();
$postItem = new \Bitrix\Blog\Item\Post;
$postItem->setFields($arFields);
$codeList = array('DETAIL_TEXT');
if (
!isset($arFields['MICRO'])
|| $arFields['MICRO'] != 'Y'
)
{
$codeList[] = 'TITLE';
}
$arTagInline = \Bitrix\Socialnetwork\Util::detectTags($arFields, $codeList);
$arTag = array_merge($arTagPrev, $arTagInline);
$arTag = array_intersect_key($arTag, array_unique(array_map('ToLower', $arTag)));
if (count($arTag) > count($arTagPrev))
{
$arTagPrevLower = array_unique(array_map('ToLower', $arTagPrev));
$newTagList = array();
foreach($arTagInline as $tagInline)
{
if (!in_array(ToLower($tagInline), $arTagPrevLower))
{
$newTagList[] = $tagInline;
}
}
if (!empty($newTagList))
{
$newTagList = array_unique($newTagList);
$existingCategoriesList = array();
$res = CBlogCategory::getList(
array(),
array(
"@NAME" => $newTagList,
"BLOG_ID" => $arBlog["ID"]
),
false,
false,
array('ID', 'NAME')
);
while ($arCategory = $res->fetch())
{
$existingCategoriesList[$arCategory['NAME']] = $arCategory['ID'];
}
foreach($newTagList as $newTag)
{
if (array_key_exists($newTag, $existingCategoriesList))
{
$newCategoryIdList[] = $existingCategoriesList[$newTag];
}
else
{
$newCategoryIdList[] = CBlogCategory::add(array("BLOG_ID" => $arBlog["ID"], "NAME" => $newTag));
}
}
}
}
$CATEGORYtmp = array_merge($CATEGORYtmp, $newCategoryIdList);
$CATEGORY_ID = implode(",", $CATEGORYtmp);
$arFields["CATEGORY_ID"] = $CATEGORY_ID;
$arFields["SOCNET_RIGHTS"] = array();
$bError = false;
if (!empty($_POST["SPERM"]))
{
ComponentHelper::processBlogPostNewMailUser($_POST, $arResult);
$resultFields = array(
'ERROR_MESSAGE' => false,
'PUBLISH_STATUS' => $arFields['PUBLISH_STATUS']
);
$destParams = array(
'POST_ID' => $arParams["ID"],
'PERM' => $_POST["SPERM"],
'IS_REST' => false,
'IS_EXTRANET_USER' => $arResult["bExtranetUser"]
);
if ($arParams["ID"] <= 0)
{
$destParams['AUTHOR_ID'] = $user_id;
}
$arFields["SOCNET_RIGHTS"] = ComponentHelper::convertBlogPostPermToDestinationList($destParams, $resultFields);
$arFields["PUBLISH_STATUS"] = $resultFields['PUBLISH_STATUS'];
if (!empty($resultFields['ERROR_MESSAGE']))
{
$arResult["ERROR_MESSAGE"] = $resultFields['ERROR_MESSAGE'];
$bError = true;
}
}
if (
!$bError
&& empty($arFields["SOCNET_RIGHTS"])
)
{
$bError = true;
$arResult["ERROR_MESSAGE"] .= GetMessage("BLOG_BPE_DESTINATION_EMPTY");
}
$mentionList = $mentionListOld = array();
if(!$bError)
{
$fieldName = 'UF_BLOG_POST_DOC';
if (
isset($GLOBALS[$fieldName])
&& is_array($GLOBALS[$fieldName])
)
{
$arOldFiles = array();
if($arParams["ID"] > 0 && strlen($_POST["blog_upload_cid"]) <= 0)
{
$dbP = CBlogPost::GetList(array(), array("ID" => $arParams["ID"]), false, false, array("ID", $fieldName));
if($arP = $dbP->Fetch())
{
$arOldFiles = $arP[$fieldName];
}
}
$arAttachedFiles = array();
foreach($GLOBALS[$fieldName] as $fileID)
{
$fileID = intval($fileID);
if ($fileID <= 0)
{
continue;
}
elseif(
(
!is_array($_SESSION["MFI_UPLOADED_FILES_".$_POST["blog_upload_cid"]])
|| !in_array($fileID, $_SESSION["MFI_UPLOADED_FILES_".$_POST["blog_upload_cid"]])
)
&& ( // mobile
!is_array($_SESSION["MFU_UPLOADED_FILES_".$USER->GetId()])
|| !in_array($fileID, $_SESSION["MFU_UPLOADED_FILES_".$USER->GetId()])
)
)
{
if (
empty($arOldFiles)
|| !in_array($fileID, $arOldFiles)
)
{
continue;
}
}
$arFile = CFile::GetFileArray($fileID);
if (CFile::CheckImageFile(CFile::MakeFileArray($fileID)) === null)
{
$arImgFields = array(
"BLOG_ID" => $arBlog["ID"],
"POST_ID" => 0,
"USER_ID" => $arResult["UserID"],
"=TIMESTAMP_X" => $DB->GetNowFunction(),
"TITLE" => $arFile["FILE_NAME"],
"IMAGE_SIZE" => $arFile["FILE_SIZE"],
"FILE_ID" => $fileID,
"URL" => $arBlog["URL"],
"IMAGE_SIZE_CHECK" => "N",
);
$imgID = CBlogImage::Add($arImgFields);
if (intval($imgID) <= 0)
{
$APPLICATION->ThrowException("Error Adding file by CBlogImage::Add");
}
else
{
$arFields["DETAIL_TEXT"] = str_replace("[IMG ID=".$fileID."file", "[IMG ID=".$imgID."", $arFields["DETAIL_TEXT"]);
}
}
else
{
$arAttachedFiles[] = $fileID;
}
}
if (
is_array($arPostFields)
&& is_array($arPostFields[$fieldName])
&& is_array($arPostFields[$fieldName]["VALUE"])
)
{
$arAttachedFiles = array_unique(array_merge($arAttachedFiles, array_intersect($GLOBALS[$fieldName], $arPostFields[$fieldName]["VALUE"])));
}
$GLOBALS[$fieldName] = $arAttachedFiles;
}
CSocNetLogComponent::checkEmptyUFValue('UF_BLOG_POST_FILE');
if (!empty($arParams["POST_PROPERTY"]))
{
$USER_FIELD_MANAGER->EditFormAddFields("BLOG_POST", $arFields);
}
preg_match_all("/\[user\s*=\s*([^\]]*)\](.+?)\[\/user\]/ies".BX_UTF_PCRE_MODIFIER, $_POST["POST_MESSAGE"], $arMention);
$mentionList = (!empty($arMention) ? $arMention[1] : array());
$APPLICATION->ResetException();
$bAdd = false;
if (
array_key_exists("GRAT", $_POST)
&& isset($_POST["GRAT"]["U"])
&& is_array($_POST["GRAT"]["U"])
&& array_key_exists("GRAT_TYPE", $_POST)
&& array_key_exists("changePostFormTab", $_POST)
&& $_POST["changePostFormTab"] == "grat"
)
{
$bNeedAddGrat = true;
}
if (
!empty($_POST["attachedFilesRaw"])
&& is_array($_POST["attachedFilesRaw"])
)
{
CSocNetLogComponent::saveRawFilesToUF(
$_POST["attachedFilesRaw"],
(
ModuleManager::isModuleInstalled("webdav")
|| ModuleManager::isModuleInstalled("disk")
? "UF_BLOG_POST_FILE"
: "UF_BLOG_POST_DOC"
),
$arFields
);
}
if(
$checkTitle
&& strlen($arFields["TITLE"]) <= 0
&& !empty($arFields["UF_BLOG_POST_FILE"])
&& is_array($arFields["UF_BLOG_POST_FILE"])
)
{
foreach($arFields["UF_BLOG_POST_FILE"] as $val)
{
if (!empty($val))
{
$arFields["TITLE"] = GetMessage("BLOG_EMPTY_TITLE_PLACEHOLDER2");
break;
}
}
}
$arFields["SEARCH_GROUP_ID"] = \Bitrix\Main\Config\Option::get("socialnetwork", "userbloggroup_id", false, SITE_ID);
if (isset($_POST["postShowingDuration"]) && in_array($_POST["postShowingDuration"], $periodsOfShowingImportantPost))
{
if ($_POST["postShowingDuration"] !== "CUSTOM")
{
$userDateTimeNow = \Bitrix\Main\Type\DateTime::createFromTimestamp(time() + CTimeZone::GetOffset());
if ($_POST["postShowingDuration"] == "ALWAYS")
{
$arFields["UF_IMPRTANT_DATE_END"] = null;
}
else
{
switch ($_POST["postShowingDuration"])
{
case "ONE_DAY":
$showEndTime = $userDateTimeNow->setTime(23, 59, 59);
break;
case "TWO_DAYS":
$showEndTime = $userDateTimeNow->setTime(23, 59, 59)->add("1D");
break;
case "WEEK":
$showEndTime = $userDateTimeNow->setTime(23, 59, 59)->add("7D");
break;
case "MONTH":
$showEndTime = $userDateTimeNow->setTime(23, 59, 59)->add("1M");
break;
default:
break;
}
$arFields["UF_IMPRTANT_DATE_END"] = \Bitrix\Main\Type\DateTime::createFromTimestamp($showEndTime->getTimestamp() - CTimeZone::GetOffset());
}
}
else
{
$postEndingServerTime = \Bitrix\Main\Type\DateTime::createFromUserTime($arFields["UF_IMPRTANT_DATE_END"]);
$postEndingServerTime->add("-T1S");
$arFields["UF_IMPRTANT_DATE_END"] = $postEndingServerTime;
}
}
if ($arParams["ID"] > 0)
{
if (
array_key_exists("GRAT", $_POST)
&& isset($_POST["GRAT"]["U"])
&& is_array($_POST["GRAT"]["U"])
&& array_key_exists("GRAT_TYPE", $_POST)
)
{
$bGratFromForm = true;
if (
is_array($arResult["PostToShow"]["GRAT_CURRENT"])
&& count(array_diff($arResult["PostToShow"]["GRAT_CURRENT"]["USERS"], $_POST["GRAT"]["U"])) == 0
&& count(array_diff($_POST["GRAT"]["U"], $arResult["PostToShow"]["GRAT_CURRENT"]["USERS"])) == 0
&& ToLower($arResult["PostToShow"]["GRAT_CURRENT"]["TYPE"]) == ToLower($_POST["GRAT_TYPE"])
)
{
$bNeedAddGrat = false;
$bGratSimilar = true;
}
}
if (
(
!isset($arParams["MOBILE"])
|| $arParams["MOBILE"] != "Y"
)
&& (
$_POST["changePostFormTab"] != "grat"
|| (
$bGratFromForm
&& !$bGratSimilar
)
)
&& (
is_array($arResult["PostToShow"]["GRAT_CURRENT"])
&& intval($arResult["PostToShow"]["GRAT_CURRENT"]["ID"]) > 0
&& Loader::includeModule("iblock")
)
)
{
CIBlockElement::Delete($arResult["PostToShow"]["GRAT_CURRENT"]["ID"]);
if ($_POST["changePostFormTab"] != "grat")
{
CBlogPost::Update($arParams["ID"], array(
"DETAIL_TEXT_TYPE" => "text",
"UF_GRATITUDE" => false
));
}
}
$arOldPost = CBlogPost::GetByID($arParams["ID"]);
if(
$arParams["MOBILE"] == "Y"
&& in_array("UF_BLOG_POST_URL_PRV", $arParams["POST_PROPERTY"])
&& empty($arFields["UF_BLOG_POST_URL_PRV"])
&& (
empty($arPostFields['UF_BLOG_POST_URL_PRV'])
|| empty($arPostFields['UF_BLOG_POST_URL_PRV']['VALUE'])
)
&& !empty($arFields["DETAIL_TEXT"])
&& ($urlPreviewValue = ComponentHelper::getUrlPreviewValue($arFields["DETAIL_TEXT"]))
)
{
$arFields["UF_BLOG_POST_URL_PRV"] = $urlPreviewValue;
}
preg_match_all("/\[user\s*=\s*([^\]]*)\](.+?)\[\/user\]/ies".BX_UTF_PCRE_MODIFIER, $arOldPost["DETAIL_TEXT"], $arMentionOld);
$mentionListOld = (!empty($arMentionOld) ? $arMentionOld[1] : array());
$socnetRightsOld = CBlogPost::GetSocnetPerms($arParams["ID"]);
unset($arFields["DATE_PUBLISH"]);
if($newID = CBlogPost::Update($arParams["ID"], $arFields))
{
BXClearCache(true, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'post',
'POST_ID' => $arParams["ID"]
)));
BXClearCache(true, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'post_general',
'POST_ID' => $arParams["ID"]
)));
BXClearCache(True, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'posts_popular',
'SITE_ID' => SITE_ID
)));
$arFields["AUTHOR_ID"] = $arOldPost["AUTHOR_ID"];
if (
$arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_DRAFT
&& $arOldPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH
)
{
CBlogPost::DeleteLog($newID);
}
elseif (
$arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH
&& $arOldPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH
)
{
$arParamsUpdateLog = Array(
"allowVideo" => $arResult["allowVideo"],
"PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"],
);
CBlogPost::UpdateLog($newID, $arFields, $arBlog, $arParamsUpdateLog);
}
elseif (
$arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH
&& $arOldPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_READY
)
{
CBlogPost::notifyImPublish(array(
"TYPE" => "POST",
"TITLE" => (isset($arFields["TITLE"]) ? $arFields["TITLE"] : $arOldPost["TITLE"]),
"TO_USER_ID" => $arFields["AUTHOR_ID"],
"POST_URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $newID, "user_id" => $arBlog["OWNER_ID"])),
"POST_ID" => $newID,
));
}
}
}
else
{
$arFields["=DATE_CREATE"] = $DB->GetNowFunction();
$arFields["AUTHOR_ID"] = $arResult["UserID"];
$arFields["BLOG_ID"] = $arBlog["ID"];
$ar = (is_array($arFields["UF_BLOG_POST_FILE"]) ? array_values($arFields["UF_BLOG_POST_FILE"]) : array());
$dbDuplPost = CBlogPost::GetList(
array("ID" => "DESC"),
array("BLOG_ID" => $arBlog["ID"]),
false,
array("nTopCount" => 1),
array("ID", "BLOG_ID", "AUTHOR_ID", "DETAIL_TEXT", "TITLE")
);
if($arDuplPost = $dbDuplPost->Fetch())
{
$liveFeedEntity = \Bitrix\Socialnetwork\Livefeed\Provider::init(array(
'ENTITY_TYPE' => 'BLOG_POST',
'ENTITY_ID' => $arDuplPost['ID'],
));
$logRights = $liveFeedEntity->getLogRights();
foreach($logRights as $key => $groupCode)
{
if (
$groupCode == 'SA'
|| $groupCode == 'U'.$arFields["AUTHOR_ID"]
|| preg_match('/^US(\d+)$/i', $groupCode, $matches)
|| preg_match('/^OSG(\d+)/i', $groupCode, $matches)
|| preg_match('/^SG(\d+)_/i', $groupCode, $matches)
)
{
unset($logRights[$key]);
}
elseif ($groupCode == 'G2')
{
$logRights[$key] = 'UA';
}
}
$diff1 = array_diff($logRights, $arFields["SOCNET_RIGHTS"]);
$diff2 = array_diff($arFields["SOCNET_RIGHTS"], $logRights);
if(
empty($ar[0]) // no files
&& !$bNeedAddGrat // no gratitudes
&& $arDuplPost["BLOG_ID"] == $arFields["BLOG_ID"]
&& IntVal($arDuplPost["AUTHOR_ID"]) == IntVal($arFields["AUTHOR_ID"])
&& md5($arDuplPost["DETAIL_TEXT"]) == md5($arFields["DETAIL_TEXT"])
&& md5($arDuplPost["TITLE"]) == md5($arFields["TITLE"])
&& empty($diff1)
&& empty($diff2)
)
{
$bError = true;
$arResult["ERROR_MESSAGE"] = GetMessage("B_B_PC_DUPLICATE_POST");
}
}
if(
!$bError
&& $arParams["MOBILE"] == "Y"
&& in_array("UF_BLOG_POST_URL_PRV", $arParams["POST_PROPERTY"])
&& empty($arFields["UF_BLOG_POST_URL_PRV"])
&& ($urlPreviewValue = ComponentHelper::getUrlPreviewValue($arFields["DETAIL_TEXT"]))
)
{
$arFields["UF_BLOG_POST_URL_PRV"] = $urlPreviewValue;
}
if(
!$bError
&& strlen(trim($arFields['DETAIL_TEXT'])) <= 0
&& !empty($arFields["UF_BLOG_POST_FILE"])
&& is_array($arFields["UF_BLOG_POST_FILE"])
)
{
foreach($arFields["UF_BLOG_POST_FILE"] as $val)
{
if (!empty($val))
{
$arFields["DETAIL_TEXT"] = '[B][/B]';
break;
}
}
}
if(!$bError)
{
$newID = CBlogPost::Add($arFields);
$socnetRightsOld = Array("U" => Array());
$bAdd = true;
$bNeedMail = false;
}
}
if(IntVal($newID) > 0)
{
if (
$bNeedAddGrat
&& Loader::includeModule("iblock")
)
{
$arGratFromPOST = false;
$arUsersFromPOST = false;
foreach ($arResult["PostToShow"]["GRATS"] as $arGrat)
{
if (ToLower($arGrat["XML_ID"]) == ToLower($_POST["GRAT_TYPE"]))
{
$arGratFromPOST = $arGrat;
break;
}
}
foreach($_POST["GRAT"]["U"] as $code)
if (preg_match('/^U(\d+)$/', $code, $matches))
$arUsersFromPOST[] = $matches[1];
if (
$arGratFromPOST
&& $arUsersFromPOST
)
{
$el = new CIBlockElement;
$new_grat_element_id = $el->Add(
array(
"IBLOCK_ID" => $honour_iblock_id,
"DATE_ACTIVE_FROM" => ConvertTimeStamp(false, "FULL"),
"NAME" => str_replace("#GRAT_NAME#", $arGratFromPOST["VALUE"], GetMessage("BLOG_GRAT_IBLOCKELEMENT_NAME"))
),
false,
false
);
if ($new_grat_element_id > 0)
{
CIBlockElement::SetPropertyValuesEx(
$new_grat_element_id,
$honour_iblock_id,
array(
"USERS" => $arUsersFromPOST,
"GRATITUDE" => array("VALUE" => $arGratFromPOST["ID"])
)
);
CBlogPost::Update($newID, array(
"DETAIL_TEXT_TYPE" => "text",
"UF_GRATITUDE" => $new_grat_element_id
));
}
}
}
CBlogPostCategory::DeleteByPostID($newID);
foreach($CATEGORYtmp as $v)
{
CBlogPostCategory::Add(Array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $newID, "CATEGORY_ID"=>$v));
}
$DB->Query("UPDATE b_blog_image SET POST_ID=".$newID." WHERE BLOG_ID=".$arBlog["ID"]." AND POST_ID=0", true);
$bHasImg = false;
$bHasTag = false;
$bHasProps = false;
$bHasOnlyAll = false;
if(!empty($CATEGORYtmp))
$bHasTag = true;
$dbImg = CBlogImage::GetList(Array(), Array("BLOG_ID" => $arBlog["ID"], "POST_ID" => $newID, "IS_COMMENT" => "N"), false, false, Array("ID"));
if($dbImg->Fetch())
$bHasImg = true;
$arPostFieldsOLD = $arPostFields;
$arPostFields = $USER_FIELD_MANAGER->GetUserFields("BLOG_POST", $newID, LANGUAGE_ID);
if (
($arPostFields["UF_BLOG_POST_IMPRTNT"]["VALUE"] != $arPostFieldsOLD["UF_BLOG_POST_IMPRTNT"]["VALUE"])
|| (
$arParams["ID"] > 0
&& (
$arResult["Post"]["~DETAIL_TEXT"] != $arFields["DETAIL_TEXT"]
|| $arResult["Post"]["~TITLE"] != $arFields["TITLE"]
)
)
)
{
if ($arPostFields["UF_BLOG_POST_IMPRTNT"]["VALUE"] != $arPostFieldsOLD["UF_BLOG_POST_IMPRTNT"]["VALUE"])
{
if ($arPostFields["UF_BLOG_POST_IMPRTNT"]["VALUE"])
CBlogUserOptions::SetOption($newID, "BLOG_POST_IMPRTNT", "Y", $USER->GetID());
else
CBlogUserOptions::DeleteOption($newID, "BLOG_POST_IMPRTNT", $USER->GetID());
}
if (defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->ClearByTag('blogpost_important_all');
}
}
foreach ($arPostFields as $FIELD_NAME => $arPostField)
{
if(!empty($arPostField["VALUE"]))
{
$bHasProps = true;
break;
}
}
if(!empty($arFields["SOCNET_RIGHTS"]) && count($arFields["SOCNET_RIGHTS"]) == 1 && in_array("UA", $arFields["SOCNET_RIGHTS"]))
$bHasOnlyAll = true;
$arFieldsHave = array(
"HAS_IMAGES" => ($bHasImg ? "Y" : "N"),
"HAS_TAGS" => ($bHasTag ? "Y" : "N"),
"HAS_PROPS" => ($bHasProps ? "Y" : "N"),
"HAS_SOCNET_ALL" => ($bHasOnlyAll ? "Y" : "N"),
);
CBlogPost::Update($newID, $arFieldsHave, false);
}
if(
(
$bAdd
&& $newID
&& $arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH
)
|| (
$arOldPost["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_PUBLISH
&& $arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH
)
)
{
$arFields["ID"] = $newID;
$arParamsNotify = Array(
"bSoNet" => true,
"UserID" => $arResult["UserID"],
"allowVideo" => $arResult["allowVideo"],
"PATH_TO_SMILE" => $arParams["PATH_TO_SMILE"],
"PATH_TO_POST" => $arParams["PATH_TO_POST"],
"SOCNET_GROUP_ID" => $arParams["SOCNET_GROUP_ID"],
"user_id" => $arParams["USER_ID"],
"NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"],
"SHOW_LOGIN" => $arParams["SHOW_LOGIN"],
);
$logId = CBlogPost::Notify($arFields, $arBlog, $arParamsNotify);
\Bitrix\Blog\Util::sendBlogPing(array(
'siteId' => SITE_ID,
'serverName' => $serverName,
'pathToBlog' => $arParams["PATH_TO_BLOG"],
'blogFields' => $arBlog
));
}
}
if (
isset($newID)
&& $newID > 0
&& strlen($arResult["ERROR_MESSAGE"]) <= 0
) // Record saved successfully
{
$eventId = \Bitrix\Blog\Integration\Socialnetwork\Log::EVENT_ID_POST;
$arPostFields = $USER_FIELD_MANAGER->GetUserFields("BLOG_POST", $newID, LANGUAGE_ID);
if (
isset($arPostFields["UF_BLOG_POST_IMPRTNT"])
&& isset($arPostFields["UF_BLOG_POST_IMPRTNT"]["VALUE"])
&& intval($arPostFields["UF_BLOG_POST_IMPRTNT"]["VALUE"]) > 0
)
{
$eventId = \Bitrix\Blog\Integration\Socialnetwork\Log::EVENT_ID_POST_IMPORTANT;
}
elseif (
isset($arPostFields["UF_BLOG_POST_VOTE"])
&& isset($arPostFields["UF_BLOG_POST_VOTE"]["VALUE"])
&& intval($arPostFields["UF_BLOG_POST_VOTE"]["VALUE"]) > 0
)
{
$eventId = \Bitrix\Blog\Integration\Socialnetwork\Log::EVENT_ID_POST_VOTE;
}
elseif (
isset($arPostFields["UF_GRATITUDE"])
&& isset($arPostFields["UF_GRATITUDE"]["VALUE"])
&& intval($arPostFields["UF_GRATITUDE"]["VALUE"]) > 0
)
{
$eventId = \Bitrix\Blog\Integration\Socialnetwork\Log::EVENT_ID_POST_GRAT;
}
if (
!isset($logId)
|| intval($logId) <= 0
)
{
$blogPostLivefeedProvider = new \Bitrix\Socialnetwork\Livefeed\BlogPost;
$res = \Bitrix\Socialnetwork\LogTable::getList(array(
'filter' => array(
'EVENT_ID' => $blogPostLivefeedProvider->getEventId(),
'SOURCE_ID' => $newID
),
'select' => array('ID')
));
if ($logFields = $res->fetch())
{
$logId = $logFields['ID'];
}
}
if (
isset($logId)
&& intval($logId) > 0
)
{
$logFields = array(
"EVENT_ID" => $eventId
);
if ($post = \Bitrix\Blog\Item\Post::getById($newID))
{
$logFields["TAG"] = $post->getTags();
}
CSocNetLog::Update(intval($logId), $logFields);
}
$DB->Commit();
$postUrl = CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $newID, "user_id" => $arBlog["OWNER_ID"]));
if($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH)
{
BXClearCache(true, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'posts_last',
'SITE_ID' => SITE_ID
)));
BXClearCache(true, ComponentHelper::getBlogPostCacheDir(array(
'TYPE' => 'posts_last_blog',
'SITE_ID' => SITE_ID
)));
ComponentHelper::notifyBlogPostCreated(array(
'post' => array(
'ID' => $newID,
'TITLE' => $arFields["TITLE"],
'AUTHOR_ID' => $arParams["USER_ID"]
),
'siteId' => SITE_ID,
'postUrl' => $postUrl,
'socnetRights' => $arFields["SOCNET_RIGHTS"],
'socnetRightsOld' => (!empty($socnetRightsOld) ? $socnetRightsOld : array()),
'mentionListOld' => $mentionListOld,
'mentionList' => $mentionList
));
if (!empty($mentionList))
{
$arMentionedDestCode = array();
foreach($mentionList as $val)
{
if (!in_array($val, $mentionListOld))
{
$arMentionedDestCode[] = "U".$val;
}
}
if (!empty($arMentionedDestCode))
{
\Bitrix\Main\FinderDestTable::merge(array(
"CONTEXT" => "mention",
"CODE" => array_unique($arMentionedDestCode)
));
}
}
}
elseif (
$arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_READY
&& (
!isset($arOldPost)
|| !isset($arOldPost["PUBLISH_STATUS"])
|| $arOldPost["PUBLISH_STATUS"] != BLOG_PUBLISH_STATUS_READY
)
&& !empty($arFields["SOCNET_RIGHTS"])
)
{
CBlogPost::NotifyImReady(array(
"TYPE" => "POST",
"POST_ID" => $newID,
"TITLE" => $arFields["TITLE"],
"POST_URL" => $postUrl,
"FROM_USER_ID" => $arParams["USER_ID"],
"TO_SOCNET_RIGHTS" => $arFields["SOCNET_RIGHTS"]
));
}
$arParams["ID"] = $newID;
if(!empty($_POST["SPERM"]["SG"]))
{
foreach($_POST["SPERM"]["SG"] as $v)
{
$group_id_tmp = substr($v, 2);
if(IntVal($group_id_tmp) > 0)
CSocNetGroup::SetLastActivity(IntVal($group_id_tmp));
}
}
if (strlen($_POST["apply"]) <= 0)
{
if($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_DRAFT || strlen($_POST["draft"]) > 0)
{
$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_DRAFT"], array("user_id" => $arBlog["OWNER_ID"]));
}
elseif($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_READY)
{
$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("post_id"=>$newID, "user_id" => $arBlog["OWNER_ID"]))."?moder=y";
}
else
{
$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("user_id" => $arBlog["OWNER_ID"]));
}
}
else
{
$redirectUrl = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST_EDIT"], array("post_id"=>$newID, "user_id" => $arBlog["OWNER_ID"]));
}
$as = new CAutoSave(); // It is necessary to clear autosave buffer
$as->Reset();
if (Loader::includeModule('pull'))
{
\Bitrix\Pull\Event::send();
}
LocalRedirect($redirectUrl);
}
else
{
$DB->Rollback();
if(strlen($arResult["ERROR_MESSAGE"]) <= 0)
{
if ($ex = $APPLICATION->GetException())
$arResult["ERROR_MESSAGE"] = $ex->GetString();
else
$arResult["ERROR_MESSAGE"] = "Error saving data to database.<br />";
}
}
}
}
else
{
$arResult["ERROR_MESSAGE"] = GetMessage("BPE_SESS");
}
}
elseif($_POST["reset"])
{
if($arFields["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_DRAFT)
LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_DRAFT"], array("user_id" => $arBlog["OWNER_ID"])));
elseif($arResult["bGroupMode"])
LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP_BLOG"], array("group_id" => $arParams["SOCNET_GROUP_ID"])));
else
LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BLOG"], array("user_id" => $arBlog["OWNER_ID"])));
}
if (
$arParams["ID"] > 0
&& strlen($arResult["ERROR_MESSAGE"]) <= 0
) // Edit post
{
$arResult["PostToShow"]["TITLE"] = ($arPost["MICRO"] != "Y" ? $arPost["TITLE"] : "");
$arResult["PostToShow"]["DETAIL_TEXT"] = $arPost["DETAIL_TEXT"];
$arResult["PostToShow"]["~DETAIL_TEXT"] = $arPost["~DETAIL_TEXT"];
$arResult["PostToShow"]["DETAIL_TEXT_TYPE"] = $arPost["DETAIL_TEXT_TYPE"];
$arResult["PostToShow"]["PUBLISH_STATUS"] = $arPost["PUBLISH_STATUS"];
$arResult["PostToShow"]["ENABLE_TRACKBACK"] = $arPost["ENABLE_TRACKBACK"] == "Y";
$arResult["PostToShow"]["ENABLE_COMMENTS"] = $arPost["ENABLE_COMMENTS"];
$arResult["PostToShow"]["ATTACH_IMG"] = $arPost["ATTACH_IMG"];
$arResult["PostToShow"]["DATE_PUBLISH"] = $arPost["DATE_PUBLISH"];
$arResult["PostToShow"]["CATEGORY_ID"] = $arPost["CATEGORY_ID"];
$arResult["PostToShow"]["FAVORITE_SORT"] = $arPost["FAVORITE_SORT"];
$arResult["PostToShow"]["MICRO"] = $arPost["MICRO"];
if ($arParams["ALLOW_POST_CODE"])
{
$arResult["PostToShow"]["CODE"] = $arPost["CODE"];
}
$arResult["PostToShow"]["SPERM"] = CBlogPost::GetSocnetPerms($arPost["ID"]);
if (
is_array($arResult["PostToShow"]["SPERM"]["U"][$arPost["AUTHOR_ID"]])
&& in_array("US".$arPost["AUTHOR_ID"], $arResult["PostToShow"]["SPERM"]["U"][$arPost["AUTHOR_ID"]])
)
{
$arResult["PostToShow"]["SPERM"]["U"]["A"] = Array();
}
if (
!is_array($arResult["PostToShow"]["SPERM"]["U"][$arPost["AUTHOR_ID"]])
|| !in_array("U".$arPost["AUTHOR_ID"], $arResult["PostToShow"]["SPERM"]["U"][$arPost["AUTHOR_ID"]])
)
{
unset($arResult["PostToShow"]["SPERM"]["U"][$arPost["AUTHOR_ID"]]);
}
}
else
{
$arResult["PostToShow"]["TITLE"] = htmlspecialcharsEx($_POST["POST_TITLE"]);
$arResult["PostToShow"]["CATEGORY_ID"] = $_POST["CATEGORY_ID"];
$arResult["PostToShow"]["CategoryText"] = htmlspecialcharsEx($_POST["TAGS"]);
$arResult["PostToShow"]["DETAIL_TEXT"] = $_POST["POST_MESSAGE"];
$arResult["PostToShow"]["~DETAIL_TEXT"] = $_POST["POST_MESSAGE"];
$arResult["PostToShow"]["PUBLISH_STATUS"] = htmlspecialcharsEx($_POST["PUBLISH_STATUS"]);
$arResult["PostToShow"]["ENABLE_COMMENTS"] = htmlspecialcharsEx($_POST["ENABLE_COMMENTS"]);
$arResult["PostToShow"]["DATE_PUBLISH"] = $_POST["DATE_PUBLISH"] ? htmlspecialcharsEx($_POST["DATE_PUBLISH"]) : ConvertTimeStamp(time()+CTimeZone::GetOffset(),"FULL");
if($arParams["ALLOW_POST_CODE"])
$arResult["PostToShow"]["CODE"] = htmlspecialcharsEx($_POST["CODE"]);
$arResult["PostToShow"]["SPERM"] = CBlogTools::htmlspecialcharsExArray($_POST["SPERM"]);
if(empty($arResult["PostToShow"]["SPERM"]))
$arResult["PostToShow"]["SPERM"] = array();
if(empty($_POST["SPERM"]))
{
if(IntVal($arParams["SOCNET_GROUP_ID"]) > 0)
$arResult["PostToShow"]["SPERM"]["SG"][IntVal($arParams["SOCNET_GROUP_ID"])] = "";
if(IntVal($arParams["SOCNET_USER_ID"]) > 0)
$arResult["PostToShow"]["SPERM"]["U"][IntVal($arParams["SOCNET_USER_ID"])] = "";
}
else
{
foreach($_POST["SPERM"] as $k => $v)
{
foreach($v as $vv1)
{
if(strlen($vv1) > 0)
{
if($vv1 == "UA")
$arResult["PostToShow"]["SPERM"]["U"][] = "A";
else
$arResult["PostToShow"]["SPERM"][$k][str_replace($k, "", $vv1)] = "";
}
}
}
}
if (
(
array_key_exists("GRAT", $_POST)
&& isset($_POST["GRAT"]["U"])
)
|| array_key_exists("GRAT_TYPE", $_POST)
)
{
if
(
array_key_exists("GRAT", $_POST)
&& isset($_POST["GRAT"]["U"])
&& is_array($_POST["GRAT"]["U"])
&& count($_POST["GRAT"]["U"]) > 0
)
{
$arUsersFromPOST = array();
foreach($_POST["GRAT"]["U"] as $code)
if (preg_match('/^U(\d+)$/', $code, $matches))
$arUsersFromPOST[] = $matches[1];
if (count($arUsersFromPOST) > 0)
{
$dbUsers = CUser::GetList(
($sort_by = Array('last_name'=>'asc', 'IS_ONLINE'=>'desc')),
($dummy=''),
array(
"ID" => implode("|", $arUsersFromPOST),
array(
"FIELDS" => array("ID", "LAST_NAME", "NAME", "SECOND_NAME", "LOGIN", "PERSONAL_PHOTO", "WORK_POSITION", "PERSONAL_PROFESSION")
)
)
);
while($arGratUser = $dbUsers->Fetch())
{
$arResult["PostToShow"]["GRAT_CURRENT"]["USERS"][] = $arGratUser["ID"];
$sName = trim(CUser::FormatName(empty($arParams["NAME_TEMPLATE"]) ? CSite::GetNameFormat(false) : $arParams["NAME_TEMPLATE"], $arGratUser));
$arResult["PostToShow"]["GRAT_CURRENT"]["USERS_FOR_JS"]["U".$arGratUser["ID"]] = array(
"id" => "U".$arGratUser["ID"],
"entityId" => $arGratUser["ID"],
"name" => $sName,
"avatar" => "",
"desc" => $arGratUser["WORK_POSITION"] ? $arGratUser["WORK_POSITION"] : ($arGratUser["PERSONAL_PROFESSION"] ? $arGratUser["PERSONAL_PROFESSION"] : " ")
);
}
}
}
if (
array_key_exists("GRAT_TYPE", $_POST)
&& strlen($_POST["GRAT_TYPE"]) > 0
&& is_array($arResult["PostToShow"]["GRATS"])
)
foreach ($arResult["PostToShow"]["GRATS"] as $arGrat)
{
if ($arGrat["XML_ID"] == $_POST["GRAT_TYPE"])
{
$arResult["PostToShow"]["GRAT_CURRENT"]["TYPE"] = $arGrat;
break;
}
}
}
if($_REQUEST["moder"] == "y")
$arResult["OK_MESSAGE"] = GetMessage("BPE_HIDDEN_POSTED");
}
if ($arResult["SHOW_FULL_FORM"])
{
/* @deprecated */
$arResult["Smiles"] = CBlogSmile::GetSmilesList();
}
$arResult["Images"] = Array();
if(!empty($arBlog) && ($arPost["ID"] > 0 || strlen($arResult["ERROR_MESSAGE"]) > 0))
{
$arFilter = array(
"POST_ID" => $arParams["ID"],
"BLOG_ID" => $arBlog["ID"],
"IS_COMMENT" => "N",
);
if ($arParams["ID"]==0)
$arFilter["USER_ID"] = $arResult["UserID"];
$res = CBlogImage::GetList(array("ID"=>"ASC"), $arFilter);
while($aImg = $res->Fetch())
{
$aImgNew = CFile::ResizeImageGet(
$aImg["FILE_ID"],
array("width" => 90, "height" => 90),
BX_RESIZE_IMAGE_EXACT,
true
);
$aImgNew["source"] = CFile::ResizeImageGet(
$aImg["FILE_ID"],
array("width" => $arParams["IMAGE_MAX_WIDTH"], "height" => $arParams["IMAGE_MAX_HEIGHT"]),
BX_RESIZE_IMAGE_PROPORTIONAL,
true
);
$aImgNew["ID"] = $aImg["ID"];
$aImgNew["params"] = CFile::_GetImgParams($aImg["FILE_ID"]);
$aImgNew["fileName"] = substr($aImgNew["src"], strrpos($aImgNew["src"], "/")+1);
$aImgNew["fileShow"] = "<img src=\"".$aImgNew["src"]."\" width=\"".$aImgNew["width"]."\" height=\"".$aImgNew["height"]."\" border=\"0\" style=\"cursor:pointer\" onclick=\"InsertBlogImage_LHEPostFormId_blogPostForm('".$aImg["ID"]."', '".$aImgNew["source"]['src']."', '".$aImgNew["source"]['width']."');\" title=\"".GetMessage("BLOG_P_INSERT")."\">";
$aImgNew["SRC"] = $aImgNew["source"]["src"];
$aImgNew["FILE_NAME"] = $aImgNew["fileName"];
$aImgNew["FILE_SIZE"] = $aImgNew["source"]["size"];
$aImgNew["URL"] = $aImgNew["src"];
$aImgNew["CONTENT_TYPE"] = "image/xyz";
$aImgNew["THUMBNAIL"] = $aImgNew["src"];
$aImgNew["DEL_URL"] = $APPLICATION->GetCurPageParam(
"del_image_id=".$aImg["ID"]."&".bitrix_sessid_get(),
Array("sessid", "image_upload_frame", "image_upload", "do_upload","del_image_id"));
$arResult["Images"][] = $aImgNew;
}
}
if(strpos($arResult["PostToShow"]["CATEGORY_ID"], ",")!==false)
$arResult["PostToShow"]["CATEGORY_ID"] = explode(",", trim($arResult["PostToShow"]["CATEGORY_ID"]));
$arResult["Category"] = Array();
if(strlen($arResult["PostToShow"]["CategoryText"]) <= 0 && !empty($arResult["PostToShow"]["CATEGORY_ID"]))
{
$res = CBlogCategory::GetList(array("NAME"=>"ASC"),array("BLOG_ID"=>$arBlog["ID"]));
while ($arCategory=$res->GetNext())
{
if (is_array($arResult["PostToShow"]["CATEGORY_ID"]))
{
if (in_array($arCategory["ID"], $arResult["PostToShow"]["CATEGORY_ID"]))
{
$arCategory["Selected"] = "Y";
}
}
elseif (IntVal($arCategory["ID"]) == IntVal($arResult["PostToShow"]["CATEGORY_ID"]))
{
$arCategory["Selected"] = "Y";
}
if ($arCategory["Selected"] == "Y")
{
$arResult["PostToShow"]["CategoryText"] .= $arCategory["~NAME"].",";
}
$arResult["Category"][$arCategory["ID"]] = $arCategory;
}
$arResult["PostToShow"]["CategoryText"] = substr($arResult["PostToShow"]["CategoryText"], 0, strlen($arResult["PostToShow"]["CategoryText"])-1);
}
foreach ($arParams["POST_PROPERTY"] as $FIELD_NAME)
{
$arPostField = $arPostFields[$FIELD_NAME];
if (!!$arPostField)
{
if (
!empty($arResult["ERROR_MESSAGE"])
&& !empty($_POST[$FIELD_NAME])
)
{
$arPostField["VALUE"] = $_POST[$FIELD_NAME];
}
$arPostField["~EDIT_FORM_LABEL"] = ($arPostField["EDIT_FORM_LABEL"] !== "" ? $arPostField["EDIT_FORM_LABEL"] : $arPostField["FIELD_NAME"]);
$arPostField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arPostField["~EDIT_FORM_LABEL"]);
$arResult["POST_PROPERTIES"]["DATA"][$FIELD_NAME] = $arPostField;
$arResult["POST_PROPERTIES"]["SHOW"] = "Y";
}
}
if(
isset($_REQUEST["WFILES"])
&& !empty($_REQUEST["WFILES"])
&& is_array($_REQUEST["WFILES"])
&& !$_POST["save"]
)
{
$isDiskProperty = (
isset($arResult["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_FILE"]['USER_TYPE_ID'])
&& $arResult["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_FILE"]['USER_TYPE_ID'] === 'disk_file'
);
foreach($_REQUEST["WFILES"] as $val)
{
$val = intval($val);
if($val <= 0)
{
continue;
}
if($isDiskProperty)
{
//@see Bitrix\Disk\Uf\FileUserType::NEW_FILE_PREFIX
$val = 'n' . $val;
}
$arResult["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_FILE"]["VALUE"][] = $val;
}
if(!empty($arResult["POST_PROPERTIES"]["DATA"]["UF_BLOG_POST_FILE"]["VALUE"]))
{
$arResult["needShow"] = true;
}
}
$arResult["urlToDelImage"] = $APPLICATION->GetCurPageParam("del_image_id=#del_image_id#&".bitrix_sessid_get(), Array("sessid", "image_upload_frame", "image_upload", "do_upload","del_image_id"));
$serverName = "";
$dbSite = CSite::GetByID(SITE_ID);
$arSite = $dbSite->Fetch();
$serverName = htmlspecialcharsEx($arSite["SERVER_NAME"]);
if (strLen($serverName) <=0)
{
$serverName = (
defined("SITE_SERVER_NAME")
&& strlen (SITE_SERVER_NAME) > 0
? SITE_SERVER_NAME
: COption::GetOptionString("main", "server_name", "www.bitrixsoft.com")
);
if (strLen($serverName) <= 0)
{
$serverName = $_SERVER["HTTP_HOST"];
}
}
$serverName = "http://".$serverName;
$arResult["PATH_TO_POST"] = CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("blog" => $arBlog["URL"], "post_id" => "#post_id#", "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"]));
$arResult["PATH_TO_POST1"] = $serverName.substr($arResult["PATH_TO_POST"], 0, strpos($arResult["PATH_TO_POST"], "#post_id#"));
$arResult["PATH_TO_POST2"] = substr($arResult["PATH_TO_POST"], strpos($arResult["PATH_TO_POST"], "#post_id#") + strlen("#post_id#"));
}
CJSCore::Init(array('socnetlogdest'));
// socialnetwork
if ($arResult["SHOW_FULL_FORM"])
{
$dataAdditional = array();
$arResult["DEST_SORT"] = CSocNetLogDestination::GetDestinationSort(array(
"DEST_CONTEXT" => "BLOG_POST",
"ALLOW_EMAIL_INVITATION" => $arResult["ALLOW_EMAIL_INVITATION"]
), $dataAdditional);
$arResult["PostToShow"]["FEED_DESTINATION"]['LAST'] = array();
CSocNetLogDestination::fillLastDestination(
$arResult["DEST_SORT"],
$arResult["PostToShow"]["FEED_DESTINATION"]['LAST'],
array(
"EMAILS" => ($arResult["ALLOW_EMAIL_INVITATION"] ? 'Y' : 'N'),
"DATA_ADDITIONAL" => $dataAdditional
)
);
$limitReached = false;
$arResult["PostToShow"]["FEED_DESTINATION"]['SONETGROUPS'] = ComponentHelper::getSonetGroupAvailable(array(
'limit' => 100
), $limitReached);
if(
!empty($arResult["PostToShow"]["FEED_DESTINATION"]['LAST']['SONETGROUPS'])
&& !empty($arResult["PostToShow"]["FEED_DESTINATION"]['SONETGROUPS'])
)
{
$arDestSonetGroup = array();
foreach ($arResult["PostToShow"]["FEED_DESTINATION"]['LAST']['SONETGROUPS'] as $value)
{
if (!array_key_exists($value,$arResult["PostToShow"]["FEED_DESTINATION"]['SONETGROUPS']))
{
$arDestSonetGroup[] = intval(substr($value, 2));
}
}
if (!empty($arDestSonetGroup))
{
$sonetGroupsAdditionalList = CSocNetLogDestination::getSocnetGroup(array(
'features' => array("blog", array("premoderate_post", "moderate_post", "write_post", "full_post")),
'id' => $arDestSonetGroup
));
if (!empty($sonetGroupsAdditionalList))
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SONETGROUPS'] = array_merge($arResult["PostToShow"]["FEED_DESTINATION"]['SONETGROUPS'], $sonetGroupsAdditionalList);
}
}
}
$arResult["PostToShow"]["FEED_DESTINATION"]['SONETGROUPS_LIMITED'] = ($limitReached ? 'Y' : 'N');
$arResult["PostToShow"]["FEED_DESTINATION"]['SONETGROUPS_FEATURES'] = array("blog", array("premoderate_post", "moderate_post", "write_post", "full_post"));
$arDestUser = array(
'LAST' => array(),
'SELECTED' => array()
);
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED'] = Array();
if (empty($arResult["PostToShow"]["SPERM"]))
{
if ($arResult["bExtranetUser"])
{
if(!empty($arResult["PostToShow"]["FEED_DESTINATION"]['LAST']['SONETGROUPS']))
{
foreach ($arResult["PostToShow"]["FEED_DESTINATION"]['LAST']['SONETGROUPS'] as $val)
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED'][$val] = "sonetgroups";
}
}
else
{
foreach ($arResult["PostToShow"]["FEED_DESTINATION"]['SONETGROUPS'] as $k => $val)
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED'][$k] = "sonetgroups";
}
}
if (empty($arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED']))
{
$arResult["FATAL_MESSAGE"] .= GetMessage("BLOG_SONET_MODULE_NOT_AVAIBLE");
}
}
elseif ($bDefaultToAll)
{
if (ModuleManager::isModuleInstalled("intranet"))
{
$siteDepartmentID = COption::GetOptionString("main", "wizard_departament", false, SITE_ID, true);
if (intval($siteDepartmentID) > 0)
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED']['DR'.intval($siteDepartmentID)] = 'department';
}
else
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED']['UA'] = 'groups';
}
}
else
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED']['UA'] = 'groups';
}
}
}
else
{
foreach ($arResult["PostToShow"]["SPERM"] as $type => $ar)
{
if(is_array($ar))
{
foreach ($ar as $value => $ar2)
{
if (
$type == 'U'
&& $value == 'A'
&& (
$bDefaultToAll
|| $arParams["ID"] > 0
)
)
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED']['UA'] = 'groups';
}
elseif ($type == 'U')
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED']['U'.$value] = 'users';
$arDestUser['SELECTED'][] = $value;
}
elseif ($type == 'SG')
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED']['SG'.$value] = 'sonetgroups';
}
elseif ($type == 'DR')
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED']['DR'.$value] = 'department';
}
}
}
}
}
$arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_GROUPS"] = array();
$arHiddenGroups = array();
$arUserCodesSelected = $arDepartmentCodesSelected = array();
if(!empty($arResult["PostToShow"]["FEED_DESTINATION"]["SELECTED"]))
{
foreach($arResult["PostToShow"]["FEED_DESTINATION"]["SELECTED"] as $gID => $value)
{
if(
$value == "sonetgroups"
&& empty($arResult["PostToShow"]["FEED_DESTINATION"]["SONETGROUPS"][$gID])
)
{
$arHiddenGroups[] = substr($gID, 2);
}
elseif ($value == "users")
{
$arUserCodesSelected[] = $gID;
}
elseif ($value == "department")
{
$arDepartmentCodesSelected[] = $gID;
}
}
}
if(!empty($arHiddenGroups))
{
$res = \Bitrix\Socialnetwork\WorkgroupTable::getList(array(
'filter' => array(
"@ID" => $arHiddenGroups
),
'select' => array("ID", "NAME", "DESCRIPTION", "OPENED")
));
while($group = $res->Fetch())
{
if (
$group['OPENED'] == "Y"
|| CSocNetUser::isCurrentUserModuleAdmin()
)
{
$arResult["PostToShow"]["FEED_DESTINATION"]["SONETGROUPS"]['SG'.$group["ID"]] = array(
"id" => 'SG'.$group["ID"],
"entityId" => $group["ID"],
"name" => $group["NAME"],
"desc" => $group["DESCRIPTION"]
);
}
else
{
$arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_GROUPS"][$group["ID"]] = array(
"ID" => $group["ID"],
"NAME" => $group["NAME"],
"TYPE" => 'sonetgroups',
"PREFIX" => 'SG'
);
}
}
if (!CSocNetUser::IsCurrentUserModuleAdmin() && is_object($USER))
{
$arGroupID = CSocNetLogTools::GetAvailableGroups(
($arResult["bExtranetUser"] ? "Y" : "N"),
($arResult["bExtranetSite"] ? "Y" : "N")
);
foreach($arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_GROUPS"] as $group_code => $arBlogSPerm)
{
if (!in_array($group_code, $arGroupID))
{
$arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_GROUPS"][$group_code]["NAME"] = GetMessage("B_B_HIDDEN_GROUP");
}
}
}
}
$tmp = $arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_GROUPS"];
$arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_GROUPS"] = array();
foreach ($tmp as $key => $value)
{
$arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_GROUPS"]['SG'.$key] = $value;
}
$arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_ITEMS"] = $arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_GROUPS"];
// intranet structure
$arStructure = CSocNetLogDestination::GetStucture(array("LAZY_LOAD" => true));
$arResult["PostToShow"]["FEED_DESTINATION"]['DEPARTMENT'] = $arStructure['department'];
$arResult["PostToShow"]["FEED_DESTINATION"]['DEPARTMENT_RELATION'] = $arStructure['department_relation'];
$arResult["PostToShow"]["FEED_DESTINATION"]['DEPARTMENT_RELATION_HEAD'] = $arStructure['department_relation_head'];
// users
if ($arResult["bExtranetUser"])
{
$arResult["PostToShow"]["FEED_DESTINATION"]['EXTRANET_USER'] = 'Y';
$arResult["PostToShow"]["FEED_DESTINATION"]['USERS'] = CSocNetLogDestination::GetExtranetUser();
}
else
{
if(!empty($arResult["PostToShow"]["FEED_DESTINATION"]['LAST']['USERS']))
{
foreach ($arResult["PostToShow"]["FEED_DESTINATION"]['LAST']['USERS'] as $value)
{
$arDestUser['LAST'][] = str_replace('U', '', $value);
}
}
$arResult["PostToShow"]["FEED_DESTINATION"]['EXTRANET_USER'] = 'N';
$destinationUsersLast = $destinationUsersSelected = array();
if (!empty($arDestUser['LAST']))
{
$destinationUsersLast = CSocNetLogDestination::GetUsers(array(
'id' => $arDestUser['LAST'],
'CRM_ENTITY' => ModuleManager::isModuleInstalled('crm')
));
}
if (!empty($arDestUser['SELECTED']))
{
$destinationUsersSelected = CSocNetLogDestination::GetUsers(array(
'id' => $arDestUser['SELECTED'],
'CRM_ENTITY' => ModuleManager::isModuleInstalled('crm'),
'IGNORE_ACTIVITY' => 'Y'
));
}
$arResult["PostToShow"]["FEED_DESTINATION"]['USERS'] = array_merge($destinationUsersLast, $destinationUsersSelected);
if ($arResult["ALLOW_EMAIL_INVITATION"])
{
ComponentHelper::fillSelectedUsersToInvite($_POST, $arParams, $arResult);
CSocNetLogDestination::fillEmails($arResult["PostToShow"]["FEED_DESTINATION"]);
}
}
foreach($arUserCodesSelected as $selectedUserCode)
{
if (!array_key_exists($selectedUserCode, $arResult["PostToShow"]["FEED_DESTINATION"]['USERS']))
{
$arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_ITEMS"][$selectedUserCode] = array(
"ID" => substr($selectedUserCode, 1),
"NAME" => GetMessage("B_B_HIDDEN_USER"),
"TYPE" => 'users',
"PREFIX" => 'U'
);
}
}
foreach($arDepartmentCodesSelected as $selectedDepartmentCode)
{
$departrmentIdToCheckList = array();
if (!array_key_exists($selectedDepartmentCode, $arResult["PostToShow"]["FEED_DESTINATION"]['DEPARTMENT']))
{
$departrmentIdToCheckList[] = substr($selectedDepartmentCode, 2);
}
if (
!empty($departrmentIdToCheckList)
&& Loader::includeModule('iblock')
&& (($structureIBlockId = \Bitrix\Main\Config\Option::get('intranet', 'iblock_structure', 0)) > 0)
)
{
$res = CIBlockSection::getList(
array(),
array(
'=IBLOCK_ID' => $structureIBlockId,
'ID' => $departrmentIdToCheckList,
'=ACTIVE' => 'Y'
),
false,
array('ID')
);
while($section = $res->fetch())
{
$arResult["PostToShow"]["FEED_DESTINATION"]["HIDDEN_ITEMS"][$selectedDepartmentCode] = array(
"ID" => $section['ID'],
"NAME" => GetMessage("B_B_HIDDEN_DEPARTMENT"),
"TYPE" => 'department',
"PREFIX" => 'DR'
);
}
}
}
$arResult["PostToShow"]["FEED_DESTINATION"]["USERS_VACATION"] = Bitrix\Socialnetwork\Integration\Intranet\Absence\User::getDayVacationList();
$arResult["PostToShow"]["FEED_DESTINATION"]["DENY_TOALL"] = !$bAllowToAll;
}
}
else
{
$arResult["FATAL_MESSAGE"] = GetMessage("BLOG_ERR_NO_RIGHTS");
}
CSocNetTools::InitGlobalExtranetArrays();
Loader::includeModule('intranet'); // for gov/public language messages
$this->IncludeComponentTemplate();
?>