function Delete($ID) { global $DB; $ID = IntVal($ID); $arPost = CBlogPost::GetByID($ID); if ($arPost) { $db_events = GetModuleEvents("blog", "OnBeforePostDelete"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { return false; } } $dbResult = CBlogComment::GetList(array(), array("POST_ID" => $ID), false, false, array("ID")); while ($arResult = $dbResult->Fetch()) { if (!CBlogComment::Delete($arResult["ID"])) { return False; } } $dbResult = CBlogUserGroupPerms::GetList(array(), array("POST_ID" => $ID, "BLOG_ID" => $arPost["BLOG_ID"]), false, false, array("ID")); while ($arResult = $dbResult->Fetch()) { if (!CBlogUserGroupPerms::Delete($arResult["ID"])) { return False; } } $dbResult = CBlogTrackback::GetList(array(), array("POST_ID" => $ID, "BLOG_ID" => $arPost["BLOG_ID"]), false, false, array("ID")); while ($arResult = $dbResult->Fetch()) { if (!CBlogTrackback::Delete($arResult["ID"])) { return False; } } $dbResult = CBlogPostCategory::GetList(array(), array("POST_ID" => $ID, "BLOG_ID" => $arPost["BLOG_ID"]), false, false, array("ID")); while ($arResult = $dbResult->Fetch()) { if (!CBlogPostCategory::Delete($arResult["ID"])) { return False; } } $strSql = "SELECT F.ID " . "FROM b_blog_post P, b_file F " . "WHERE P.ID = " . $ID . " " . "\tAND P.ATTACH_IMG = F.ID "; $z = $DB->Query($strSql, false, "FILE: " . __FILE__ . " LINE:" . __LINE__); while ($zr = $z->Fetch()) { CFile::Delete($zr["ID"]); } unset($GLOBALS["BLOG_POST"]["BLOG_POST_CACHE_" . $ID]); $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); $result = $DB->Query("DELETE FROM b_blog_post WHERE ID = " . $ID . "", true); if (IntVal($arBlog["LAST_POST_ID"]) == $ID) { CBlog::SetStat($arPost["BLOG_ID"]); } if ($result) { $res = CBlogImage::GetList(array(), array("POST_ID" => $ID, "IS_COMMENT" => "N")); while ($aImg = $res->Fetch()) { CBlogImage::Delete($aImg['ID']); } } if ($result) { $GLOBALS["USER_FIELD_MANAGER"]->Delete("BLOG_POST", $ID); } $db_events = GetModuleEvents("blog", "OnPostDelete"); while ($arEvent = $db_events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, &$result)); } if (CModule::IncludeModule("search")) { CSearch::Index("blog", "P" . $ID, array("TITLE" => "", "BODY" => "")); //CSearch::DeleteIndex("blog", false, "COMMENT", $arPost["BLOG_ID"]."|".$ID); } return $result; } else { return false; } return True; }
public static function CallBack_DeleteComment($arFields) { if (!CModule::IncludeModule("blog")) { return false; } if (!isset($arFields["SOURCE_ID"]) || intval($arFields["SOURCE_ID"]) <= 0) { return false; } $messageId = intval($arFields["SOURCE_ID"]); if (($arBlogComment = CBlogComment::GetByID($messageId)) && CBlogComment::Delete($messageId)) { $strOKMessage = GetMessage("IDEA_SONET_DELETE_COMMENT_SOURCE_SUCCESS"); $cache = new CPHPCache(); $cache->CleanDir(SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/comment/" . $arBlogComment["POST_ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/first_page/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/pages/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/comment/" . $arBlogComment["POST_ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlogComment["BLOG_ID"] . "/post/" . $arBlogComment["POST_ID"] . "/"); } else { $strErrorMessage = GetMessage("IDEA_SONET_DELETE_COMMENT_SOURCE_ERROR"); } return array("ERROR" => $strErrorMessage, "NOTES" => $strOKMessage); }
$arResult["Perm"] = CBlog::GetBlogUserCommentPerms($arBlog["ID"], $user_id); } } if ((!empty($arPost) && ($arPost["PUBLISH_STATUS"] == BLOG_PUBLISH_STATUS_PUBLISH || $arResult["IDEA_MODERATOR"]) && $arPost["ENABLE_COMMENTS"] == "Y" || $simpleComment) && ($arBlog["ACTIVE"] == "Y" && $arGroup["SITE_ID"] == SITE_ID || $simpleComment)) { $arPost = CBlogTools::htmlspecialcharsExArray($arPost); $arResult["Post"] = $arPost; if ($arPost["BLOG_ID"] == $arBlog["ID"] || $simpleComment) { //Comment delete if (IntVal($_GET["delete_comment_id"]) > 0 && $arResult["IDEA_MODERATOR"]) { if ($_GET["success"] == "Y") { $arResult["MESSAGE"] = GetMessage("B_B_PC_MES_DELED"); } else { $arComment = CBlogComment::GetByID(IntVal($_GET["delete_comment_id"])); if ($arResult["Perm"] >= BLOG_PERMS_MODERATE && !empty($arComment)) { if (check_bitrix_sessid()) { if (CBlogComment::Delete(IntVal($_GET["delete_comment_id"]))) { BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/first_page/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/pages/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/comment/" . $arComment["POST_ID"] . "/"); BXClearCache(True, "/" . SITE_ID . "/idea/" . $arBlog["ID"] . "/post/" . $arComment["POST_ID"] . "/"); $Notify = CIdeaManagment::getInstance()->Notification(array("TYPE" => "IDEA_COMMENT", "ID" => IntVal($_GET["delete_comment_id"])))->getSonetNotify()->Remove(); LocalRedirect($APPLICATION->GetCurPageParam("", $arRemoveUriParams)); } } else { $arResult["ERROR_MESSAGE"] = GetMessage("B_B_PC_MES_ERROR_SESSION"); } } $arResult["ERROR_MESSAGE"] = GetMessage("B_B_PC_MES_ERROR_DELETE"); } } elseif (IntVal($_GET["show_comment_id"]) > 0) { $arComment = CBlogComment::GetByID(IntVal($_GET["show_comment_id"]));
} if (empty($arCacheInfo[$arResult["BLOG_GROUP_SITE_ID"]][$arResult["BLOG_URL"]])) { $arCacheInfo[$arResult["BLOG_GROUP_SITE_ID"]][$arResult["BLOG_URL"]] = array(); } if (!in_array($arResult["POST_ID"], $arCacheInfo[$arResult["BLOG_GROUP_SITE_ID"]][$arResult["BLOG_URL"]])) { $arCacheInfo[$arResult["BLOG_GROUP_SITE_ID"]][$arResult["BLOG_URL"]][] = $arResult["POST_ID"]; } } } foreach ($arID as $ID) { if (strlen($ID) <= 0) { continue; } switch ($_REQUEST['action']) { case "delete": if (!CBlogComment::Delete($ID)) { if ($ex = $APPLICATION->GetException()) { $lAdmin->AddGroupError($ex->GetString(), $ID); } else { $lAdmin->AddGroupError(GetMessage("BLB_DELETE_ERROR"), $ID); } } break; case "hide": if (!CBlogComment::Update($ID, array("PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_READY))) { if ($ex = $APPLICATION->GetException()) { $lAdmin->AddGroupError($ex->GetString(), $ID); } else { $lAdmin->AddGroupError(GetMessage("BLB_HIDE_ERROR"), $ID); } }