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/CMSFormControls/Filters/ObjectFilter.ascx.cs
using System;
using CMS.Controls;
using CMS.DataEngine;
using CMS.Helpers;
using CMS.SiteProvider;

public partial class CMSFormControls_Filters_ObjectFilter : CMSAbstractBaseFilterControl
{
    #region "Private variables"

    private GeneralizedInfo currentObject;

    #endregion


    #region "Public properties"

    /// <summary>
    /// Gets or sets where condition to uni selector.
    /// </summary>
    public override string WhereCondition
    {
        get
        {
            var ti = currentObject.TypeInfo;

            if (plcParentObject.Visible)
            {
                return (ValidationHelper.GetString(parentSelector.Value, "") != "") ? ti.ParentIDColumn + " = " + parentSelector.Value : String.Empty;
            }

            return (ti.SiteIDColumn != ObjectTypeInfo.COLUMN_NAME_UNKNOWN) ? siteSelector.GetWhereCondition(ti.SiteIDColumn) : String.Empty;
        }
        set
        {
            base.WhereCondition = value;
        }
    }

    #endregion


    #region "Events"

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        if (!StopProcessing)
        {
            SetupControl();
        }
    }


    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        GeneralizedInfo parentObject = ModuleManager.GetObject(currentObject.ParentObjectType);

        // Check if object or parent are site related
        if (((parentObject != null) && (parentObject.TypeInfo.SiteIDColumn != ObjectTypeInfo.COLUMN_NAME_UNKNOWN)) || (currentObject.TypeInfo.SiteIDColumn != ObjectTypeInfo.COLUMN_NAME_UNKNOWN))
        {
            // Check if global is allowed else select current site
            if (((parentObject != null) && parentObject.TypeInfo.SupportsGlobalObjects) || (currentObject.TypeInfo.SupportsGlobalObjects))
            {
                siteSelector.AllowGlobal = true;
            }
            else
            {
                if (!URLHelper.IsPostback())
                {
                    siteSelector.Value = SiteContext.CurrentSiteID;
                }
            }
            
            // Initialize site selector
            siteSelector.Reload(false);
            siteSelector.PostbackOnDropDownChange = true;
            siteSelector.UniSelector.OnSelectionChanged += DropDownSingleSelect_SelectedIndexChanged;
        }
        else
        {
            plcSite.Visible = false;
        }

        if ((parentObject != null) && (parentObject.TypeInfo.SiteIDColumn != ObjectTypeInfo.COLUMN_NAME_UNKNOWN))
        {
            // Get site where condition
            parentSelector.WhereCondition = siteSelector.GetWhereCondition(parentObject.TypeInfo.SiteIDColumn);
            parentSelector.Reload(true);
        }
    }


    /// <summary>
    /// Initialize filter controls.
    /// </summary>
    private void SetupControl()
    {
        if ((Parameters != null) && (Parameters["ObjectType"] != null))
        {
            // Get current object
            currentObject = ModuleManager.GetObject(ValidationHelper.GetString(Parameters["ObjectType"], String.Empty));

            // Check if object is not null and has parent object
            if ((currentObject != null) && !String.IsNullOrEmpty(currentObject.ParentObjectType))
            {
                lblParent.ResourceString = "objecttype." + currentObject.ParentObjectType.Replace(".", "_");

                // Set parent object selector properties
                parentSelector.ObjectType = currentObject.ParentObjectType;
                parentSelector.DropDownSingleSelect.AutoPostBack = true;
                parentSelector.OnSelectionChanged += parentSelector_OnSelectionChanged;
            }
            else
            {
                plcParentObject.Visible = false;
            }
        }
    }


    protected void DropDownSingleSelect_SelectedIndexChanged(object sender, EventArgs e)
    {
        FilterChanged = true;
        RaiseOnFilterChanged();
    }


    protected void parentSelector_OnSelectionChanged(object sender, EventArgs e)
    {
        FilterChanged = true;
        RaiseOnFilterChanged();
    }

    #endregion
}