GUI extension concepts
SDL Tridion Sites has a GUI extensibility mechanism that supports a wide range of extensions, from one new button, linked to existing functionality, to a completely new user interface built from scratch. This section describes the concepts involved in extending the GUI.
- Editors
- Almost always, an extension to the GUI, no matter how small or big, takes the form of an Editor. A typical Editor has a set of resources, a command set and a configuration.
- Controls
- Your GUI extension will typically introduce new controls, such as new buttons or new menu items. Those controls may be navigation controls (that is, clicking them reveals a screen or displays content) and command controls (that is, clicking them executes code, either your own or SDL Tridion Sites code).
- Organization elements
- Your GUI extension may also introduce new GUI elements to organize controls on the screen. For example, you may want to give your new button its own new ribbon tab, or its own new control group on an existing tab. Or you may want to use separators to set your new menu item apart from the existing ones in a menu.
- Command sets
- In your Editor configuration, a command set defines one or more commands that can be executed by clicking a command control in the GUI, or by making a JavaScript call. You can create as many command sets per Editor as you like.
- Commands
- Typically, your GUI extension will introduce new commands: code to execute when a new control is used. The commands themselves take the form of JavaScript files containing a JavaScript class that actually contains the command code. Your class can interact with Content Manager, but it can also execute code that you wrote yourself and that is completely unrelated to SDL Tridion Sites.
- Data Extenders
- A Data Extender intercepts and can modify the parameters of a request before or after it is sent from the GUI to the GUI backend (web service methods) or of a response before or after it is sent back. This enables you to, for example, change the appearance and contents of a list of items, or simply to analyze the parameters without changing them.
- Models
- Use Models if you want to model your custom data and integrate it with the GUI framework. The Model interacts with the custom data through a web service.