When developing custom extensions using plugins, it is often beneficial to install UI components as part of the installation of the extension making use of the IInstallallablePlugin interface and the theme automation API.
[toc]
What is the Theme Automation API
The theme automation API is set of APIs made available to plugins via the in-process API to enable the automated adjustment of UI components. Specifically, it includes the following services:
ContentFragments | Enable/disable widgets, identify widgets to other theme automation APIs, translate widgets, and automate widget upgrading. |
FactoryDefaultScriptedContentFragmentProviderFiles | Add/update, delete, and detect factory default widget provider source files and attachments to install files associated to a factory default widget provider (IScriptedContentFragmentFactoryDefaultProvider plugin). |
ThemeFiles | Add/update and detect embedded theme files. |
ThemeFooterContentFragments | List, insert, replace, and delete widgets within theme footers. |
ThemeFooters | Add, edit, delete, and detect theme footers. |
ThemeHeaderContentFragments | List, insert, replace, and delete widgets within theme headers. |
ThemeHeaders | Add, edit, delete, and detect theme headers. |
ThemePageContentFragments | List, insert, replace, and delete widgets within theme pages. |
ThemePages | Add, edit, delete, and detect theme pages. |
Themes | List themes for a specific theme type. |
And the following sets of constants for use with the services:
ContentFragmentWrappingFormats | Constants for platform-defined widget wrapping formats for use with content-fragment-related services. |
LayoutRegions | Constants for platform-defined layout regions for use with widget placement in content-fragment-related services. |
ThemeableApplicationIds | Constant for identifying the site application identifier. |
ThemeProperties | Constants for theme properties used to interact with the ThemeFiles service. |
ThemeTypes | Constants for the platform-defined theme types to be used with other theme automation APIs. |
Example: Installing a CSS File
TBD