An extension point is an interface that a developer can use to customize the Share web application in a supported way. There are a number of extension points that can be used to do things like adding custom pages, hiding content on existing pages, display custom metadata, modify the menu, and so on.
Read through the Getting started guide to get up to speed on the difference between in-process and out-of-process extensions.
To fully understand the extension points it is a good idea to first read through the
Share Architecture section.
Also, you should get familiar with the Alfresco SDK as it is the recommended way of developing Share extensions.
The Share extension points can be grouped into three different categories:
- Declarative - XML configuration that requires no coding
- Programmatic - Code that adds new functionality
- Override - Code that overrides default behavior of Share
The following table lists all the extension points that are available to you when customization the Share web application:
|Extension Point Name||Description||Category||Support Status|
|Share Configuration||A lot of customizations to the Share UI can be done via configuration, get familiar with what can be achieved with configuration before attempting any programming customizations.||Declarative||Full Support|
|Form Controls||When defining a form the form controls for each field controls how the field is displayed and handled.||Programmatic||Full Support|
|Form Processors||Form processors control the persistence of form data and the generation of the form template for a specific item such as a node, task, type, or action. Custom Form Processors can be implemented to support a new kind of item.||Programmatic||Full Support|
|Form Processor Filters||Form filters can be used to intercept a form processor’s persist form data call and generate form template call. “Before” and “After” method hooks are available in the filter to control form data persistence and form template generation.||Programmatic||Full Support|
|Evaluators||Component visibility in the Share user interface can be controlled by Evaluators.||Declarative and Programmatic||Full Support|
|Site Presets||A site preset contains the initial configuration for a Share site, such as the site Dashboard layout.||Declarative||Full Support|
|Share Themes||The Share web application comes with a number of themes that can be used to set the look and feel of the application. It is also possible to create your own custom UI themes.||Declarative||Full Support|
|Document Library||The Document Library page has several extension points that can be used to customize its behavior, such as actions.||Declarative and Programmatic||Full Support|
|Surf Extension Modules||Surf Extension Modules are the main tool to use when adding, updating, or hiding content in the Share User Interface (UI). They can be deployed and un-deployed during runtime. A module is defined in XML and stored in the
||Declarative and Programmatic||Full Support|
|Surf Web Scripts||When you look under the covers of the Share web application you will notice that most of the functionality is implemented as Surf Web Scripts. This is true for both Pages and Dashlets.||Declarative and Programmatic||Full Support|
|Surf Pages||The Alfresco Share web application is built up of a main menu from which you can navigate to a number of pages.||Declarative and Programmatic||Limited Support (Use Aikau Pages instead)|
|Surf Dashlets||The Share web application has a special page called Dashboard, which contains windows (think Portlets) of content called dashlets.||Declarative and Programmatic||Limited Support (Use Aikau Dashlets instead)|
|Aikau Menus||The main menu of Share is implemented with the new Aikau UI development framework.||Programmatic||Full Support|
|Aikau Pages||The Share web application is built up of a main menu from which you can navigate to a number of pages. These pages are implemented mostly in the Surf development framework. However, a number of pages, such as search, have been converted and implemented with the new Aikau development framework, see architecture section.||Declarative and Programmatic||Full Support|
|Aikau Dashlets||The Share web application has a special page called Dashboard, which contains windows of content called dashlets. Currently most of these dashlets are Spring Surf dashlets, but they will eventually be converted to Aikau dashlets.||Declarative and Programmatic||Full Support|
|Modifying OOTB Code||Most of the Share UI functionality can be traced back to a web script in one place or another. Sometimes it is useful to be able to override the controller or template of one of these out-of-the-box web scripts. Same things goes for other out-of-the-box code for things like pages and dashlets.||Override||Full Support via Surf Extension Modules|