/// ----------------------------------------------------------------------------- /// <summary> /// UpdateSettings saves the modified settings to the Database /// </summary> /// <remarks> /// </remarks> /// <history> /// </history> /// ----------------------------------------------------------------------------- public override void UpdateSettings() { try { Theme = drpThemes.SelectedValue; Mode = drpMode.SelectedValue; TemplateId = Utilities.SafeConvertInt(drpTemplates.SelectedValue); PageSize = Utilities.SafeConvertInt(drpPageSize.SelectedValue, 10); FloodInterval = Utilities.SafeConvertInt(drpFloodInterval.SelectedValue, 0); EditInterval = Utilities.SafeConvertInt(drpEditInterval.SelectedValue, 0); AutoLink = Utilities.SafeConvertBool(rdAutoLinks.SelectedValue); DeleteBehavior = Utilities.SafeConvertInt(drpDeleteBehavior.SelectedValue); AddThis = txtAddThis.Text; ProfileVisibility = Utilities.SafeConvertInt(drpProfileVisibility.SelectedValue); Signatures = Utilities.SafeConvertInt(drpSignatures.SelectedValue); UserNameDisplay = drpUserDisplayMode.SelectedValue; FriendlyURLs = Utilities.SafeConvertBool(rdEnableURLRewriter.SelectedValue); FullTextSearch = Utilities.SafeConvertBool(rdFullTextSearch.SelectedValue); MailQueue = Utilities.SafeConvertBool(rdMailQueue.SelectedValue); MessagingType = Utilities.SafeConvertInt(drpMessagingType.SelectedValue); EnableUsersOnline = Utilities.SafeConvertBool(rdUsersOnline.SelectedValue); UseSkinBreadCrumb = Utilities.SafeConvertBool(rdUseSkinBreadCrumb.SelectedValue); if (drpMessagingTab.SelectedItem != null) { MessagingTabId = Utilities.SafeConvertInt(drpMessagingTab.SelectedValue); } PrefixURLBase = txtURLPrefixBase.Text; PrefixURLCategory = txtURLPrefixCategory.Text; PrefixURLOther = txtURLPrefixOther.Text; PrefixURLTag = txtURLPrefixTags.Text; EnablePoints = Utilities.SafeConvertBool(rdPoints.SelectedValue); AnswerPointValue = Utilities.SafeConvertInt(txtAnswerPointValue.Text, 1); ReplyPointValue = Utilities.SafeConvertInt(txtReplyPointValue.Text, 1); MarkAsAnswerPointValue = Utilities.SafeConvertInt(txtMarkAnswerPointValue.Text, 1); TopicPointValue = Utilities.SafeConvertInt(txtTopicPointValue.Text, 1); ModPointValue = Utilities.SafeConvertInt(txtModPointValue.Text, 1); AvatarHeight = Utilities.SafeConvertInt(txtAvatarHeight.Text, 48); AvatarWidth = Utilities.SafeConvertInt(txtAvatarWidth.Text, 48); TimeFormatString = !string.IsNullOrWhiteSpace(txtTimeFormat.Text) ? txtTimeFormat.Text : "h:mm tt"; DateFormatString = !string.IsNullOrWhiteSpace(txtDateFormat.Text) ? txtDateFormat.Text : "M/d/yyyy"; ForumGroupTemplate = Utilities.SafeConvertInt(drpForumGroupTemplate.SelectedValue); var adminSec = txtGroupModSec.Value.Split(','); SaveForumSecurity("groupadmin", adminSec); var memSec = txtGroupMemSec.Value.Split(','); SaveForumSecurity("groupmember", memSec); var regSec = txtGroupRegSec.Value.Split(','); SaveForumSecurity("registereduser", regSec); var anonSec = txtGroupAnonSec.Value.Split(','); SaveForumSecurity("anon", anonSec); try { if (IsFullTextAvailable && FullTextSearch && FullTextStatus != 1) // Available, selected and not currently installed { // Note: We have to jump through some hoops here to maintain Azure compatibility and prevent a race condition in the procs. // Create the full text manager proc var fullTextInstallScript = Utilities.GetSqlString("DotNetNuke.Modules.ActiveForums.sql.FullTextInstallPart1.sql"); var result = DotNetNuke.Data.DataProvider.Instance().ExecuteScript(fullTextInstallScript); // Exectute the full text manager proc to setup the search indexes DataProvider.Instance().Search_ManageFullText(true); // Create the full text search proc (can't be reliably created until the indexes are in place) fullTextInstallScript = Utilities.GetSqlString("DotNetNuke.Modules.ActiveForums.sql.FullTextInstallPart2.sql"); DotNetNuke.Data.DataProvider.Instance().ExecuteScript(fullTextInstallScript); } else if (IsFullTextAvailable && !FullTextSearch) // Available, but not selected { // Remove the search indexes if they exist DataProvider.Instance().Search_ManageFullText(false); } } catch (Exception ex) { FullTextSearch = false; Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex); } // Clear out the cache DataCache.ClearSettingsCache(ModuleId); } catch (Exception exc) //Module failed to load { Services.Exceptions.Exceptions.ProcessModuleLoadException(this, exc); } }