What Makes A Theme OpenPublic Compatible?
OpenPublic is a Drupal Distribution
Drupal Distributions or Installation Profiles are pre-packaged versions of Drupal that contain Drupal core, which you can download from drupal.org along with a slew of contributed modules. The Drupal core and modules are usually pre-configured in a certain way to better serve some specific purpose, such as for news publishing purposes in the case of OpenPublish.
Are all Drupal Themes OpenPublic Compatible?
OpenPublic-compatible is any Drupal theme that can be used with OpenPublic and can support the full functional spectrum of the OpenPublic platform.
Technically, any Drupal theme can be enabled in OpenPublic, but that does not mean that any Drupal theme is compatible with it. OpenPublic adds a wide variety of features on top of those supported by vanilla Drupal. Drupal themes not built for OpenPublic are typically not aware of these features and therefore either do not properly support them or ignore them altogether. Please look at the OpenPublic Compatibility Checklist for Themes section below for more information.
OpenPublic's original base theme was openpublic_theme and now also includes openomega_theme and spartan_theme. The purpose of these base themes is to ease the development of themes compatible with OpenPublic. While not technically necessary, it is highly recommended to start any OpenPublic theme as a sub-theme of the openpublic_theme or spartan_theme.
When releasing versions of OpenPublic, we constantly update openpublic_theme, openomega_theme, and spartan_theme. The themes that properly sub-theme openpublic_theme, openomega_theme, and spartan_theme will automatically get most bug-fixes and improvements, simply by updating these base themes. Those themes that don't sub-theme using one of the base themes will have to do independent maintenance and updates, which could be costly, over time.
OpenPublic Compatibility Checklist for Themes
Following are the specific, minimal requirements a theme must satisfy in order for it to be compatible with OpenPublic and be considered for contribution to the OpenPublic themes gallery.
- Theme must provide fully-styled implementation of base OpenPublish content-types. Each content type style must support exposure of all variables that the latest version of the OpenPublic base themes do. The list of base content-types at the time of this writing is as follows:
- Blog entry
- Home Page Feature
- Media Gallery
- Press Release
- Site Page
- Theme must provide consistent default styles for all common HTML elements (e.g. <a>, <h1>, <h2>, <h3>, <li>, <p>, etc)
- Theme must provide flexible and consistent default styling for node.tpl.php (to support new content types out of the box, until they are specifically styled).
- Theme must provide flexible and consistent default styling for all levels of views: row, style and display as well as main styles like: unformatted, list and grid (to support new views out of the box, until they are specifically styled). If a user adds new custom view, with arbitrary set of fields, its block view must look reasonably well in any general region and its page view must look reasonably well, as well.
- Themes must use semantically meaningful markup and css class names. An example of such approach is Plain Old Semantic HTML (POSH: http://microformats.org/wiki/posh)