require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
$blogModulePermissions = $APPLICATION->GetGroupRight("blog");
if ($blogModulePermissions < "R")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/blog/include.php");
IncludeModuleLangFile(__FILE__);
$errorMessage = "";
$bVarsFromForm = false;
$aTabs = array(
array("DIV" => "edit1", "TAB" => GetMessage("BLBE_TAB_BLOG"), "ICON" => "blog", "TITLE" => GetMessage("BLBE_TAB_BLOG_DESCR")),
array("DIV" => "edit2", "TAB" => GetMessage("BLBE_TAB_BLOG_PERMS"), "ICON" => "blog", "TITLE" => GetMessage("BLBE_TAB_BLOG_PERMS_DESCR")),
);
$aTabs[] = $USER_FIELD_MANAGER->EditFormTab("BLOG_BLOG");
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$ID = intval($ID);
if ($REQUEST_METHOD=="POST" && $Update <> '' && $blogModulePermissions>="W" && check_bitrix_sessid())
{
$arFields = array(
"NAME" => $NAME,
"DESCRIPTION" => $DESCRIPTION,
"=DATE_UPDATE" => $DB->CurrentTimeFunction(),
"URL" => $_POST["URL"],
//"REAL_URL" => $REAL_PATH,
"OWNER_ID" => $OWNER_ID,
"GROUP_ID" => $GROUP_ID,
"ACTIVE" => (($ACTIVE == "Y") ? "Y" : "N"),
"ENABLE_COMMENTS" => (($ENABLE_COMMENTS == "Y") ? "Y" : "N"),
"ENABLE_IMG_VERIF" => (($ENABLE_IMG_VERIF == "Y") ? "Y" : "N"),
"EMAIL_NOTIFY" => (($EMAIL_NOTIFY == "Y") ? "Y" : "N"),
"ENABLE_RSS" => (($ENABLE_RSS == "Y") ? "Y" : "N"),
"SEARCH_INDEX" => (($SEARCH_INDEX == "Y") ? "Y" : "N"),
"USE_SOCNET" => (($USE_SOCNET == "Y") ? "Y" : "N"),
"PERMS_POST" => $PERMS_P,
"PERMS_COMMENT" => $PERMS_C,
"EDITOR_USE_FONT" => (($EDITOR_USE_FONT == "Y") ? "Y" : "N"),
"EDITOR_USE_LINK" => (($EDITOR_USE_LINK == "Y") ? "Y" : "N"),
"EDITOR_USE_IMAGE" => (($EDITOR_USE_IMAGE == "Y") ? "Y" : "N"),
"EDITOR_USE_VIDEO" => (($EDITOR_USE_VIDEO == "Y") ? "Y" : "N"),
"EDITOR_USE_FORMAT" => (($EDITOR_USE_FORMAT == "Y") ? "Y" : "N"),
);
if(!IsModuleInstalled("socialnetwork"))
unset($arFields["USE_SOCNET"]);
if(intval($OWNER_ID) > 0)
$arFields["OWNER_ID"] = intval($OWNER_ID);
else
$arFields["OWNER_ID"] = false;
$USER_FIELD_MANAGER->EditFormAddFields("BLOG_BLOG", $arFields);
if ($ID > 0)
{
$dbBlog = CBlog::GetList(
array(),
array("ID" => $ID),
false,
false,
array("ID", "GROUP_SITE_ID", "GROUP_ID")
);
$arBlogOld = $dbBlog->Fetch();
$result = CBlog::Update($ID, $arFields);
}
else
{
$arFields["=DATE_CREATE"] = $DB->CurrentTimeFunction();
$ID = CBlog::Add($arFields);
$ID = intval($ID);
$result = ($ID > 0);
$dbBlog = CBlog::GetList(
array(),
array("ID" => $ID),
false,
false,
array("ID", "GROUP_SITE_ID", "GROUP_ID")
);
$arBlogOld = $dbBlog->Fetch();
}
if(CModule::IncludeModule("socialnetwork"))
{
if($arFields["USE_SOCNET"] == "Y")
{
$bRights = false;
$featureOperationPerms = CSocNetFeaturesPerms::GetOperationPerm(SONET_ENTITY_USER, $arFields["OWNER_ID"], "blog", "view_post");
if ($featureOperationPerms == SONET_RELATIONS_TYPE_ALL)
$bRights = true;
if($bRights)
CBlog::AddSocnetRead($ID);
else
{
if(CBlog::GetSocnetReadByBlog($ID))
CBlog::DeleteSocnetRead($ID);
}
}
else
{
if(CBlog::GetSocnetReadByBlog($ID))
CBlog::DeleteSocnetRead($ID);
}
}
if (!$result)
{
$bVarsFromForm = true;
if ($ex = $APPLICATION->GetException())
$errorMessage .= $ex->GetString()."
";
else
$errorMessage .= GetMessage("BLBE_SAVE_ERROR")."
";
}
if ($errorMessage == '')
{
if (!empty($arBlogOld))
{
if($arBlogOld["GROUP_ID"] != $arFields["GROUP_ID"])
{
$arBlogGroupCur = CBlogGroup::GetByID($arFields["GROUP_ID"]);
if($arBlogOld["GROUP_SITE_ID"] != $arBlogGroupCur["SITE_ID"])
{
BXClearCache(True, "/".$arBlogGroupCur["SITE_ID"]."/blog/");
BXClearCache(True, "/".SITE_ID."/blog/last_messages/");
BXClearCache(True, "/".SITE_ID."/blog/commented_posts/");
BXClearCache(True, "/".SITE_ID."/blog/popular_posts/");
BXClearCache(True, "/".SITE_ID."/blog/last_comments/");
BXClearCache(True, "/".SITE_ID."/blog/popular_blogs/");
BXClearCache(True, "/".SITE_ID."/blog/new_blogs/");
}
}
BXClearCache(True, "/".$arBlogOld["GROUP_SITE_ID"]."/blog/");
}
if ($apply == '')
LocalRedirect("/bitrix/admin/blog_blog.php?lang=".LANG.GetFilterParams("filter_", false));
else
LocalRedirect("/bitrix/admin/blog_blog_edit.php?lang=".LANG."&ID=".$ID."&".$tabControl->ActiveTabParam());
}
else
{
$bVarsFromForm = true;
}
}
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/blog/prolog.php");
if ($ID > 0)
$APPLICATION->SetTitle(GetMessage("BLBE_UPDATING"));
else
$APPLICATION->SetTitle(GetMessage("BLBE_ADDING"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
ClearVars("str_");
$dbBlog = CBlog::GetList(
array(),
array("ID" => $ID),
false,
false,
array("ID", "NAME", "DESCRIPTION", "DATE_CREATE", "DATE_UPDATE", "ACTIVE", "OWNER_ID", "URL", "REAL_URL", "GROUP_ID", "ENABLE_COMMENTS", "ENABLE_IMG_VERIF", "ENABLE_RSS", "LAST_POST_ID", "LAST_POST_DATE", "EMAIL_NOTIFY", "SEARCH_INDEX", "USE_SOCNET", "EDITOR_USE_FONT", "EDITOR_USE_LINK", "EDITOR_USE_IMAGE", "EDITOR_USE_FORMAT", "EDITOR_USE_VIDEO")
);
if (!$dbBlog->ExtractFields("str_"))
$ID = 0;
if ($bVarsFromForm)
$DB->InitTableVarsForEdit("b_blog", "", "str_");
?>
$aMenu = array(
array(
"TEXT" => GetMessage("BLBE_2FLIST"),
"ICON" => "btn_list",
"LINK" => "/bitrix/admin/blog_blog.php?lang=".LANG."&".GetFilterParams("filter_", false)
)
);
if ($ID > 0 && $blogModulePermissions >= "W")
{
$aMenu[] = array("SEPARATOR" => "Y");
$aMenu[] = array(
"TEXT" => GetMessage("BLBE_NEW_BLOG"),
"ICON" => "btn_new",
"LINK" => "/bitrix/admin/blog_blog_edit.php?lang=".LANG."&".GetFilterParams("filter_", false)
);
$aMenu[] = array(
"TEXT" => GetMessage("BLBE_DELETE_BLOG"),
"ICON" => "btn_delete",
"LINK" => "javascript:if(confirm('".GetMessage("BLBE_DELETE_BLOG_CONFIRM")."')) window.location='/bitrix/admin/blog_blog.php?ID=".$ID."&action=delete&lang=".LANG."&".bitrix_sessid_get()."#tb';",
"WARNING" => "Y"
);
}
$context = new CAdminContextMenu($aMenu);
$context->Show();
?>