public static function CallBack_AddComment($arFields) { if (!CModule::IncludeModule('blog')) { return false; } $arResult = array(); $arLog = CSocNetLog::GetList(array("ID" => "DESC"), array("TMP_ID" => $arFields["LOG_ID"]), false, false, array("ID", "SOURCE_ID", "SITE_ID", "RATING_ENTITY_ID"))->Fetch(); if ($arLog) { $arIdeaPost = CBlogPost::GetById($arLog["SOURCE_ID"]); if ($arIdeaPost) { $UserIP = CBlogUser::GetUserIP(); $IdeaCommentId = CBlogComment::Add(array("BLOG_ID" => $arIdeaPost["BLOG_ID"], "POST_ID" => $arIdeaPost["ID"], "AUTHOR_ID" => $arFields["USER_ID"], "POST_TEXT" => $arFields["MESSAGE"], "DATE_CREATE" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL"), "PARENT_ID" => false, "AUTHOR_IP" => $UserIP[0], "AUTHOR_IP1" => $UserIP[1])); $arResult = array("SOURCE_ID" => $IdeaCommentId); if ($arLog["RATING_ENTITY_ID"] > 0) { $arResult["RATING_TYPE_ID"] = "BLOG_COMMENT"; $arResult["RATING_ENTITY_ID"] = $IdeaCommentId; } if (intval($IdeaCommentId) == 0) { global $APPLICATION; if ($ex = $APPLICATION->GetException()) { $arResult["ERROR"] = $ex->GetString(); } } else { //clear cache on succcess BXClearCache(True, "/" . SITE_ID . "/idea/" . $arIdeaPost["BLOG_ID"] . "/first_page/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arIdeaPost["BLOG_ID"] . "/pages/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arIdeaPost["BLOG_ID"] . "/comment/" . $arIdeaPost["ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arIdeaPost["BLOG_ID"] . "/post/" . $arIdeaPost["ID"] . "/"); } } } return $arResult; }
$link = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_CONPANY_DEPARTMENT"], array("ID" => $vv["ENTITY_ID"])); } if (strlen($name) > 0) { if (strlen($link) > 0) { if ($type == "U" && IntVal($id) > 0) { $arNewRightsName[] = "[user="******"]" . htmlspecialcharsback($name) . "[/user]"; } else { $arNewRightsName[] = "[url=" . $link . "]" . htmlspecialcharsback($name) . "[/url]"; } } else { $arNewRightsName[] = htmlspecialcharsback($name); } } } } $UserIP = CBlogUser::GetUserIP(); $arComFields = array("POST_ID" => $arParams["ID"], "BLOG_ID" => $arPost["BLOG_ID"], "POST_TEXT" => (count($arNewRightsName) > 1 ? GetMessage("B_B_SHARE") : GetMessage("B_B_SHARE_1")) . implode(", ", $arNewRightsName), "DATE_CREATE" => ConvertTimeStamp(time() + $arResult["TZ_OFFSET"], "FULL"), "AUTHOR_IP" => $UserIP[0], "AUTHOR_IP1" => $UserIP[1], "PARENT_ID" => false, "AUTHOR_ID" => $user_id, "SHARE_DEST" => implode(",", $arNewRights)); if ($comId = CBlogComment::Add($arComFields)) { BXClearCache(true, "/blog/comment/" . intval($arParams["ID"] / 100) . "/" . $arParams["ID"] . "/"); if (is_callable("CBlogComment::AddLiveComment")) { CBlogComment::addLiveComment($comId, "", array()); } if ($arPost["AUTHOR_ID"] != $user_id) { $arFieldsIM = array("TYPE" => "SHARE", "TITLE" => htmlspecialcharsback($arPost["TITLE"]), "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $arParams["ID"], "user_id" => $arPost["AUTHOR_ID"])), "ID" => $arParams["ID"], "FROM_USER_ID" => $user_id, "TO_USER_ID" => array($arPost["AUTHOR_ID"])); CBlogPost::NotifyIm($arFieldsIM); } if (!empty($arUsers2Notify)) { $arFieldsIM = array("TYPE" => "SHARE2USERS", "TITLE" => htmlspecialcharsback($arPost["TITLE"]), "URL" => CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("post_id" => $arParams["ID"], "user_id" => $arPost["AUTHOR_ID"])), "ID" => $arParams["ID"], "FROM_USER_ID" => $user_id, "TO_USER_ID" => $arUsers2Notify); CBlogPost::NotifyIm($arFieldsIM); } }
public static function AddComment_Photo_Blog($arFields, $BLOG_ID, $arLog) { if (!CModule::IncludeModule("blog")) { return false; } if (!CModule::IncludeModule("iblock")) { return false; } $arElement = false; $arFilter = array("ID" => $arLog["SOURCE_ID"]); $arSelectedFields = array("IBLOCK_ID", "ID", "NAME", "TAGS", "CODE", "IBLOCK_SECTION_ID", "DETAIL_PAGE_URL", "CREATED_BY", "PREVIEW_PICTURE", "PREVIEW_TEXT", "PROPERTY_BLOG_POST_ID", "PROPERTY_BLOG_COMMENT_CNT", "PROPERTY_REAL_PICTURE"); $db_res = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelectedFields); if ($db_res && ($res = $db_res->GetNext())) { $arElement = $res; } if ($arElement) { // check iblock properties $ELEMENT_BLOG_POST_ID = CSocNetLogTools::AddComment_Review_CheckIBlock_Blog($arElement); if ($ELEMENT_BLOG_POST_ID <= 0) { // Add Post $POST_ID = CSocNetLogTools::AddComment_Review_CreateRoot_Blog($arElement, $BLOG_ID); $bNewPost = true; } else { $POST_ID = $ELEMENT_BLOG_POST_ID; } if (intval($POST_ID) > 0) { // Add comment $commentID = false; $UserIP = CBlogUser::GetUserIP(); $arFieldsComment = array("POST_ID" => $POST_ID, "BLOG_ID" => $BLOG_ID, "POST_TEXT" => trim($arFields["TEXT_MESSAGE"]), "DATE_CREATE" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL"), "AUTHOR_IP" => $UserIP[0], "AUTHOR_IP1" => $UserIP[1], "PARENT_ID" => false); if ($GLOBALS["USER"]->IsAuthorized()) { $arFieldsComment["AUTHOR_ID"] = $GLOBALS["USER"]->GetID(); } $commentID = CBlogComment::Add($arFieldsComment); if (!$commentID) { $strError = GetMessage("SONET_ADD_COMMENT_SOURCE_ERROR"); } else { CSocNetLogTools::AddComment_Review_UpdateElement_Blog($arElement, $POST_ID, $BLOG_ID, $bNewPost); } } else { $strError = GetMessage("SONET_ADD_COMMENT_SOURCE_ERROR"); } } else { $strError = GetMessage("SONET_ADD_COMMENT_SOURCE_ERROR"); } return array("SOURCE_ID" => $commentID, "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => $commentID, "ERROR" => $strError, "NOTES" => "", "IM_MESSAGE" => $arFieldsComment ? $arFieldsComment["POST_TEXT"] : false); }
function AddComment_Microblog($arFields) { if (!CModule::IncludeModule("blog")) { return false; } $dbResult = CSocNetLog::GetList(array(), array("ID" => $arFields["LOG_ID"]), false, false, array("ID", "SOURCE_ID", "SITE_ID")); if ($arLog = $dbResult->Fetch()) { $arPost = CBlogPost::GetByID($arLog["SOURCE_ID"]); if ($arPost) { $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); $userID = $GLOBALS["USER"]->GetID(); $arLogSites = array(); $rsLogSite = CSocNetLog::GetSite($arLog["ID"]); while ($arLogSite = $rsLogSite->Fetch()) { $arLogSites[] = $arLogSite["LID"]; } $bCurrentUserIsAdmin = CSocNetUser::IsCurrentUserModuleAdmin($arLogSites); $strPermission = BLOG_PERMS_DENY; $strPostPermission = BLOG_PERMS_DENY; if ($arFields["ENTITY_TYPE"] == SONET_ENTITY_GROUP) { if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "full_post", $bCurrentUserIsAdmin)) { $strPostPermission = BLOG_PERMS_FULL; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "premoderate_post")) { $strPostPermission = BLOG_PERMS_PREMODERATE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "write_post")) { $strPostPermission = BLOG_PERMS_WRITE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "moderate_post")) { $strPostPermission = BLOG_PERMS_MODERATE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "view_post")) { $strPostPermission = BLOG_PERMS_READ; } if ($strPostPermission > BLOG_PERMS_DENY) { if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "full_comment", $bCurrentUserIsAdmin)) { $strPermission = BLOG_PERMS_FULL; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "moderate_comment")) { $strPermission = BLOG_PERMS_MODERATE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "write_comment")) { $strPermission = BLOG_PERMS_WRITE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "premoderate_comment")) { $strPermission = BLOG_PERMS_PREMODERATE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_GROUP, $arFields["ENTITY_ID"], "blog", "view_comment")) { $strPermission = BLOG_PERMS_READ; } } } else { if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "full_post", $bCurrentUserIsAdmin) || $GLOBALS["APPLICATION"]->GetGroupRight("blog") >= "W" || $arParams["USER_ID"] == $user_id) { $strPostPermission = BLOG_PERMS_FULL; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "moderate_post")) { $strPostPermission = BLOG_PERMS_MODERATE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "write_post")) { $strPostPermission = BLOG_PERMS_WRITE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "premoderate_post")) { $strPostPermission = BLOG_PERMS_PREMODERATE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "view_post")) { $strPostPermission = BLOG_PERMS_READ; } if ($strPostPermission > BLOG_PERMS_DENY) { if (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "full_comment", $bCurrentUserIsAdmin) || $GLOBALS["APPLICATION"]->GetGroupRight("blog") >= "W" || $arParams["USER_ID"] == $user_id) { $strPermission = BLOG_PERMS_FULL; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "moderate_comment")) { $strPermission = BLOG_PERMS_MODERATE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "write_comment")) { $strPermission = BLOG_PERMS_WRITE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "premoderate_comment")) { $strPermission = BLOG_PERMS_PREMODERATE; } elseif (CSocNetFeaturesPerms::CanPerformOperation($userID, SONET_ENTITY_USER, $arFields["ENTITY_ID"], "blog", "view_comment")) { $strPermission = BLOG_PERMS_READ; } } } $UserIP = CBlogUser::GetUserIP(); $path_to_post = $arFields["ENTITY_TYPE"] == SONET_ENTITY_GROUP ? $arFields["PATH_TO_GROUP_MICROBLOG_POST"] : $arFields["PATH_TO_USER_MICROBLOG_POST"]; $arFieldsComment = array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "POST_TEXT" => $arFields["TEXT_MESSAGE"], "DATE_CREATE" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL"), "AUTHOR_IP" => $UserIP[0], "AUTHOR_IP1" => $UserIP[1], "AUTHOR_ID" => $userID, "PARENT_ID" => false); if ($strPermission == BLOG_PERMS_PREMODERATE) { $arFieldsComment["PUBLISH_STATUS"] = BLOG_PUBLISH_STATUS_READY; $strNotes = GetMessage("SONET_GL_ADD_COMMENT_BLOG_PREMODERATE"); } $commentUrl = CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($path_to_post), array("blog" => $arBlog["URL"], "post_id" => CBlogPost::GetPostID($arPost["ID"], $arPost["CODE"], $arFields["BLOG_ALLOW_POST_CODE"]), "user_id" => $arBlog["OWNER_ID"], "group_id" => $arFields["ENTITY_TYPE"] == SONET_ENTITY_GROUP ? $arFields["ENTITY_ID"] : false)); $arFieldsComment["PATH"] = $commentUrl . (strpos($arFieldsComment["PATH"], "?") !== false ? "&" : "?") . "commentId=#comment_id###comment_id#"; $commentId = CBlogComment::Add($arFieldsComment); if ($strPermission == BLOG_PERMS_PREMODERATE) { unset($commentId); } BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/comment/" . $arPost["ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/post/" . $arPost["ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/first_page/"); BXClearCache(True, "/" . SITE_ID . "/blog/last_comments/"); BXClearCache(True, "/" . SITE_ID . "/blog/" . $arBlog["URL"] . "/rss_out/" . $arPost["POST_ID"] . "/C/"); BXClearCache(True, "/" . SITE_ID . "/blog/last_messages/"); BXClearCache(True, "/" . SITE_ID . "/blog/commented_posts/"); BXClearCache(True, "/" . SITE_ID . "/blog/popular_posts/"); } else { $strError = GetMessage("SONET_ADD_COMMENT_SOURCE_ERROR"); } } return array("SOURCE_ID" => $commentId, "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => $commentId, "ERROR" => $strError, "NOTES" => $strNotes); }