function __AutoSetPerms($ID) { $ID = IntVal($ID); $arGroupPerms = CBlogUserGroupPerms::GetByID($ID); if (IntVal($arGroupPerms["POST_ID"]) == 0) { $dbBlogPosts = CBlogPost::GetList(array(), array("BLOG_ID" => $arGroupPerms["BLOG_ID"]), false, false, array("ID")); while ($arBlogPosts = $dbBlogPosts->Fetch()) { $dbGroupPerms1 = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arGroupPerms["BLOG_ID"], "USER_GROUP_ID" => $arGroupPerms["USER_GROUP_ID"], "PERMS_TYPE" => $arGroupPerms["PERMS_TYPE"], "POST_ID" => $arBlogPosts["ID"]), false, false, array("ID", "AUTOSET", "PERMS")); if ($arGroupPerms1 = $dbGroupPerms1->Fetch()) { if ($arGroupPerms1["AUTOSET"] == "Y" && $arGroupPerms["PERMS"] != $arGroupPerms1["PERMS"]) { CBlogUserGroupPerms::Update($arGroupPerms1["ID"], array("PERMS" => $arGroupPerms["PERMS"])); } } else { CBlogUserGroupPerms::Add(array("BLOG_ID" => $arGroupPerms["BLOG_ID"], "USER_GROUP_ID" => $arGroupPerms["USER_GROUP_ID"], "PERMS_TYPE" => $arGroupPerms["PERMS_TYPE"], "POST_ID" => $arBlogPosts["ID"], "PERMS" => $arGroupPerms["PERMS"], "AUTOSET" => "Y")); } } } }
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(); } }
function SetPostPerms($ID, $arPerms = array(), $permsType = BLOG_PERMS_POST) { global $DB; $ID = IntVal($ID); $permsType = $permsType == BLOG_PERMS_COMMENT ? BLOG_PERMS_COMMENT : BLOG_PERMS_POST; $arPost = CBlogPost::GetByID($ID); if ($arPost) { $DB->StartTransaction(); $arInsertedGroups = array(); foreach ($arPerms as $key => $value) { $dbGroupPerms = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "USER_GROUP_ID" => $key, "PERMS_TYPE" => $permsType, "POST_ID" => $arPost["ID"]), false, false, array("ID")); if ($arGroupPerms = $dbGroupPerms->Fetch()) { CBlogUserGroupPerms::Update($arGroupPerms["ID"], array("PERMS" => $value, "AUTOSET" => "N")); } else { CBlogUserGroupPerms::Add(array("BLOG_ID" => $arPost["BLOG_ID"], "USER_GROUP_ID" => $key, "PERMS_TYPE" => $permsType, "POST_ID" => $arPost["ID"], "AUTOSET" => "N", "PERMS" => $value)); } $arInsertedGroups[] = $key; } $dbResult = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "PERMS_TYPE" => $permsType, "POST_ID" => 0, "!USER_GROUP_ID" => $arInsertedGroups), false, false, array("ID", "USER_GROUP_ID", "PERMS")); while ($arResult = $dbResult->Fetch()) { $dbGroupPerms = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "USER_GROUP_ID" => $arResult["USER_GROUP_ID"], "PERMS_TYPE" => $permsType, "POST_ID" => $arPost["ID"]), false, false, array("ID")); if ($arGroupPerms = $dbGroupPerms->Fetch()) { CBlogUserGroupPerms::Update($arGroupPerms["ID"], array("PERMS" => $arResult["PERMS"], "AUTOSET" => "Y")); } else { CBlogUserGroupPerms::Add(array("BLOG_ID" => $arPost["BLOG_ID"], "USER_GROUP_ID" => $arResult["USER_GROUP_ID"], "PERMS_TYPE" => $permsType, "POST_ID" => $arPost["ID"], "AUTOSET" => "Y", "PERMS" => $arResult["PERMS"])); } } $DB->Commit(); } }
$groups .= ","; $groups .= CBlogGroup::Add(array("SITE_ID" => $siteID, "NAME" => GetMessage("BLOG_DEMO_GROUP_2"))); $groups .= ","; $groups .= CBlogGroup::Add(array("SITE_ID" => $siteID, "NAME" => GetMessage("BLOG_DEMO_GROUP_3"))); $groups .= ","; $groups .= CBlogGroup::Add(array("SITE_ID" => $siteID, "NAME" => GetMessage("BLOG_DEMO_GROUP_4"))); $groups .= ","; $groups .= CBlogGroup::Add(array("SITE_ID" => $siteID, "NAME" => GetMessage("BLOG_DEMO_GROUP_5"))); $groups .= ","; $groups .= CBlogGroup::Add(array("SITE_ID" => $siteID, "NAME" => GetMessage("BLOG_DEMO_GROUP_6"))); $groups .= ","; $groups .= CBlogGroup::Add(array("SITE_ID" => $siteID, "NAME" => GetMessage("BLOG_DEMO_GROUP_7"))); $blogID = CBlog::Add(array("NAME" => GetMessage("BLOG_DEMO_BLOG_NAME"), "DESCRIPTION" => GetMessage("BLOG_DEMO_BLOG_NAME"), "GROUP_ID" => $groupID, "ENABLE_IMG_VERIF" => 'Y', "EMAIL_NOTIFY" => 'Y', "ENABLE_RSS" => "Y", "ALLOW_HTML" => "Y", "URL" => "admin-blg", "ACTIVE" => "Y", "=DATE_CREATE" => $DB->GetNowFunction(), "=DATE_UPDATE" => $DB->GetNowFunction(), "OWNER_ID" => 1, "PERMS_POST" => array("1" => BLOG_PERMS_READ, "2" => BLOG_PERMS_READ), "PERMS_COMMENT" => array("1" => BLOG_PERMS_WRITE, "2" => BLOG_PERMS_WRITE))); $friends = CBlogUserGroup::Add(array("NAME" => GetMessage("BLOG_DEMO_FRIENDS"), "BLOG_ID" => $blogID)); CBlogUserGroupPerms::Add(array("BLOG_ID" => $blogID, "USER_GROUP_ID" => $friends, "PERMS_TYPE" => "P", "PERMS" => "I", "AUTOSET" => "N")); CBlogUserGroupPerms::Add(array("BLOG_ID" => $blogID, "USER_GROUP_ID" => $friends, "PERMS_TYPE" => "C", "PERMS" => "P", "AUTOSET" => "N")); $categoryID[] = CBlogCategory::Add(array("BLOG_ID" => $blogID, "NAME" => GetMessage("BLOG_DEMO_CATEGORY_1"))); $categoryID[] = CBlogCategory::Add(array("BLOG_ID" => $blogID, "NAME" => GetMessage("BLOG_DEMO_CATEGORY_2"))); $postID = CBlogPost::Add(array("TITLE" => GetMessage("BLOG_DEMO_MESSAGE_TITLE_1"), "DETAIL_TEXT" => GetMessage("BLOG_DEMO_MESSAGE_BODY_1"), "DETAIL_TEXT_TYPE" => "text", "BLOG_ID" => $blogID, "AUTHOR_ID" => 1, "=DATE_CREATE" => $DB->GetNowFunction(), "=DATE_PUBLISH" => $DB->GetNowFunction(), "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH, "ENABLE_TRACKBACK" => 'N', "ENABLE_COMMENTS" => 'Y', "CATEGORY_ID" => implode(",", $categoryID), "PERMS_P" => array(1 => BLOG_PERMS_READ, 2 => BLOG_PERMS_READ), "PERMS_C" => array(1 => BLOG_PERMS_WRITE, 2 => BLOG_PERMS_WRITE))); foreach ($categoryID as $v) { CBlogPostCategory::Add(array("BLOG_ID" => $blogID, "POST_ID" => $postID, "CATEGORY_ID" => $v)); } $arImage = CFile::MakeFileArray(dirname(__FILE__) . '/images/' . GetMessage("BLOG_DEMO_IMG")); $arImage["MODULE_ID"] = "blog"; $arFields = array("BLOG_ID" => $blogID, "POST_ID" => $postID, "USER_ID" => 1, "=TIMESTAMP_X" => $DB->GetNowFunction(), "TITLE" => GetMessage("BLOG_DEMO_IMG_TITLE"), "IMAGE_SIZE" => $arImage["size"], "FILE_ID" => $arImage); CBlogImage::Add($arFields); CBlogComment::Add(array("TITLE" => GetMessage("BLOG_DEMO_COMMENT_TITLE"), "POST_TEXT" => GetMessage("BLOG_DEMO_COMMENT_BODY"), "BLOG_ID" => $blogID, "POST_ID" => $postID, "PARENT_ID" => 0, "AUTHOR_ID" => 1, "DATE_CREATE" => ConvertTimeStamp(false, "FULL"), "AUTHOR_IP" => "192.168.0.108")); CBlogSitePath::Add(array("SITE_ID" => $siteID, "PATH" => "/communication/blog/#blog#/", "TYPE" => "B")); CBlogSitePath::Add(array("SITE_ID" => $siteID, "PATH" => "/communication/blog/#blog#/#post_id#.php", "TYPE" => "P")); CBlogSitePath::Add(array("SITE_ID" => $siteID, "PATH" => "/communication/blog/user/#user_id#.php", "TYPE" => "U")); if (IsModuleInstalled("socialnetwork")) {