Work in progress development notes
This is a development branch for Drupal 7 and a major rewrite of Hexagon base. Plug-ins and sub-themes have been removed for the time being. They will be added back in taking advantage of the new foundation.
The main purpose behind this theme has not changed. It provides a flexible underlying framework for building custom themes. Extra features can be implemented in reusable plug-ins and it provides a consistent way of overriding various files and components. Although there are many facets to theming with Hexagon, they work together as a consistent whole that makes it very easy to manage. It also serves site builders by providing a way to enable and disable functionality through prebuilt plug-ins.
@todo: This is just an outline. Details will be filled and eventually be moved into the docs included with the theme.
- Base Features
- Plug-in system
- Theme Settings
- Feature Toggles
- Cache API
- Included Plug-ins
Hexagon is a starting point for building well organized and structured themes. It is a system within the Drupal theming system. At its core, it does not provide any functionality that your site visitors will notice. There are no user configurable options, no extra widgets to fiddle with, no differences whatsoever when rendering the page. What it does provide is the ability to abstract and reuse solutions to recurring theming problems.
There are no base themes that are suited for all projects. Hexagon is no different, but its ability to abstract implementation details and the ability to disable unneeded solutions makes it a good candidate for most projects.
This abstraction happens through plug-ins. They are close equivalents to the themes they are hosted in. They can contain their own theme functions, variable process functions, templates and much more. Hexagon base provides the framework while extra plug-ins will continually be evaluated and added making it even more powerful.
- Provide a way of keeping theming code organized and manageable.
- Provide functionality that is not coupled to any specific theme, i.e., write for reusability.
- Extend on known theming concepts from the core theming system and apply them to other areas.
- Make most of the add-on functionality opt-in. Don’t make assumptions on what the theme developer wants or needs. Get out of the way!
Although Hexagon is intended for theme developers, it can be a great starting point for others with less theming experience. Going forward, more plug-ins will be made available. Simply dropping in or activating an included plug-in is a lot easier than finding code snippets and figuring out where to paste them. And for the plug-ins that implement feature toggles, all that’s needed is a simple checkbox in the theme settings form to get it working.
This section will cover Hexagon base features. It is intended for theme developers. You should have a strong grasp of the core theming system.