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; }
$arParams["DATE_TIME_FORMAT"] = trim(empty($arParams["DATE_TIME_FORMAT"]) ? $DB->DateFormatToPHP(CSite::GetDateFormat("FULL")) : $arParams["DATE_TIME_FORMAT"]); if (COption::GetOptionString("blog", "enable_trackback", "Y") == "Y") { if ($arPost = CBlogPost::GetByID($arParams["ID"])) { $arPost = CBlogTools::htmlspecialcharsExArray($arPost); $arResult["Post"] = $arPost; $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); $arBlog = CBlogTools::htmlspecialcharsExArray($arBlog); $arResult["USER_ID"] = $USER->GetID(); $arResult["PostPerm"] = CBlogPost::GetBlogUserPostPerms($arParams["ID"], $arResult["USER_ID"]); $arResult["Blog"] = $arBlog; $arBlogUrl = CBlog::GetByUrl($arParams["BLOG_URL"]); if (!empty($arBlogUrl) && $arBlogUrl["URL"] == $arBlog["URL"]) { if ($arPost["ENABLE_TRACKBACK"] == "Y") { if ($arResult["PostPerm"] > BLOG_PERMS_DENY) { if (check_bitrix_sessid() && IntVal($_GET["delete_trackback_id"]) > 0 && CBlogPost::CanUserDeletePost(IntVal($arPost["ID"]), IntVal($USER->GetID()))) { CBlogTrackback::Delete(IntVal($_GET["delete_trackback_id"])); if (intval($arBlog["SOCNET_GROUP_ID"]) > 0 && CModule::IncludeModule("socialnetwork") && method_exists("CSocNetGroup", "GetSite")) { $arSites = array(); $rsGroupSite = CSocNetGroup::GetSite($arBlog["SOCNET_GROUP_ID"]); while ($arGroupSite = $rsGroupSite->Fetch()) { $arSites[] = $arGroupSite["LID"]; } } else { $arSites = array(SITE_ID); } foreach ($arSites as $site_id_tmp) { BXClearCache(True, "/" . $site_id_tmp . "/blog/" . $arBlog["URL"] . "/trackback/" . $arPost["ID"] . "/"); } } $cache = new CPHPCache(); $cache_id = "blog_trackback_" . serialize($arParams) . "_" . $arResult["PostPerm"];