Inheritance in the Widget Framework

As described above, all of a publication's templates have the same top-level structure: Meta, Outer, Header, Top, Main, Aside, Bottom and Footer, for example. If a template (config.default.section.news, for example) has widgets in all of these sections, then the news section of the publication will take all of its layout from this template. If, however, only the Aside area of the template contains widgets, then the Widget Framework will look in the config.default.section template to get the layout for the Meta, Outer, Header, Top, Main, Bottom and Footer areas. If config.default.section is not complete either (if, for example, it's Outer, Header and Footer areas are empty) then the Widget Framework will look in the config.default template for the missing information.

This inheritance mechanism makes it very easy to create a standardized layout for a whole publication, and only create specialized layouts where you actually need them. A typical approach is to define a standard layout for the Header and Footer areas in the config.default template, and then define standard layouts for the remaining areas in the config.default.section and config.default.article templates. If your publication has a very standardized layout, then this may be sufficient. If, however, some of your section pages have significantly different layouts, then you can achieve that by creating config.default.section.name templates for those particular sections, and overriding just those areas that are different from the standard layout. Similarly you can, if necessary, create config.default.article.type templates for any content types that require specialized layouts.

The Sports section in the following illustration takes its Header and Footer layouts from the config.default template, and its Top, Main, Aside and Bottom layouts from the config.default.section layout. The News section, however takes its Aside layout from the config.default.section.news template, which overrides the Aside layout in config.default.section:

The following sections describe the specific inheritance mechanisms used for different types of page.