public static function Delete($ID) { global $DB; $ID = IntVal($ID); if ($ID == 1 || $ID == 2) return False; $arGroup = CBlogUserGroup::GetByID($ID); if ($arGroup) { $dbResult = CBlogUserGroupPerms::GetList( array(), array("USER_GROUP_ID" => $ID, "BLOG_ID" => $arGroup["BLOG_ID"]), false, false, array("ID") ); if ($arResult = $dbResult->Fetch()) { if (!CBlogUserGroupPerms::Delete($arResult["ID"])) return False; } $DB->Query("DELETE FROM b_blog_user2user_group WHERE USER_GROUP_ID = ".$ID."", true); unset($GLOBALS["BLOG_USER_GROUP"]["BLOG_USER_GROUP_CACHE_".$ID]); return $DB->Query("DELETE FROM b_blog_user_group WHERE ID = ".$ID."", true); } return True; }
function Delete($ID) { global $DB; $ID = IntVal($ID); $arGroupPerms = CBlogUserGroupPerms::GetByID($ID); if (IntVal($arGroupPerms["POST_ID"]) == 0) { $dbResult = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arGroupPerms["BLOG_ID"], "USER_GROUP_ID" => $arGroupPerms["USER_GROUP_ID"], "PERMS_TYPE" => $arGroupPerms["PERMS_TYPE"], "!POST_ID" => 0, "AUTOSET" => "Y"), false, false, array("ID")); while ($arResult = $dbResult->Fetch()) { CBlogUserGroupPerms::Delete($arResult["ID"]); } } unset($GLOBALS["BLOG_USER_GROUP_PERMS"]["BLOG_USER_GROUP_PERMS_CACHE_" . $ID]); return $DB->Query("DELETE FROM b_blog_user_group_perms WHERE ID = " . $ID . "", true); }
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; }
} elseif ($arPerms['PERMS_TYPE'] == 'C') { $arUGperms_c[$arPerms['USER_GROUP_ID']] = $arPerms['PERMS']; } } } else { $POST_TITLE = $_POST['POST_TITLE']; $POST_MESSAGE = $_POST['POST_MESSAGE']; $PUBLISH_STATUS = $_POST['PUBLISH_STATUS']; $ENABLE_TRACKBACK = $_POST['ENABLE_TRACKBACK']; $DATE_PUBLISH = $_POST['DATE_PUBLISH'] ? $_POST['DATE_PUBLISH'] : ConvertTimeStamp(time(), "FULL"); if ($_POST['apply'] || $_POST['save']) { $arUGperms_p = $_POST['perms_p']; $arUGperms_c = $_POST['perms_c']; $bExtendedPerms = $_POST['blog_perms'] == 1 ? true : false; } else { $res = CBlogUserGroupPerms::GetList(array("ID" => "DESC"), array("BLOG_ID" => $BLOG_ID, "POST_ID" => 0)); while ($arPerms = $res->Fetch()) { if ($arPerms['PERMS_TYPE'] == 'P') { $arUGperms_p[$arPerms['USER_GROUP_ID']] = $arPerms['PERMS']; } elseif ($arPerms['PERMS_TYPE'] == 'C') { $arUGperms_c[$arPerms['USER_GROUP_ID']] = $arPerms['PERMS']; } } } } ############################################################## # Начало вывода формы ############################################################## if (strlen($strError) > 0) { echo ShowError($strError); }
<?php } } ?> <tr class="heading"> <td colspan="2"><?php echo GetMessage("BLBE_P_COMMENT"); ?> :</td> </tr> <?php if ($ID > 0) { $arGroupPerms = array(); $dbGroupPerms = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $ID, "PERMS_TYPE" => BLOG_PERMS_COMMENT, "POST_ID" => 0)); while ($arGroupPerm = $dbGroupPerms->Fetch()) { $arGroupPerms[IntVal($arGroupPerm["USER_GROUP_ID"])] = $arGroupPerm["PERMS"]; } } ?> <tr> <td><?php echo GetMessage("BLBE_P_ALL"); ?> :</td> <td> <select name="PERMS_C[1]"> <?php reset($GLOBALS["AR_BLOG_PERMS"]); while (list($key, $val) = each($GLOBALS["AR_BLOG_PERMS"])) {
function SetBlogPerms($ID, $arPerms = array(), $permsType = BLOG_PERMS_POST) { global $DB; $ID = IntVal($ID); $permsType = $permsType == BLOG_PERMS_COMMENT ? BLOG_PERMS_COMMENT : BLOG_PERMS_POST; $arBlog = CBlog::GetByID($ID); if ($arBlog) { $DB->StartTransaction(); foreach ($arPerms as $key => $value) { $dbGroupPerms = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $ID, "USER_GROUP_ID" => $key, "PERMS_TYPE" => $permsType, "POST_ID" => 0), false, false, array("ID")); if ($arGroupPerms = $dbGroupPerms->Fetch()) { CBlogUserGroupPerms::Update($arGroupPerms["ID"], array("PERMS" => $value)); } else { CBlogUserGroupPerms::Add(array("BLOG_ID" => $arBlog["ID"], "USER_GROUP_ID" => $key, "PERMS_TYPE" => $permsType, "POST_ID" => false, "AUTOSET" => "N", "PERMS" => $value)); } } $DB->Commit(); } }