/// <summary> /// Gets and bulk updates settings categories. Called when the "Get and bulk update categories" button is pressed. /// Expects the CreateSettingsCategory method to be run first. /// </summary> private bool GetAndBulkUpdateSettingsCategories() { // Prepare the parameters string where = "CategoryName LIKE 'MyNew%' AND CategoryIsGroup = 0"; // Get the settings categories DataSet categories = SettingsCategoryInfoProvider.GetSettingsCategories(where, null); if (!DataHelper.DataSourceIsEmpty(categories)) { // Loop through the individual items foreach (DataRow categoryDr in categories.Tables[0].Rows) { // Create object from DataRow SettingsCategoryInfo modifyCategory = new SettingsCategoryInfo(categoryDr); // Update the property modifyCategory.CategoryDisplayName = modifyCategory.CategoryDisplayName.ToUpper(); // Update the settings category SettingsCategoryInfoProvider.SetSettingsCategoryInfo(modifyCategory); } return(true); } return(false); }
protected void Page_Load(object sender, EventArgs e) { if (CultureHelper.IsUICultureRTL()) { ControlsHelper.ReverseFrames(colsFrameset); } int moduleId = QueryHelper.GetInteger("moduleid", 0); int catId = QueryHelper.GetInteger("categoryid", -1); if (catId <= 0) { string whereCond = moduleId > 0 ? "CategoryResourceID = " + moduleId : "CategoryParentID = (SELECT CategoryId FROM CMS_SettingsCategory WHERE CategoryName = 'CMS.Settings')"; DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories(whereCond, "CategoryLevel, CategoryOrder", 1, "CategoryIsGroup, CategoryID, CategoryParentID"); if (!DataHelper.DataSourceIsEmpty(ds)) { DataRow row = ds.Tables[0].Rows[0]; catId = ValidationHelper.GetBoolean(row["CategoryIsGroup"], false) ? ValidationHelper.GetInteger(row["CategoryParentID"], 0) : ValidationHelper.GetInteger(row["CategoryID"], 0); } else { catId = SettingsCategoryInfoProvider.GetRootSettingsCategoryInfo().CategoryID; } } frameTree.Attributes["src"] = "Tree.aspx?categoryid=" + catId + "&moduleid=" + moduleId; var queryString = "categoryid=" + catId + "&moduleid=" + moduleId + "&objectID=" + catId + "&objectParentID=" + moduleId; frameMain.Attributes["src"] = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "EditSettingsCategory", false), queryString); ScriptHelper.HideVerticalTabs(this); }
/// <summary> /// Gets and bulk updates settings groups. Called when the "Get and bulk update groups" button is pressed. /// Expects the CreateSettingsGroup method to be run first. /// </summary> private bool GetAndBulkUpdateSettingsGroups() { // Prepare the parameters string where = "CategoryName LIKE 'MyNew%' AND CategoryIsGroup = 1"; string orderBy = "CategoryName"; // Get the data DataSet groups = SettingsCategoryInfoProvider.GetSettingsCategories(where, orderBy); if (!DataHelper.DataSourceIsEmpty(groups)) { // Loop through the individual items foreach (DataRow groupDr in groups.Tables[0].Rows) { // Create object from DataRow SettingsCategoryInfo modifyGroup = new SettingsCategoryInfo(groupDr); // Update the property modifyGroup.CategoryDisplayName = modifyGroup.CategoryDisplayName.ToUpper(); // Update settings group SettingsCategoryInfoProvider.SetSettingsCategoryInfo(modifyGroup); } return(true); } return(false); }
/// <summary> /// Method removes obsolete settings. /// </summary> private static void CleanupSettings() { var settings = SettingsKeyInfoProvider.GetSettingsKeys().Where(@"[KeyName] = 'CMSFacebookPageId' OR [KeyName] = 'CMSFacebookAccessToken' OR [KeyName] = 'CMSFacebookURLShortenerType' OR [KeyName] = 'CMSTwitterURLShortenerType' OR [KeyName] = 'CMSTwitterConsumerKey' or [KeyName] = 'CMSTwitterConsumerSecret' OR [KeyName] = 'CMSTwitterAccessToken' OR [KeyName] = 'CMSTwitterAccessTokenSecret' OR [KeyName] = 'CMSRequiredFacebookPage'"); foreach (SettingsKeyInfo settingsKeyInfo in settings) { SettingsKeyInfoProvider.DeleteSettingsKeyInfo(settingsKeyInfo); } var categories = SettingsCategoryInfoProvider.GetSettingsCategories().Where(@"[CategoryName] = 'CMS.Facebook.UrlShortening' OR [CategoryName] = 'CMS.Twitter.General' OR [CategoryName] = 'CMS.Twitter.UrlShortening' OR [CategoryName] = 'CMS.Twitter'"); foreach (SettingsCategoryInfo category in categories) { SettingsCategoryInfoProvider.DeleteSettingsCategoryInfo(category); } }
/// <summary> /// Gets path containing display names of all predecessors of given category and name of category itself. /// </summary> /// <param name="child">Category to get path from</param> /// <returns>String containing path to given Category</returns> private string GetCategoryPathNames(SettingsCategoryInfo child) { // Convert IDPath to be suitable for IN-clause of SQL query string inClause = child.CategoryIDPath.Remove(0, 1).Replace('/', ','); StringBuilder sb = new StringBuilder(""); if (!string.IsNullOrEmpty(inClause)) { // Get display names of all categories from path, order by nesting level DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories(string.Format("CategoryID IN ({0}) AND CategoryLevel > 0", inClause), "CategoryLevel", -1, "CategoryDisplayName"); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow row in ds.Tables[0].Rows) { // No slash before first name if (sb.Length > 0) { sb.Append(" / "); } sb.Append(ValidationHelper.GetString(row["CategoryDisplayName"], "")); } } } return(sb.ToString()); }
protected void Page_Load(object sender, EventArgs e) { // Get query strings mCategoryId = QueryHelper.GetInteger("categoryid", 0); mSiteId = QueryHelper.GetInteger("siteid", 0); // Assign category id, site id SettingsGroupViewer.CategoryID = mCategoryId; SettingsGroupViewer.SiteID = mSiteId; if (SettingsGroupViewer.SettingsCategoryInfo == null) { // Get root category info SettingsCategoryInfo sci = SettingsCategoryInfoProvider.GetRootSettingsCategoryInfo(); SettingsGroupViewer.CategoryID = sci.CategoryID; } // Get search text if exist string search = QueryHelper.GetString("search", String.Empty).Trim(); // If root selected show search controls if ((SettingsKeyProvider.DevelopmentMode) && (SettingsGroupViewer.CategoryName == "CMS.Settings")) { pnlSearch.Visible = true; lblNoSettings.ResourceString = "Development.Settings.SearchSettings"; if (!string.IsNullOrEmpty(search)) { // Set searched values if (!URLHelper.IsPostback()) { txtSearch.Text = search; chkDescription.Checked = QueryHelper.GetBoolean("description", true); } } RegisterSearchScript(); } // Set master title CurrentMaster.Title.TitleText = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(SettingsGroupViewer.SettingsCategoryInfo.CategoryDisplayName)); CurrentMaster.Title.TitleImage = GetImageUrlForHeader(SettingsGroupViewer.SettingsCategoryInfo.CategoryName); CurrentMaster.Title.HelpTopicName = GetHelpTopicName(); // Check, if there are any groups DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryIsGroup = 1 AND CategoryParentID = " + mCategoryId, null, -1, "CategoryID"); if ((!DataHelper.DataSourceIsEmpty(ds)) || (!string.IsNullOrEmpty(search))) { CurrentMaster.HeaderActions.Actions = GetHeaderActions(); CurrentMaster.HeaderActions.ActionPerformed += HeaderActions_ActionPerformed; } else { lblNoSettings.Visible = true; } ScriptHelper.RegisterSaveShortcut(this, "save", false); }
protected void Page_Load(object sender, EventArgs e) { // Colect parameters int categoryId = QueryHelper.GetInteger("categoryid", 0); int siteId = QueryHelper.GetInteger("siteid", 0); string treeRoot = QueryHelper.GetText("treeroot", "customsettings"); string rootName = treeRoot == "settings" ? "CMS.Settings" : "CMS.CustomSettings"; mSelectedTab = QueryHelper.GetString("selectedtab", "keys"); bool isEditing = QueryHelper.GetBoolean("isediting", false); if (categoryId > 0) { DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryID = " + categoryId, null, 1, "CategoryName, CategoryIsGroup, CategoryParentID"); if (!DataHelper.DataSourceIsEmpty(ds)) { bool isGroup = ValidationHelper.GetBoolean(ds.Tables[0].Rows[0]["CategoryIsGroup"], false); // CategoryId for use in tabs int tabCatId = categoryId; // Use paprentID when viewing group if (isGroup) { tabCatId = ValidationHelper.GetInteger(ds.Tables[0].Rows[0]["CategoryParentID"], 0); } mTabsCategoryId = tabCatId.ToString(); // Resolve content page link: edit or list if (isEditing) { if (!isGroup) { mContentLink = "CustomSettingsCategory_Edit.aspx?treeroot=" + treeRoot + "&categoryid=" + categoryId + "&siteid=" + siteId; mSelectedTab = "general"; } else { mContentLink = "CustomSettingsCategory_Edit.aspx?isgroup=1&treeroot=" + treeRoot + "&categoryid=" + categoryId + "&siteid=" + siteId; mSelectedTab = "keys"; } } else { mContentLink = "CustomSettings_List.aspx?treeroot=" + treeRoot + "&categoryid=" + categoryId + "&siteid=" + siteId; } } } // Default link, when no category specified else { mContentLink = "CustomSettings_List.aspx?treeroot=" + treeRoot + "&siteid=" + siteId; } }
private IEnumerable <SettingsCategoryInfo> GetGroups(SettingsCategoryInfo category) { if (IsSearchTextValid) { var groups = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryIsGroup = 1", "CategoryName"); return(groups); } else { var groups = SettingsCategoryInfoProvider.GetChildSettingsCategories(category.CategoryName, Where); return(groups.Where(c => c.CategoryIsGroup)); } }
private IEnumerable <SettingsCategoryInfo> GetGroups(SettingsCategoryInfo category, bool isSearch) { if (isSearch) { var groups = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryIsGroup = 1", "CategoryName"); return(groups); } else { var groups = SettingsCategoryInfoProvider.GetChildSettingsCategories(category.CategoryID); return(groups.Cast <SettingsCategoryInfo>().Where(c => c.CategoryIsGroup).OrderBy(c => c.CategoryOrder)); } }
/// <summary> /// Gets category names for given settings groupIDPath /// </summary> /// <param name="groupIDPath">Settings group IDPath</param> /// <returns>String with parent category names</returns> private string GetCategoryNames(string groupIDPath) { // Get parent category names DataSet parents = SettingsCategoryInfoProvider.GetSettingsCategories(SettingsCategoryInfoProvider.GetCategoriesOnPathWhereCondition(groupIDPath, true) + " AND (CategoryLevel > 0)", "CategoryLevel", -1, "CategoryDisplayName"); if (!DataHelper.DataSourceIsEmpty(parents)) { string result = ""; foreach (DataRow parent in parents.Tables[0].Rows) { result += parent["CategoryDisplayName"] + " > "; } return(result.Substring(0, result.LastIndexOfCSafe(">")).Trim()); } return(String.Empty); }
public bool GroupExists(string displayName, string categoryName) { var parentCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(categoryName); if (parentCategory == null) { throw new ArgumentException($"Parent category with name {categoryName} does not exist"); } var groupExists = SettingsCategoryInfoProvider.GetSettingsCategories() .WhereEquals(nameof(SettingsCategoryInfo.CategoryParentID), parentCategory.CategoryID) .And() .WhereEquals(nameof(SettingsCategoryInfo.CategoryDisplayName), displayName) .Any(); return(groupExists); }
/// <summary> /// Raised after menu action (new, delete, up or down) has been taken. /// </summary> protected void AfterAction(string actionName, int categoryId, int tabIndex = 0) { SettingsCategoryInfo category = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(categoryId); if ((category.CategoryResourceID != ModuleID) && !SystemContext.DevelopmentMode) { // If parent doesn't belong to current module, try find first module category DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryResourceID = " + ModuleID, "CategoryLevel, CategoryOrder", 1); if (!DataHelper.DataSourceIsEmpty(ds)) { category = new SettingsCategoryInfo(ds.Tables[0].Rows[0]); } } SelectPath = category.CategoryIDPath; SelectedItem = category.CategoryName; string scriptAction = String.Empty; switch (actionName.ToLowerCSafe()) { case "delete": ExpandPath = category.CategoryIDPath + "/"; // Update menu actions parameters Value = category.CategoryID + "|" + category.CategoryParentID; break; case "moveup": scriptAction = "window.tabIndex = " + tabIndex + ";"; break; case "movedown": scriptAction = "window.tabIndex = " + tabIndex + ";"; break; } RegisterSelectNodeScript(category); scriptAction += "var postParentId = " + category.CategoryParentID + ";"; ScriptHelper.RegisterStartupScript(this, typeof(string), "afterActionScript", ScriptHelper.GetScript(scriptAction)); // Load data ReloadData(); }
/// <summary> /// DataBinds the control. /// </summary> public void ReloadData() { DisabledItems = string.Empty; this.drpCategories.Items.Clear(); int shift = -1; string where = string.Empty; if (DisplayOnlyCategories) { // Only categories that are not marked as groups will be displayed where += "ISNULL([CategoryIsGroup], 0) = 0"; } if (!string.IsNullOrEmpty(WhereCondition)) { // Append additional WHERE condition where += " AND " + WhereCondition; } // Add root category item if needed if (this.IncludeRootCategory) { SettingsCategoryInfo rootCat = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(this.RootCategoryId); if (rootCat != null) { ListItem item = new ListItem(); item.Text = GetPrefix(shift) + ResHelper.LocalizeString(rootCat.CategoryDisplayName); item.Value = this.RootCategoryId.ToString(); this.drpCategories.Items.Add(item); DisableItemInKeyEdit(item, rootCat.CategoryIsGroup); // Increase indent shift++; } } DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories(where, "CategoryOrder", 0, "CategoryID, CategoryParentID, CategoryName, CategoryDisplayName, CategoryOrder, CategoryIsGroup"); if (!DataHelper.DataSourceIsEmpty(ds)) { this.groupedDS = new GroupedDataSource(ds, "CategoryParentID"); FillDropDownList(shift, this.RootCategoryId); } }
/// <summary> /// Handles the UniGrid's OnAction event. /// </summary> /// <param name="actionName">Name of item (button) that threw the event</param> /// <param name="actionArgument">ID (value of Primary key) of the corresponding data row</param> protected void OnAction(string actionName, object actionArgument) { if (actionName == "delete") { int resourceId = ValidationHelper.GetInteger(actionArgument, 0); // Check if module has any classes (including page types...) var classes = DataClassInfoProvider.GetClasses().Where("ClassResourceID", QueryOperator.Equals, resourceId); var settings = SettingsCategoryInfoProvider.GetSettingsCategories().Where("CategoryResourceID", QueryOperator.Equals, resourceId); var elements = UIElementInfoProvider.GetUIElements().Where("ElementResourceID", QueryOperator.Equals, resourceId); if (!classes.HasResults() && !settings.HasResults() && !elements.HasResults()) { ResourceInfoProvider.DeleteResourceInfo(resourceId); } else { Control.ShowError(Control.GetString("cms_resource.deleteerror")); } } }
/// <summary> /// Gets all expanded paths for current module /// </summary> private void GetExpandedPaths() { if (ModuleID > 0) { mExpandedPaths = String.Empty; DataSet dsExpanded = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryResourceID = " + ModuleID + " AND (NOT EXISTS (SELECT CategoryIDPath FROM CMS_SettingsCategory AS a WHERE CMS_SettingsCategory.CategoryIDPath LIKE a.CategoryIDPath + '%' AND CategoryResourceID = " + ModuleID + " AND CMS_SettingsCategory.CategoryIDPath != a.CategoryIDPath)) ", "CategoryLevel, CategoryOrder", 0, "CategoryIDPath, CategoryName"); if (!DataHelper.DataSourceIsEmpty(dsExpanded)) { foreach (DataRow row in dsExpanded.Tables[0].Rows) { if (mExpandedPaths != String.Empty) { mExpandedPaths += ";" + row[0]; } else { mExpandedPaths = row[0].ToString(); } } } } }
private SettingsCategoryInfo GetGroup(string displayName, string categoryName) { var parentCategory = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(categoryName); if (parentCategory == null) { throw new ArgumentException($"Parent category with name {categoryName} does not exist"); } var group = SettingsCategoryInfoProvider.GetSettingsCategories() .WhereEquals(nameof(SettingsCategoryInfo.CategoryParentID), parentCategory.CategoryID) .And() .WhereEquals(nameof(SettingsCategoryInfo.CategoryDisplayName), displayName) .FirstOrDefault(); if (group == null) { throw new ArgumentException($"Group with display name {displayName} does not exist"); } return(group); }
protected void Page_Load(object sender, EventArgs e) { if (CultureHelper.IsUICultureRTL()) { ControlsHelper.ReverseFrames(colsFrameset); } int catId = QueryHelper.GetInteger("categoryid", -1); string treeRoot = QueryHelper.GetString("treeroot", "customsettings"); if (catId <= 0 && treeRoot == "settings") { DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryParentID = (SELECT CategoryId FROM CMS_SettingsCategory WHERE CategoryName = 'CMS.Settings')", "CategoryOrder", 1, "CategoryIDPath, CategoryName, CategoryID, CategoryParentID"); if (!DataHelper.DataSourceIsEmpty(ds)) { DataRow firstRow = ds.Tables[0].Rows[0]; catId = ValidationHelper.GetInteger(firstRow["CategoryID"], 0); } } frameTree.Attributes["src"] = "CustomSettings_Menu.aspx?treeroot=" + Request.QueryString["treeroot"] + "&categoryid=" + catId; frameMain.Attributes["src"] = "CustomSettingsCategory_Default.aspx?treeroot=" + Request.QueryString["treeroot"] + "&categoryid=" + catId + "&siteid=" + Request.QueryString["siteid"]; }
protected void Page_Load(object sender, EventArgs e) { int siteId = QueryHelper.GetInteger("siteid", 0); int categoryId = QueryHelper.GetInteger("categoryid", 0); string searchText = QueryHelper.GetString("search", ""); bool searchInDescription = QueryHelper.GetBoolean("description", false); // Get the category SettingsCategoryInfo ci = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(categoryId); // If category is set or search is used if ((ci != null) || (string.IsNullOrEmpty(searchText))) { StringBuilder sb = new StringBuilder(); // Prepare the header of the file SiteInfo si = SiteInfoProvider.GetSiteInfo(siteId); if (si == null) { sb.Append("Global settings, "); } else { sb.Append("Settings for site \"" + si.DisplayName + "\", "); } DataSet groups = new DataSet(); // Get right DataSet of settings category groups if (!string.IsNullOrEmpty(searchText)) { sb.Append("search text \"" + searchText + "\"" + Environment.NewLine + Environment.NewLine); groups = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryIsGroup = 1", "CategoryName", -1, " CategoryID, CategoryDisplayName, CategoryIDPath"); } else { sb.Append("category \"" + ResHelper.LocalizeString(GetCategoryPathNames(ci)) + "\"" + Environment.NewLine + Environment.NewLine); groups = SettingsCategoryInfoProvider.GetSettingsCategories(string.Format("CategoryParentID = {0} AND CategoryIsGroup = 1", ci.CategoryID), "CategoryOrder", -1, " CategoryID, CategoryDisplayName"); } // Iterate over all groups under selected category foreach (DataRow groupRow in groups.Tables[0].Rows) { string groupName = ResHelper.LocalizeString(groupRow["CategoryDisplayName"].ToString()); int groupCategoryId = ValidationHelper.GetInteger(groupRow["CategoryID"], -1); // Get all settings keys in specified group DataSet ds = SettingsKeyProvider.GetSettingsKeysOrdered(siteId, groupCategoryId); if (!DataHelper.DataSourceIsEmpty(ds)) { string result = GetGroupKeys(ds.Tables[0], siteId > 0, searchText, searchInDescription); if (!string.IsNullOrEmpty(result)) { if (!string.IsNullOrEmpty(searchText)) { // Get parent categories names string parentName = ResHelper.LocalizeString(GetCategoryNames(groupRow["CategoryIDPath"].ToString())); // Print group name with parent sb.Append(Environment.NewLine + parentName + " - " + groupName + Environment.NewLine + GROUP_SEPARATOR + Environment.NewLine + Environment.NewLine); } else { // Print group name sb.Append(Environment.NewLine + groupName + Environment.NewLine + GROUP_SEPARATOR + Environment.NewLine + Environment.NewLine); } // Print SettingsKey names and values sb.Append(result); } } } // Send the file to the user string siteName = (siteId > 0 ? si.SiteName : "Global"); Response.AddHeader("Content-disposition", "attachment; filename=" + siteName + "_" + ValidationHelper.GetIdentifier(ci.CategoryName, "_") + ".txt"); Response.ContentType = "text/plain"; Response.Write(sb.ToString()); RequestHelper.EndResponse(); } }
/// <summary> /// Returns string with Settings information for specified site. /// </summary> /// <param name="siteId">Site ID or 0 for global Settings</param> /// <param name="siteName">Site name or null for global Settings</param> private static string GetSettingsString(int siteId, string siteName) { DataSet setsDs; // Get global setting categories if (siteId == 0) { setsDs = SettingsCategoryInfoProvider.GetSettingsCategories(null, "CategoryName,CategoryOrder"); } // Get site setting categories else { setsDs = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryID IN (SELECT KeyCategoryID FROM CMS_SettingsKey WHERE SiteID = " + siteId + ")", "CategoryName,CategoryOrder"); } // Check if any result exists if (DataHelper.DataSourceIsEmpty(setsDs)) { return(string.Empty); } StringBuilder sb = new StringBuilder(); DataSet keyDs = null; string site = siteId > 0 ? siteName : "GLOBAL SETTINGS"; sb.Append(" - "); sb.Append(site); sb.AppendLine(); // Loop through all setting categories string prefix; foreach (DataRow setsDr in setsDs.Tables[0].Rows) { // Get settings keys for specific category keyDs = SettingsKeyProvider.GetSettingsKeys(siteId, ValidationHelper.GetInteger(setsDr["CategoryId"], 0)); if (!DataHelper.DataSourceIsEmpty(keyDs)) { // Display only not empty categories sb.Append("\r\n\t - "); sb.Append(ResHelper.LocalizeString(ValidationHelper.GetString(setsDr["CategoryName"], string.Empty))); sb.AppendLine(); prefix = "\t\t - "; // Display keys for category foreach (DataRow keyDr in keyDs.Tables[0].Rows) { if (keyDr["KeyValue"] != DBNull.Value) { sb.AppendFormat("{0}{1} '{2}' ({3})", prefix, ValidationHelper.GetString(keyDr["KeyName"], string.Empty), ValidationHelper.GetString(keyDr["KeyValue"], string.Empty), ValidationHelper.GetString(keyDr["KeyType"], string.Empty)); sb.AppendLine(); } } } } sb.AppendLine(); return(sb.ToString()); }
protected void Page_Load(object sender, EventArgs e) { ScriptHelper.RegisterJQuery(this.Page); // Root of tree flag string treeRoot = QueryHelper.GetString("treeroot", "customsettings"); // Decide which category to use as root: custom settings or settings switch (treeRoot) { case ("settings"): treeSettings.CategoryName = "CMS.Settings"; treeSettings.RootIsClickable = true; this.menuElem.WholeSettings = true; break; case ("customsettings"): default: treeSettings.CategoryName = "CMS.CustomSettings"; this.menuElem.WholeSettings = false; break; } this.menuElem.AfterAction += new OnActionEventHandler(menuElem_AfterAction); // Prepare root info SettingsCategoryInfo rootCat = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(treeSettings.CategoryName); StringBuilder sb = new StringBuilder(""); StringBuilder sbAfter = new StringBuilder(""); // Create links for JS sb.Append("var frameURL = '").Append(ResolveUrl("~/CMSModules/Settings/Development/CustomSettings/CustomSettingsCategory_Default.aspx?treeroot=" + ScriptHelper.GetString(treeRoot, false))).Append("';"); sb.Append("var newURL = '").Append(ResolveUrl("~/CMSModules/Settings/Development/CustomSettings/CustomSettingsCategory_Edit.aspx?treeroot=" + ScriptHelper.GetString(treeRoot, false))).Append("';"); sb.Append("var rootParentId = ").Append(rootCat != null ? rootCat.CategoryParentID : 0).Append(";"); // Disable delete on custom settings category if (treeRoot == "settings") { DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories("CategoryName = 'CMS.CustomSettings'", null, 1, "CategoryID"); int customSettingsId = 0; if (!DataHelper.DataSourceIsEmpty(ds)) { customSettingsId = SqlHelperClass.GetInteger(ds.Tables[0].Rows[0]["CategoryID"], 0); } sb.Append("var customSettingsId = ").Append(customSettingsId).Append(";"); } else { sb.Append("var customSettingsId = 0;"); } if (!RequestHelper.IsPostBack()) { int categoryId = QueryHelper.GetInteger("categoryid", -1); treeSettings.SelectPath = "/"; SettingsCategoryInfo category = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(categoryId); // Select requested category if (category != null) { treeSettings.SelectPath = category.CategoryIDPath; this.menuElem.ElementID = category.CategoryID; this.menuElem.ParentID = category.CategoryParentID; this.menuElem.Value = category.CategoryID + "|" + category.CategoryParentID; // Select category after page load sbAfter.Append("SelectNode(" + ScriptHelper.GetString(category.CategoryName) + ");"); sbAfter.Append("enableMenu(").Append(category.CategoryID).Append(",").Append(category.CategoryParentID).Append(");"); } // Select root else { if (rootCat != null) { this.menuElem.ElementID = rootCat.CategoryID; this.menuElem.ParentID = rootCat.CategoryParentID; this.menuElem.Value = rootCat.CategoryID + "|" + rootCat.CategoryParentID; } // Select category after page load sbAfter.Append("SelectNode(").Append(ScriptHelper.GetString(treeSettings.CategoryName)).Append(");"); sbAfter.Append("enableMenu(").Append(rootCat.CategoryID).Append(",").Append(rootCat.CategoryParentID).Append(");"); } } sb.Append("var postParentId = ").Append(rootCat.CategoryParentID).Append(";"); this.ltlScript.Text = ScriptHelper.GetScript(sb.ToString()); this.ltlAfterScript.Text = ScriptHelper.GetScript(sbAfter.ToString()); }
/// <summary> /// Returns string with Settings information for specified site. /// </summary> /// <param name="siteId">Site ID or 0 for global Settings</param> /// <param name="siteName">Site name or null for global Settings</param> private static string GetSettingsString(int siteId, string siteName) { var categories = SettingsCategoryInfoProvider.GetSettingsCategories() .OrderBy("CategoryName", "CategoryOrder") .Columns("CategoryName", "CategoryID"); // Get global setting categories if (siteId > 0) { categories.Where("CategoryID IN (SELECT KeyCategoryID FROM CMS_SettingsKey WHERE SiteID = " + siteId + ")"); } var sb = new StringBuilder(); string site = siteId > 0 ? siteName : "GLOBAL SETTINGS"; sb.Append(" - "); sb.Append(site); sb.AppendLine(); // Loop through all setting categories foreach (DataRow catDr in categories.Tables[0].Rows) { // Get settings keys for specific category var categoryId = ValidationHelper.GetInteger(catDr["CategoryID"], 0); DataSet keys = SettingsKeyInfoProvider.GetSettingsKeys(categoryId, siteId) .Columns("KeyName", "KeyValue", "KeyType"); if (!DataHelper.DataSourceIsEmpty(keys)) { // Display only not empty categories sb.Append("\r\n\t - "); var categoryName = ValidationHelper.GetString(catDr["CategoryName"], ""); sb.Append(ResHelper.LocalizeString(categoryName)); sb.AppendLine(); // Display keys for category foreach (DataRow keyDr in keys.Tables[0].Rows) { var value = keyDr["KeyValue"]; if (value != DBNull.Value) { var name = ValidationHelper.GetString(keyDr["KeyName"], string.Empty); var stringValue = ValidationHelper.GetString(value, string.Empty); var type = ValidationHelper.GetString(keyDr["KeyType"], string.Empty); sb.AppendFormat("\t\t - {0} '{1}' ({2})", name, stringValue, type); sb.AppendLine(); } } } } sb.AppendLine(); return(sb.ToString()); }
protected void Page_Load(object sender, EventArgs e) { ScriptHelper.RegisterJQuery(Page); // URL for tree selection string script = "var categoryURL = '" + ResolveUrl("keys.aspx") + "';\n"; script += "var doNotReloadContent = false;\n"; // Get selected site id mSiteId = ValidationHelper.GetInteger(siteSelector.Value, 0); TreeViewCategories.SiteID = mSiteId; TreeViewCategories.RootIsClickable = true; bool searchMode = false; int categoryId = 0; if (Request.Params["selectedCategoryId"] != null) { // Selected category categoryId = ValidationHelper.GetInteger(Request.Params["selectedCategoryId"], 0); searchMode = true; } else { // First request to Settings categoryId = SettingsCategoryInfoProvider.GetRootSettingsCategoryInfo().CategoryID; searchMode = SettingsKeyProvider.DevelopmentMode; } TreeViewCategories.RootIsClickable = SettingsKeyProvider.DevelopmentMode; bool reload = QueryHelper.GetBoolean("reload", true); // Select category if set if ((categoryId > 0) && (searchMode)) { SettingsCategoryInfo sci = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(categoryId); if (sci != null) { // Stop reloading of right frame, if explicitly set if (!reload) { script += "doNotReloadContent = true;"; } script += SelectAtferLoad(sci.CategoryIDPath, sci.CategoryName, sci.CategoryID, sci.CategoryParentID); } } // If no category specified, select the first category under root by default else { SettingsCategoryInfo sci = SettingsCategoryInfoProvider.GetRootSettingsCategoryInfo(); TreeViewCategories.RootCategory = sci; if (sci != null) { TreeViewCategories.RootIsClickable = false; DataSet ds = SettingsCategoryInfoProvider.GetSettingsCategories(string.Format("CategoryParentID = {0}", sci.CategoryID), "CategoryOrder", 1, "CategoryIDPath, CategoryName, CategoryID, CategoryParentID"); if (!DataHelper.DataSourceIsEmpty(ds)) { DataRow firstRow = ds.Tables[0].Rows[0]; script += SelectAtferLoad(SqlHelperClass.GetString(firstRow["CategoryIDPath"], "/"), SqlHelperClass.GetString(firstRow["CategoryName"], "CMS.Settings"), SqlHelperClass.GetInteger(firstRow["CategoryID"], 0), SqlHelperClass.GetInteger(firstRow["CategoryParentID"], 0)); } } } ScriptHelper.RegisterStartupScript(Page, typeof(string), "SelectCat", ScriptHelper.GetScript(script)); // Style site selector siteSelector.DropDownSingleSelect.CssClass = ""; siteSelector.DropDownSingleSelect.Attributes.Add("style", "width: 100%"); lblSite.Text = GetString("general.site") + ResHelper.Colon; // Set site selector siteSelector.DropDownSingleSelect.AutoPostBack = true; siteSelector.AllowAll = false; siteSelector.UniSelector.SpecialFields = new string[1, 2] { { GetString("general.global"), "0" } }; siteSelector.OnlyRunningSites = false; }