A modular template like the OpenCms template Mercury is highly adjustable to specific needs and easily extendable. If used for multiple websites for different customers, configuration canges according to the customers needs are necessary. For example:
- The template's contents feature an element setting ("CSS selectors") for adding classes to the class attribute of the HTML output's surrounding tag. For one customer, one set off classes should to selectable, for the next another set and for the it should be possible to type in class names as plain string. Maybe even the setting "CSS selectors" should be renamed, e.g. to "Background color" for a specific use case.
- The template's contents are partly editable via an WYSIWYG editor. The editor has a configurable set of options. One customer wants one option set, the next another. So technically the widget configuration in the content's XSD needs to be adjusted.
- Mercury by default is upgradable. But this means that third-party CSS and JavaScript add-ons must be limited. What if a customer needs such adjustments? He can get it, trading the options against updateability. A sitemap attribute can switch to the variant of the template and the template JSP's code will allows to include third-party styles and JavaScript into the template.