London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Loading...
Area: Optimizely CMS
ARCHIVED This content is retired and no longer maintained. See the latest version here.

The following example shows how to replace a component for the entire system. This example also shows how to replace the built-in Episerver CMS page tree with a custom page list component.

  1. Declare a replacement component.
    C#
    // A simple component implementation represented with a dijit content pane on the client side
    public class MyCustomPageList : ComponentBase
    {
        public MyCustomPageList() : base("dijit/layout/ContentPane") 
        {
            // Add "Hello World!" as non-persisted content to the dijit content pane
            this.Settings.Add(new Setting("content", "Hello World!", false));
        }
    }
    
  2. Replace the page tree component using the IOC container by implementing the ConfigureContainer method of EPiServer.ServiceLocation.IConfigurableModule in an initialization module.
    C#
    public void ConfigureContainer(ServiceConfigurationContext context)
    {
        context.Container.Configure(container =>
        {
            container.For<IComponent>().Add<MyCustomPageList>()
                .Named(new PageTreeComponent().DefinitionName);
        });
    }
    

    This replaces any creation of the PageTreeComponent with a new instance of the MyCustomPageList type that is created by the IOC container.

Last updated: Sep 21, 2015