public function Execute() { global $DB; if (!CModule::IncludeModule("socialnetwork") || !CModule::IncludeModule("blog")) { return CBPActivityExecutionStatus::Closed; } $rootActivity = $this->GetRootActivity(); $documentId = $rootActivity->GetDocumentId(); $siteId = $this->PostSite ? $this->PostSite : SITE_ID; $ownerId = CBPHelper::ExtractUsers($this->OwnerId, $documentId, true); $pathToPost = COption::GetOptionString("socialnetwork", "userblogpost_page", false, $siteId); $pathToSmile = COption::GetOptionString("socialnetwork", "smile_page", false, $siteId); $blogGroupID = COption::GetOptionString("socialnetwork", "userbloggroup_id", false, $siteId); $blog = CBlog::GetByOwnerID($ownerId); if (!$blog) { $blog = $this->createBlog($ownerId, $blogGroupID, $siteId); } $micro = 'N'; $title = trim($this->PostTitle); if (!$title) { $micro = 'Y'; $title = trim(preg_replace(array("/\n+/is" . BX_UTF_PCRE_MODIFIER, '/\\s+/is' . BX_UTF_PCRE_MODIFIER), " ", blogTextParser::killAllTags($this->PostMessage))); } try { $postFields = array('TITLE' => $title, 'DETAIL_TEXT' => $this->PostMessage, 'DETAIL_TEXT_TYPE' => $this->PostMessageType == 'html' ? 'html' : 'text', '=DATE_PUBLISH' => $DB->CurrentTimeFunction(), 'PUBLISH_STATUS' => BLOG_PUBLISH_STATUS_PUBLISH, 'CATEGORY_ID' => '', 'PATH' => CComponentEngine::MakePathFromTemplate($pathToPost, array("post_id" => "#post_id#", "user_id" => $ownerId)), 'URL' => $blog['URL'], 'PERMS_POST' => array(), 'PERMS_COMMENT' => array(), 'MICRO' => $micro, 'SOCNET_RIGHTS' => $this->getSocnetRights($this->UsersTo), '=DATE_CREATE' => $DB->CurrentTimeFunction(), 'AUTHOR_ID' => $ownerId, 'BLOG_ID' => $blog['ID'], "HAS_IMAGES" => "N", "HAS_TAGS" => "N", "HAS_PROPS" => "N", "HAS_SOCNET_ALL" => "N"); if (!empty($postFields["SOCNET_RIGHTS"]) && count($postFields["SOCNET_RIGHTS"]) == 1 && in_array("UA", $postFields["SOCNET_RIGHTS"])) { $postFields['HAS_SOCNET_ALL'] = 'Y'; } $newId = CBlogPost::add($postFields); $postFields["ID"] = $newId; $arParamsNotify = array("bSoNet" => true, "UserID" => $ownerId, "allowVideo" => COption::GetOptionString("blog", "allow_video", "Y"), "PATH_TO_SMILE" => $pathToSmile, "PATH_TO_POST" => $pathToPost, "SOCNET_GROUP_ID" => $blogGroupID, "user_id" => $ownerId, "NAME_TEMPLATE" => CSite::GetNameFormat(false)); CBlogPost::Notify($postFields, $blog, $arParamsNotify); BXClearCache(true, "/" . $siteId . "/blog/last_messages_list/"); $arFieldsIM = array("TYPE" => "POST", "TITLE" => $postFields["TITLE"], "URL" => CComponentEngine::MakePathFromTemplate($pathToPost, array("post_id" => $newId, "user_id" => $ownerId)), "ID" => $newId, "FROM_USER_ID" => $ownerId, "TO_USER_ID" => array(), "TO_SOCNET_RIGHTS" => $postFields["SOCNET_RIGHTS"], "TO_SOCNET_RIGHTS_OLD" => array()); CBlogPost::NotifyIm($arFieldsIM); } catch (Exception $e) { $this->WriteToTrackingService($e->getMessage()); } return CBPActivityExecutionStatus::Closed; }