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/App_Code/CMSModules/CMS/Modules/ModuleEditControlExtender.cs
using CMS;
using CMS.Base;
using CMS.ExtendedControls;
using CMS.ExtendedControls.ActionsConfig;
using CMS.FormControls;
using CMS.Helpers;
using CMS.Modules;
using CMS.PortalEngine;
using CMS.UIControls;
using CMS.Core;


[assembly: RegisterCustomClass("ModuleEditControlExtender", typeof(ModuleEditControlExtender))]

/// <summary>
/// Permission edit control extender
/// </summary>
public class ModuleEditControlExtender : ControlExtender<UIForm>
{
    /// <summary>
    /// Gets the current resource
    /// </summary>
    public ResourceInfo Resource
    {
        get
        {
            return Control.UIContext.EditedObject as ResourceInfo;
        }
    }


    /// <summary>
    /// OnInit event handler
    /// </summary>
    public override void OnInit()
    {
        if ((Resource != null) && (Resource.ResourceIsInDevelopment) && !Resource.ResourceName.EqualsCSafe(ModuleName.CUSTOMSYSTEM, true))
        {
            var page = (CMSUIPage)Control.Page;
            string query = QueryHelper.BuildQuery("resourceid", Resource.ResourceId.ToString());
            string url = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "ExportModuleDialog"), query);
            var exportModuleHeaderAction = new HeaderAction()
            {
                Text = ResHelper.GetString("cms.modules.installpackage.createbutton"),
                RedirectUrl = url,
                OpenInDialog = true,
                DialogWidth = "670",
                DialogHeight = "800",
                ButtonStyle = ButtonStyle.Default,
            };
            page.AddHeaderAction(exportModuleHeaderAction);
        }

        // Set the state of new module to development
        Control.OnBeforeSave += (sender, args) =>
        {
            if ((Resource == null) || (Resource.ResourceId <= 0))
            {
                Control.Data["ResourceIsInDevelopment"] = true;
            }
        };

        // Disable editing when module is not editable
        Control.Load += (sender, args) =>
        {
            if (Resource != null)
            {
                // Display warning for installed resources
                if ((Resource.ResourceId > 0) && !Resource.IsEditable)
                {
                    Control.SubmitButton.Enabled = Control.Enabled = false;
                    Control.ShowInformation(Control.GetString("resource.installedresourcewarning"));
                }
                // Display warning for system resources
                else if (!SystemContext.DevelopmentMode && ResourceInfoProvider.IsSystemResource(Resource.ResourceName))
                {
                    Control.SubmitButton.Enabled = Control.Enabled = false;
                    Control.ShowInformation(Control.GetString("resource.cusomresourcewarning"));
                }
            }
        };
    }
}