Extend Sitefinity CMS's built-in dialogs
Sitefinity CMS enables you, as a developer, to customize built-in dialogs to better fit your specific requirements. All dialogs available in Sitefinity CMS are resolved through the Unity dependency injection container that you can use to easily replace the built-in dialog with a custom implementation.
This article describes how to customize the CustomSortingDialog dialog class of the Events module by adding two additional options for sorting events. You can use this approach with other content types as well.
To open the built-in Custom sorting... dialog for events:
- Open Sitefinity CMS backend and navigate to Content » Events.
- From the Sort dropdown menu upper right corner, select Custom sorting…
Create the custom dialog class
To create the custom dialog class:
- In Visual Studio, open the context menu of your Sitefinity project and click Add » Class.
- Name the class file CustomSortingDialogCustom.cs and click Add.
- Open the CustomSortingDialogCustom.cs and add the following code:
In the code above, you override the GetSortableFields method of the CustomSortingDialog class to add the following new sorting criteria:
Register the custom dialog class
After you implement the custom dialog class, you register the class, so that it is initialized upon application start of your Sitefinity CMS project. To do so:
- In Visual Studio, open the context menu of your Sitefinity project and click Add » New Item...
- Select Global Application Class, name the class Global.asax.
- Add the following code:
In the code above, you use the Bootstrapper class to subscribe to the application start of your Sitefinity CMS project. In addition, you implement the handler that registers the new CustomSortingDialogCustom class.
As a result, you can use the new sorting criteria for events that you added to the built-in Custom sorting... dialog.