/// <summary> /// Validates form data and returns error message if some error occurs. /// </summary> private string ValidateData() { if (txtName.Text.Trim() == "") { // Blog name is empty return(rfvName.ErrorMessage); } if (BlogParentPath.TrimEnd('%') == "") { // Path where blog should be created is empty return(GetString("Blogs.NewBlog.PathEmpty")); } if (MembershipContext.AuthenticatedUser.IsPublic()) { // Anonymous user is not allowed to create blog return(GetString("Blogs.NewBlog.AnonymousUser")); } return(""); }
private void btnOk_Click(object sender, EventArgs e) { // Validate all required data for new blog string errorMessage = ValidateData(); if (!LicenseHelper.LicenseVersionCheck(RequestContext.CurrentDomain, FeatureEnum.Blogs, ObjectActionEnum.Insert)) { errorMessage = GetString("cmsdesk.bloglicenselimits"); } // Get current user var user = MembershipContext.AuthenticatedUser; if (errorMessage == "") { // Get parent node for new blog TreeProvider tree = new TreeProvider(user); TreeNode parent = tree.SelectSingleNode(SiteContext.CurrentSiteName, BlogParentPath.TrimEnd('%'), TreeProvider.ALL_CULTURES); if (parent != null) { DataClassInfo blogClass = DataClassInfoProvider.GetDataClassInfo("CMS.Blog"); if (blogClass == null) { return; } // Check if blog is allowed in selected location if (!DocumentHelper.IsDocumentTypeAllowed(parent, blogClass.ClassID)) { lblError.Visible = true; lblError.Text = GetString("Content.ChildClassNotAllowed"); return; } if (!CheckPermissions || user.IsAuthorizedToCreateNewDocument(parent, "cms.blog")) { // Check if blog description allows empty value FormInfo formInfo = new FormInfo(blogClass.ClassFormDefinition); FormFieldInfo fieldInfo = formInfo.GetFormField("BlogDescription"); if ((fieldInfo != null) && !fieldInfo.AllowEmpty && String.IsNullOrWhiteSpace(txtDescription.Text)) { lblError.Visible = true; lblError.Text = GetString("blogs.newblog.descriptionempty"); return; } bool useParentNodeGroupID = tree.UseParentNodeGroupID; TreeNode blogNode; try { // Reflect group document tree.UseParentNodeGroupID = true; // Initialize and create new blog node blogNode = TreeNode.New("cms.blog", tree); blogNode.SetValue("BlogName", txtName.Text.Trim()); blogNode.SetValue("BlogDescription", txtDescription.Text.Trim()); blogNode.SetValue("BlogAllowAnonymousComments", BlogAllowAnonymousComments); blogNode.SetValue("BlogModerateComments", BlogModerateComments); blogNode.SetValue("BlogOpenCommentsFor", BlogOpenCommentsFor); blogNode.SetValue("BlogSendCommentsToEmail", BlogSendCommentsToEmail); blogNode.SetValue("BlogSideColumnText", BlogSideColumnText); blogNode.SetValue("BlogUseCAPTCHAForComments", BlogUseCAPTCHAForComments); blogNode.SetValue("BlogModerators", BlogModerators); if (BlogTeaser == Guid.Empty) { blogNode.SetValue("BlogTeaser", null); } else { blogNode.SetValue("BlogTeaser", BlogTeaser); } blogNode.SetValue("NodeOwner", user.UserID); if (NewBlogTemplate != null) { // Set the default page template if (NewBlogTemplate == "") { blogNode.SetDefaultPageTemplateID(blogClass.ClassDefaultPageTemplateID); } else { // Set the selected template PageTemplateInfo pti = PageTemplateInfoProvider.GetPageTemplateInfo(NewBlogTemplate); if (pti != null) { blogNode.NodeTemplateForAllCultures = true; blogNode.NodeTemplateID = pti.PageTemplateId; } } } blogNode.DocumentName = txtName.Text.Trim(); blogNode.DocumentCulture = LocalizationContext.PreferredCultureCode; DocumentHelper.InsertDocument(blogNode, parent, tree); } finally { tree.UseParentNodeGroupID = useParentNodeGroupID; } if (RedirectToNewBlog) { // Redirect to the new blog URLHelper.Redirect(UrlResolver.ResolveUrl(DocumentURLProvider.GetUrl(blogNode))); } else { // Display info message lblInfo.Visible = true; lblInfo.Text = GetString("General.ChangesSaved"); } } else { // Not authorized to create blog errorMessage = GetString("blogs.notallowedtocreate"); } } else { // Parent node was not found errorMessage = GetString("Blogs.NewBlog.PathNotFound"); } } if (errorMessage == "") { return; } // Display error message lblError.Visible = true; lblError.Text = errorMessage; }
private void btnOk_Click(object sender, EventArgs e) { // Validate all required data for new blog string errorMessage = ValidateData(); if (!LicenseHelper.LicenseVersionCheck(URLHelper.GetCurrentDomain(), FeatureEnum.Blogs, VersionActionEnum.Insert)) { errorMessage = GetString("cmsdesk.bloglicenselimits"); } // Get current user CurrentUserInfo user = CMSContext.CurrentUser; if (errorMessage == "") { // Get parent node for new blog TreeProvider tree = new TreeProvider(user); TreeNode parent = tree.SelectSingleNode(CMSContext.CurrentSiteName, BlogParentPath.TrimEnd('%'), TreeProvider.ALL_CULTURES); if (parent != null) { if (!CheckPermissions || user.IsAuthorizedToCreateNewDocument(parent, "cms.blog")) { bool useParentNodeGroupID = tree.UseParentNodeGroupID; TreeNode blogNode = null; try { // Reflect group document tree.UseParentNodeGroupID = true; // Initialize and create new blog node blogNode = TreeNode.New("cms.blog", tree); blogNode.SetValue("BlogName", txtName.Text.Trim()); blogNode.SetValue("BlogDescription", txtDescription.Text.Trim()); blogNode.SetValue("BlogAllowAnonymousComments", BlogAllowAnonymousComments); blogNode.SetValue("BlogModerateComments", BlogModerateComments); blogNode.SetValue("BlogOpenCommentsFor", BlogOpenCommentsFor); blogNode.SetValue("BlogSendCommentsToEmail", BlogSendCommentsToEmail); blogNode.SetValue("BlogSideColumnText", BlogSideColumnText); blogNode.SetValue("BlogUseCAPTCHAForComments", BlogUseCAPTCHAForComments); blogNode.SetValue("BlogModerators", BlogModerators); if (BlogTeaser == Guid.Empty) { blogNode.SetValue("BlogTeaser", null); } else { blogNode.SetValue("BlogTeaser", BlogTeaser); } blogNode.SetValue("NodeOwner", user.UserID); if (NewBlogTemplate != null) { // Get the BlogMonth class to set the default page template if (NewBlogTemplate == "") { DataClassInfo blogClass = DataClassInfoProvider.GetDataClass("CMS.Blog"); if (blogClass != null) { blogNode.SetDefaultPageTemplateID(blogClass.ClassDefaultPageTemplateID); } } else { // Set the selected template PageTemplateInfo pti = PageTemplateInfoProvider.GetPageTemplateInfo(NewBlogTemplate); if (pti != null) { blogNode.NodeTemplateForAllCultures = true; blogNode.NodeTemplateID = pti.PageTemplateId; } } } // Trackbacks are denied by default blogNode.SetValue("BlogEnableTrackbacks", false); blogNode.DocumentName = txtName.Text.Trim(); blogNode.DocumentCulture = CMSContext.CurrentUser.PreferredCultureCode; DocumentHelper.InsertDocument(blogNode, parent, tree); } finally { tree.UseParentNodeGroupID = useParentNodeGroupID; } if (RedirectToNewBlog) { // Redirect to the new blog URLHelper.Redirect(CMSContext.GetUrl(blogNode.NodeAliasPath)); } else { // Display info message lblInfo.Visible = true; lblInfo.Text = GetString("General.ChangesSaved"); } } else { // Not authorized to create blog errorMessage = GetString("blogs.notallowedtocreate"); } } else { // Parent node was not found errorMessage = GetString("Blogs.NewBlog.PathNotFound"); } } if (errorMessage != "") { // Display error message lblError.Visible = true; lblError.Text = errorMessage; } }