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/MBoogaard/oosting-horseriding.com/CMS/CMSWebParts/General/CSSStyleSelector.ascx.cs
using System;
using System.Web.UI.WebControls;
using CMS.DocumentEngine;
using CMS.Helpers;
using CMS.PortalControls;

public partial class CMSWebParts_General_CssStyleSelector : CMSAbstractWebPart
{
    #region "Private variables"

    protected LinkButton lnkFirstLink = null;
    protected LinkButton lnkSecondLink = null;
    protected LinkButton lnkThirdLink = null;
    protected LinkButton lnkFourthLink = null;
    protected LinkButton lnkFifthLink = null;

    #endregion


    #region "Public properties"

    /// <summary>
    /// Name of the cookie for class information.
    /// </summary>
    public string CookieName
    {
        get
        {
            return DataHelper.GetNotEmpty(ValidationHelper.GetString(GetValue("CookieName"), ""), CMS.Helpers.CookieName.BodyClass);
        }
        set
        {
            SetValue("CookieName", value);
        }
    }


    /// <summary>
    /// Text of the first link.
    /// </summary>
    public string FirstLinkText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FirstLinkText"), "");
        }
        set
        {
            SetValue("FirstLinkText", value);
        }
    }


    /// <summary>
    /// Text of the first selected link.
    /// </summary>
    public string FirstLinkSelectedText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FirstLinkSelectedText"), "");
        }
        set
        {
            SetValue("FirstLinkSelectedText", value);
        }
    }


    /// <summary>
    /// Title of the first link.
    /// </summary>
    public string FirstLinkTitle
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FirstLinkTitle"), "");
        }
        set
        {
            SetValue("FirstLinkTitle", value);
        }
    }


    /// <summary>
    /// Body CSS class of the first link.
    /// </summary>
    public string FirstBodyCSSClass
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FirstBodyCSSClass"), "");
        }
        set
        {
            SetValue("FirstBodyCSSClass", value);
        }
    }


    /// <summary>
    /// Text of the second link.
    /// </summary>
    public string SecondLinkText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("SecondLinkText"), "");
        }
        set
        {
            SetValue("SecondLinkText", value);
        }
    }


    /// <summary>
    /// Text of the second selected link.
    /// </summary>
    public string SecondLinkSelectedText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("SecondLinkSelectedText"), "");
        }
        set
        {
            SetValue("SecondLinkSelectedText", value);
        }
    }


    /// <summary>
    /// Title of the second link.
    /// </summary>
    public string SecondLinkTitle
    {
        get
        {
            return ValidationHelper.GetString(GetValue("SecondLinkTitle"), "");
        }
        set
        {
            SetValue("SecondLinkTitle", value);
        }
    }


    /// <summary>
    /// Body CSS class of the second link.
    /// </summary>
    public string SecondBodyCSSClass
    {
        get
        {
            return ValidationHelper.GetString(GetValue("SecondBodyCSSClass"), "");
        }
        set
        {
            SetValue("SecondBodyCSSClass", value);
        }
    }


    /// <summary>
    /// Text of the third link.
    /// </summary>
    public string ThirdLinkText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("ThirdLinkText"), "");
        }
        set
        {
            SetValue("ThirdLinkText", value);
        }
    }


    /// <summary>
    /// Text of the third selected link.
    /// </summary>
    public string ThirdLinkSelectedText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("ThirdLinkSelectedText"), "");
        }
        set
        {
            SetValue("ThirdLinkSelectedText", value);
        }
    }


    /// <summary>
    /// Title of the third link.
    /// </summary>
    public string ThirdLinkTitle
    {
        get
        {
            return ValidationHelper.GetString(GetValue("ThirdLinkTitle"), "");
        }
        set
        {
            SetValue("ThirdLinkTitle", value);
        }
    }


    /// <summary>
    /// Body CSS class of the third link.
    /// </summary>
    public string ThirdBodyCSSClass
    {
        get
        {
            return ValidationHelper.GetString(GetValue("ThirdBodyCSSClass"), "");
        }
        set
        {
            SetValue("ThirdBodyCSSClass", value);
        }
    }


    /// <summary>
    /// Text of the fourth link.
    /// </summary>
    public string FourthLinkText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FourthLinkText"), "");
        }
        set
        {
            SetValue("FourthLinkText", value);
        }
    }


    /// <summary>
    /// Text of the fourth selected link.
    /// </summary>
    public string FourthLinkSelectedText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FourthLinkSelectedText"), "");
        }
        set
        {
            SetValue("FourthLinkSelectedText", value);
        }
    }


    /// <summary>
    /// Title of the fourth link.
    /// </summary>
    public string FourthLinkTitle
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FourthLinkTitle"), "");
        }
        set
        {
            SetValue("FourthLinkTitle", value);
        }
    }


    /// <summary>
    /// Body CSS class of the fourth link.
    /// </summary>
    public string FourthBodyCSSClass
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FourthBodyCSSClass"), "");
        }
        set
        {
            SetValue("FourthBodyCSSClass", value);
        }
    }


    /// <summary>
    /// Text of the fifth link.
    /// </summary>
    public string FifthLinkText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FifthLinkText"), "");
        }
        set
        {
            SetValue("FifthLinkText", value);
        }
    }


    /// <summary>
    /// Text of the fifth selected link.
    /// </summary>
    public string FifthLinkSelectedText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FifthLinkSelectedText"), "");
        }
        set
        {
            SetValue("FifthLinkSelectedText", value);
        }
    }


    /// <summary>
    /// Title of the fifth link.
    /// </summary>
    public string FifthLinkTitle
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FifthLinkTitle"), "");
        }
        set
        {
            SetValue("FifthLinkTitle", value);
        }
    }


    /// <summary>
    /// Body CSS class of the fifth link.
    /// </summary>
    public string FifthBodyCSSClass
    {
        get
        {
            return ValidationHelper.GetString(GetValue("FifthBodyCSSClass"), "");
        }
        set
        {
            SetValue("FifthBodyCSSClass", value);
        }
    }


    /// <summary>
    /// HTML text inserted between links as separator.
    /// </summary>
    public string LinksSeparator
    {
        get
        {
            return ValidationHelper.GetString(GetValue("LinksSeparator"), "");
        }
        set
        {
            SetValue("LinksSeparator", value);
        }
    }

    #endregion


    #region "Page events"

    /// <summary>
    /// Content loaded event handler.
    /// </summary>
    public override void OnContentLoaded()
    {
        base.OnContentLoaded();
        SetupControl();
    }


    /// <summary>
    /// Reloads the control data.
    /// </summary>
    public override void ReloadData()
    {
        SetupControl();
        base.ReloadData();
    }


    protected override void OnPreRender(EventArgs e)
    {
        if (StopProcessing)
        {
            return;
        }

        base.OnPreRender(e);

        string cookieValue = ValidationHelper.GetString(CookieHelper.GetValue(CookieName), "");

        // If cookie value is set add value to the body class
        if (!string.IsNullOrEmpty(cookieValue))
        {
            DocumentContext.CurrentBodyClass += " " + cookieValue;
        }

        // Set proper link texts
        if (lnkFirstLink != null)
        {
            lnkFirstLink.Text = (cookieValue == FirstBodyCSSClass) ? FirstLinkSelectedText : FirstLinkText;
        }

        if (lnkSecondLink != null)
        {
            lnkSecondLink.Text = (cookieValue == SecondBodyCSSClass) ? SecondLinkSelectedText : SecondLinkText;
        }

        if (lnkThirdLink != null)
        {
            lnkThirdLink.Text = (cookieValue == ThirdBodyCSSClass) ? ThirdLinkSelectedText : ThirdLinkText;
        }

        if (lnkFourthLink != null)
        {
            lnkFourthLink.Text = (cookieValue == FourthBodyCSSClass) ? FourthLinkSelectedText : FourthLinkText;
        }

        if (lnkFifthLink != null)
        {
            lnkFifthLink.Text = (cookieValue == FifthBodyCSSClass) ? FifthLinkSelectedText : FifthLinkText;
        }
    }

    #endregion


    #region "Other methods"

    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            pnlLinks.Controls.Clear();
            if (FirstLinkText != "")
            {
                lnkFirstLink = new LinkButton();
                lnkFirstLink.EnableViewState = false;
                lnkFirstLink.ID = "lnkFirstLink";
                lnkFirstLink.Command += lnkLink_Command;
                lnkFirstLink.CommandName = "linkCommand";
                lnkFirstLink.CommandArgument = FirstBodyCSSClass;
                lnkFirstLink.ToolTip = FirstLinkTitle;
                pnlLinks.Controls.Add(lnkFirstLink);
            }

            if (SecondLinkText != "")
            {
                // Add links separator
                AddSeparator("ltlFirstSeparator");

                lnkSecondLink = new LinkButton();
                lnkSecondLink.EnableViewState = false;
                lnkSecondLink.ID = "lnkSecondLink";
                lnkSecondLink.Command += lnkLink_Command;
                lnkSecondLink.CommandName = "linkCommand";
                lnkSecondLink.CommandArgument = SecondBodyCSSClass;
                lnkSecondLink.ToolTip = SecondLinkTitle;
                pnlLinks.Controls.Add(lnkSecondLink);
            }

            if (ThirdLinkText != "")
            {
                // Add links separator
                AddSeparator("ltlSecondSeparator");

                lnkThirdLink = new LinkButton();
                lnkThirdLink.EnableViewState = false;
                lnkThirdLink.ID = "lnkThirdLink";
                lnkThirdLink.Command += lnkLink_Command;
                lnkThirdLink.CommandArgument = ThirdBodyCSSClass;
                lnkThirdLink.ToolTip = ThirdLinkTitle;
                pnlLinks.Controls.Add(lnkThirdLink);
            }

            if (FourthLinkText != "")
            {
                // Add links separator
                AddSeparator("ltlThirdSeparator");

                lnkFourthLink = new LinkButton();
                lnkFourthLink.EnableViewState = false;
                lnkFourthLink.ID = "lnkFourthLink";
                lnkFourthLink.Command += lnkLink_Command;
                lnkFourthLink.CommandArgument = FourthBodyCSSClass;
                lnkFourthLink.ToolTip = FourthLinkTitle;
                pnlLinks.Controls.Add(lnkFourthLink);
            }

            if (FifthLinkText != "")
            {
                // Add links separator
                AddSeparator("ltlFourthSeparator");

                lnkFifthLink = new LinkButton();
                lnkFifthLink.EnableViewState = false;
                lnkFifthLink.ID = "lnkFifthLink";
                lnkFifthLink.Command += lnkLink_Command;
                lnkFifthLink.CommandArgument = FifthBodyCSSClass;
                lnkFifthLink.ToolTip = FifthLinkTitle;
                pnlLinks.Controls.Add(lnkFifthLink);
            }
        }
    }


    /// <summary>
    /// Link click handler.
    /// </summary>
    protected void lnkLink_Command(object sender, CommandEventArgs e)
    {
        // Set new value to the cookie
        CookieHelper.SetValue(CookieName, e.CommandArgument.ToString(), DateTime.Now.AddYears(50));
    }


    /// <summary>
    /// Adds separator to the panel.
    /// </summary>
    /// <param name="separatorID">Id of the separator</param>
    private void AddSeparator(string separatorID)
    {
        if ((LinksSeparator != "") && (pnlLinks.Controls.Count > 0))
        {
            Literal ltlSeparator = new Literal();
            ltlSeparator.ID = separatorID;
            ltlSeparator.EnableViewState = false;
            ltlSeparator.Text = LinksSeparator;
            pnlLinks.Controls.Add(ltlSeparator);
        }
    }

    #endregion
}