HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RMourik/bassol.nl/CMS/CMSModules/Forums/FormControls/ForumLayoutSelector.ascx.cs
using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

using CMS.FormControls;
using CMS.Helpers;
using CMS.IO;
using CMS.Base;

public partial class CMSModules_Forums_FormControls_ForumLayoutSelector : FormEngineUserControl
{
    #region "Variables"

    private string mValue = string.Empty;

    #endregion


    #region "Public properties"

    /// <summary>
    /// Gets or sets the enabled state of the control.
    /// </summary>
    public override bool Enabled
    {
        get
        {
            return base.Enabled;
        }
        set
        {
            base.Enabled = value;
            drpLayouts.Enabled = value;
        }
    }


    /// <summary>
    /// Gets or sets field value.
    /// </summary>
    public override object Value
    {
        get
        {
            return drpLayouts.SelectedValue;
        }
        set
        {
            mValue = ValidationHelper.GetString(value, "").ToLowerCSafe();
        }
    }

    #endregion


    #region "Page events"

    protected void Page_Load(object sender, EventArgs e)
    {
    }


    protected override void CreateChildControls()
    {
        base.CreateChildControls();
        if (!StopProcessing)
        {
            ReloadData();
        }
    }

    #endregion


    #region "Private methods"

    private void ReloadData()
    {
        FillDropDownList();

        // Try to preselect value
        if (!string.IsNullOrEmpty(mValue))
        {
            if (drpLayouts.Items.FindByValue(mValue) != null)
            {
                drpLayouts.SelectedValue = mValue;
            }
        }
    }


    private void FillDropDownList()
    {
        // Build path
        string path = SystemContext.WebApplicationPhysicalPath + "\\CMSModules\\Forums\\Controls\\Layouts";

        // Check if path exist
        if (Directory.Exists(path))
        {
            bool customDirExist = false;

            // Get all directories
            string[] directories = Directory.GetDirectories(path);
            foreach (string dir in directories)
            {
                // Get only directory name
                string dirName = dir.Substring(path.Length + 1);
                if (dirName.ToLowerCSafe() != "custom")
                {
                    // Add to dropdown list
                    drpLayouts.Items.Add(new ListItem(dirName, dirName.ToLowerCSafe()));
                }
                else
                {
                    // Custom directory exists
                    customDirExist = true;
                }
            }

            // If custom directory exist
            if (customDirExist)
            {
                // Build path
                path = DirectoryHelper.CombinePath(path, "Custom");
                if (Directory.Exists(path))
                {
                    // Get all custom directories
                    string[] customDirectories = Directory.GetDirectories(path);
                    foreach (string dir in customDirectories)
                    {
                        // Add to the dropdown list
                        string dirName = dir.Substring(path.Length + 1);
                        drpLayouts.Items.Add(new ListItem(dirName, "custom/" + dirName.ToLowerCSafe()));
                    }
                }
            }
        }
    }

    #endregion
}