/// <summary> /// Creates department forum group. /// </summary> /// <param name="departmentNode">Department node</param> private void CreateDepartmentForumGroup(TreeNode departmentNode) { // Set general values string departmentName = departmentNode.GetDocumentName(); string suffix = ""; #region "Create forum group" // Get forum group code name string groupCodeName = "Department_" + departmentNode.NodeGUID; // Check if forum group with given name already exists if (ForumGroupInfoProvider.GetForumGroupInfo(groupCodeName, SiteContext.CurrentSiteID) != null) { return; } // Create base URL for forums string baseUrl = DocumentURLProvider.GetUrl(departmentNode.NodeAliasPath + "/" + FORUM_DOCUMENT_ALIAS); ForumGroupInfo forumGroupObj = new ForumGroupInfo(); forumGroupObj.GroupDescription = "Forum group for " + departmentName + " department."; suffix = " forum group"; forumGroupObj.GroupDisplayName = TextHelper.LimitLength(departmentName, 200 - suffix.Length, "") + suffix; forumGroupObj.GroupName = groupCodeName; forumGroupObj.GroupOrder = 0; forumGroupObj.GroupEnableQuote = true; forumGroupObj.GroupSiteID = SiteContext.CurrentSiteID; forumGroupObj.GroupBaseUrl = baseUrl; // Additional settings forumGroupObj.GroupEnableCodeSnippet = true; forumGroupObj.GroupEnableFontBold = true; forumGroupObj.GroupEnableFontColor = true; forumGroupObj.GroupEnableFontItalics = true; forumGroupObj.GroupEnableFontStrike = true; forumGroupObj.GroupEnableFontUnderline = true; forumGroupObj.GroupEnableQuote = true; forumGroupObj.GroupEnableURL = true; forumGroupObj.GroupEnableImage = true; ForumGroupInfoProvider.SetForumGroupInfo(forumGroupObj); #endregion #region "Create forum" string codeName = "Default_department_" + departmentNode.NodeGUID; // Check if forum with given name already exists if (ForumInfoProvider.GetForumInfo(codeName, SiteContext.CurrentSite.SiteID) != null) { return; } ForumInfo forumObj = new ForumInfo(); forumObj.ForumSiteID = SiteContext.CurrentSiteID; forumObj.ForumIsLocked = false; forumObj.ForumOpen = true; forumObj.ForumDisplayEmails = false; forumObj.ForumDescription = "Forum for " + departmentName + " department."; forumObj.ForumRequireEmail = false; suffix = " forum"; forumObj.ForumDisplayName = TextHelper.LimitLength(departmentName, 200 - suffix.Length, "") + suffix; forumObj.ForumName = codeName; forumObj.ForumGroupID = forumGroupObj.GroupID; forumObj.ForumModerated = false; forumObj.ForumAccess = 40000; forumObj.ForumPosts = 0; forumObj.ForumThreads = 0; forumObj.ForumPostsAbsolute = 0; forumObj.ForumThreadsAbsolute = 0; forumObj.ForumOrder = 0; forumObj.ForumUseCAPTCHA = false; forumObj.SetValue("ForumHTMLEditor", null); // Set security forumObj.AllowAccess = SecurityAccessEnum.AuthorizedRoles; forumObj.AllowAttachFiles = SecurityAccessEnum.AuthorizedRoles; forumObj.AllowMarkAsAnswer = SecurityAccessEnum.AuthorizedRoles; forumObj.AllowPost = SecurityAccessEnum.AuthorizedRoles; forumObj.AllowReply = SecurityAccessEnum.AuthorizedRoles; forumObj.AllowSubscribe = SecurityAccessEnum.AuthorizedRoles; if (ForumInfoProvider.LicenseVersionCheck(RequestContext.CurrentDomain, FeatureEnum.Forums, ObjectActionEnum.Insert)) { ForumInfoProvider.SetForumInfo(forumObj); } #endregion }
/// <summary> /// Sets data to database. /// </summary> protected void btnOK_Click(object sender, EventArgs e) { // Check MODIFY permission for forums if (!CheckPermissions("cms.forums", PERMISSION_MODIFY)) { return; } string codeName = txtForumName.Text.Trim(); // Get safe code name for simple display mode if (DisplayMode == ControlDisplayModeEnum.Simple) { codeName = ValidationHelper.GetCodeName(txtForumDisplayName.Text.Trim(), 50) + "_group_" + CommunityGroupGUID; } // Check required fields string errorMessage = new Validator().NotEmpty(txtForumDisplayName.Text, GetString("Forum_General.EmptyDisplayName")).NotEmpty(codeName, GetString("Forum_General.EmptyCodeName")).Result; if (errorMessage == String.Empty && !ValidationHelper.IsCodeName(codeName)) { errorMessage = GetString("general.errorcodenameinidentifierformat"); } if (String.IsNullOrEmpty(errorMessage)) { if (SiteContext.CurrentSite != null) { // If forum with given name already exists show error message if (ForumInfoProvider.GetForumInfo(codeName, SiteContext.CurrentSiteID, CommunityGroupID) != null) { ShowError(GetString("Forum_Edit.ForumAlreadyExists")); return; } // Set properties to newly created object Forum.ForumSiteID = SiteContext.CurrentSite.SiteID; Forum.ForumIsLocked = chkForumLocked.Checked; Forum.ForumOpen = chkForumOpen.Checked; chkForumDisplayEmails.SetThreeStateValue(Forum, "ForumDisplayEmails"); Forum.ForumDescription = txtForumDescription.Text.Trim(); chkForumRequireEmail.SetThreeStateValue(Forum, "ForumRequireEmail"); Forum.ForumDisplayName = txtForumDisplayName.Text.Trim(); Forum.ForumName = codeName; Forum.ForumGroupID = mGroupId; Forum.ForumModerated = chkForumModerated.Checked; Forum.ForumAccess = 40000; Forum.ForumPosts = 0; Forum.ForumThreads = 0; Forum.ForumPostsAbsolute = 0; Forum.ForumThreadsAbsolute = 0; Forum.ForumOrder = 0; chkCaptcha.SetThreeStateValue(Forum, "ForumUseCAPTCHA"); Forum.ForumCommunityGroupID = CommunityGroupID; // For simple display mode skip some properties if (DisplayMode != ControlDisplayModeEnum.Simple) { Forum.ForumBaseUrl = txtBaseUrl.Text.Trim(); Forum.ForumUnsubscriptionUrl = txtUnsubscriptionUrl.Text.Trim(); chkUseHTML.SetThreeStateValue(Forum, "ForumHTMLEditor"); if (chkInheritBaseUrl.Checked) { Forum.ForumBaseUrl = null; } if (chkInheritUnsubscribeUrl.Checked) { Forum.ForumUnsubscriptionUrl = null; } } // Check license if (ForumInfoProvider.LicenseVersionCheck(RequestContext.CurrentDomain, FeatureEnum.Forums, ObjectActionEnum.Insert)) { ForumInfoProvider.SetForumInfo(Forum); mForumId = Forum.ForumID; RaiseOnSaved(); } else { ShowError(GetString("LicenseVersionCheck.Forums")); } } } else { ShowError(errorMessage); } }
/// <summary> /// Sets data to database. /// </summary> protected void btnOK_Click(object sender, EventArgs e) { // Check MODIFY permission for forums if (!CheckPermissions("cms.forums", CMSAdminControl.PERMISSION_MODIFY)) { return; } string codeName = txtForumName.Text.Trim(); // Get safe code name for simple display mode if (DisplayMode == ControlDisplayModeEnum.Simple) { codeName = ValidationHelper.GetCodeName(txtForumDisplayName.Text.Trim(), 50) + "_group_" + this.CommunityGroupGUID; } // Check required fields string errorMessage = new Validator().NotEmpty(txtForumDisplayName.Text, GetString("Forum_General.EmptyDisplayName")).NotEmpty(codeName, GetString("Forum_General.EmptyCodeName")).Result; if (errorMessage == String.Empty && !ValidationHelper.IsCodeName(codeName)) { errorMessage = GetString("general.errorcodenameinidentificatorformat"); } if (errorMessage == "") { if (CMSContext.CurrentSite != null) { // If forum with given name already exists show error message if (ForumInfoProvider.GetForumInfo(codeName, CMSContext.CurrentSiteID, CommunityGroupID) != null) { lblError.Visible = true; lblError.Text = GetString("Forum_Edit.ForumAlreadyExists"); return; } // Create new object ForumInfo forumObj = new ForumInfo(); // Set new properties forumObj.ForumSiteID = CMSContext.CurrentSite.SiteID; forumObj.ForumIsLocked = chkForumLocked.Checked; forumObj.ForumOpen = chkForumOpen.Checked; forumObj.ForumDisplayEmails = chkForumDisplayEmails.Checked; forumObj.ForumDescription = txtForumDescription.Text.Trim(); forumObj.ForumRequireEmail = chkForumRequireEmail.Checked; forumObj.ForumDisplayName = txtForumDisplayName.Text.Trim(); forumObj.ForumName = codeName; forumObj.ForumGroupID = this.mGroupId; forumObj.ForumModerated = chkForumModerated.Checked; forumObj.ForumAccess = 40000; forumObj.ForumPosts = 0; forumObj.ForumThreads = 0; forumObj.ForumPostsAbsolute = 0; forumObj.ForumThreadsAbsolute = 0; forumObj.ForumOrder = 0; forumObj.ForumUseCAPTCHA = chkCaptcha.Checked; forumObj.ForumCommunityGroupID = CommunityGroupID; // For simple display mode skip some properties if (DisplayMode != ControlDisplayModeEnum.Simple) { forumObj.ForumBaseUrl = txtBaseUrl.Text.Trim(); forumObj.ForumUnsubscriptionUrl = txtUnsubscriptionUrl.Text.Trim(); forumObj.ForumHTMLEditor = chkUseHTML.Checked; if (chkInheritBaseUrl.Checked) { forumObj.ForumBaseUrl = null; } if (chkInheritUnsubscribeUrl.Checked) { forumObj.ForumUnsubscriptionUrl = null; } } // Clear inherited values if (chkInheritUseHTML.Checked) { forumObj.SetValue("ForumHTMLEditor", null); } if (chkInheritForumDisplayEmails.Checked) { forumObj.SetValue("ForumDisplayEmails", null); } if (chkInheritForumRequireEmail.Checked) { forumObj.SetValue("ForumRequireEmail", null); } if (chkInheritCaptcha.Checked) { forumObj.SetValue("ForumUseCAPTCHA", null); } // Check licence if (ForumInfoProvider.LicenseVersionCheck(URLHelper.GetCurrentDomain(), FeatureEnum.Forums, VersionActionEnum.Insert)) { ForumInfoProvider.SetForumInfo(forumObj); this.mForumId = forumObj.ForumID; this.RaiseOnSaved(); } else { lblError.Visible = true; lblError.Text = GetString("LicenseVersionCheck.Forums"); } } } else { lblError.Visible = true; lblError.Text = errorMessage; } }
/// <summary> /// Creates group forum. /// </summary> /// <param name="group">Particular group info object</param> private void CreateGroupForum(GroupInfo group) { #region "Create forum group" // Get forum group code name string forumGroupCodeName = "Forums_group_" + group.GroupGUID; // Check if forum group with given name already exists if (ForumGroupInfoProvider.GetForumGroupInfo(forumGroupCodeName, SiteContext.CurrentSiteID) != null) { return; } // Create forum base URL string baseUrl = null; TreeNode groupDocument = TreeProvider.SelectSingleNode(group.GroupNodeGUID, DocumentContext.CurrentDocumentCulture.CultureCode, SiteContext.CurrentSiteName); if (groupDocument != null) { baseUrl = DocumentURLProvider.GetUrl(groupDocument.NodeAliasPath + "/" + FORUM_DOCUMENT_ALIAS); } ForumGroupInfo forumGroupObj = new ForumGroupInfo(); const string suffix = " forums"; forumGroupObj.GroupDisplayName = TextHelper.LimitLength(group.GroupDisplayName, 200 - suffix.Length, string.Empty) + suffix; forumGroupObj.GroupName = forumGroupCodeName; forumGroupObj.GroupOrder = 0; forumGroupObj.GroupEnableQuote = true; forumGroupObj.GroupGroupID = group.GroupID; forumGroupObj.GroupSiteID = SiteContext.CurrentSiteID; forumGroupObj.GroupBaseUrl = baseUrl; // Additional settings forumGroupObj.GroupEnableCodeSnippet = true; forumGroupObj.GroupEnableFontBold = true; forumGroupObj.GroupEnableFontColor = true; forumGroupObj.GroupEnableFontItalics = true; forumGroupObj.GroupEnableFontStrike = true; forumGroupObj.GroupEnableFontUnderline = true; forumGroupObj.GroupEnableQuote = true; forumGroupObj.GroupEnableURL = true; forumGroupObj.GroupEnableImage = true; // Set forum group info ForumGroupInfoProvider.SetForumGroupInfo(forumGroupObj); #endregion #region "Create forum" string codeName = "General_discussion_group_" + group.GroupGUID; // Check if forum with given name already exists if (ForumInfoProvider.GetForumInfo(codeName, SiteContext.CurrentSiteID, group.GroupID) != null) { return; } // Create new forum object ForumInfo forumObj = new ForumInfo(); forumObj.ForumSiteID = SiteContext.CurrentSiteID; forumObj.ForumIsLocked = false; forumObj.ForumOpen = true; forumObj.ForumDisplayEmails = false; forumObj.ForumRequireEmail = false; forumObj.ForumDisplayName = "General discussion"; forumObj.ForumName = codeName; forumObj.ForumGroupID = forumGroupObj.GroupID; forumObj.ForumModerated = false; forumObj.ForumAccess = 40000; forumObj.ForumPosts = 0; forumObj.ForumThreads = 0; forumObj.ForumPostsAbsolute = 0; forumObj.ForumThreadsAbsolute = 0; forumObj.ForumOrder = 0; forumObj.ForumUseCAPTCHA = false; forumObj.SetValue("ForumHTMLEditor", null); // Set security forumObj.AllowAccess = SecurityAccessEnum.GroupMembers; forumObj.AllowAttachFiles = SecurityAccessEnum.GroupMembers; forumObj.AllowMarkAsAnswer = SecurityAccessEnum.GroupMembers; forumObj.AllowPost = SecurityAccessEnum.GroupMembers; forumObj.AllowReply = SecurityAccessEnum.GroupMembers; forumObj.AllowSubscribe = SecurityAccessEnum.GroupMembers; if (ForumInfoProvider.LicenseVersionCheck(RequestContext.CurrentDomain, FeatureEnum.Forums, ObjectActionEnum.Insert)) { ForumInfoProvider.SetForumInfo(forumObj); } #endregion }