示例#1
0
    /// <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);
    }
示例#3
0
    /// <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);
    }
示例#4
0
    /// <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);
        }
    }
示例#5
0
    /// <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());
    }
示例#6
0
    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));
     }
 }
示例#10
0
    /// <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);
        }
示例#12
0
    /// <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"));
            }
        }
    }
示例#15
0
 /// <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);
        }
示例#17
0
    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"];
    }
示例#18
0
    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());
    }
示例#21
0
    /// <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());
    }
示例#22
0
    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;
    }