Gantry Framework - Part 1: Overview
Gantry Framework - Part 1: Overview
Written by Andy Miller Thursday, 19 November 2009 00:00
This is Part 1 in a series of blog posts to provide some insight into the origins of Gantry and the functionality it provides. To learn more about the Gantry Framework as well as view documentation and tutorials, be sure to visit the official Gantry Framework site.
A framework is a set of functionality that provides some structure and logic to support a rapid and simplified development process. Joomla! is built on top of the Joomla Framework that abstracts some core functionality into a reusable set of code that allows a fairly easy development process to create new, or extend existing functionality. The Joomla! framework is what I would refer to as a PHP-based web framework. Depending on the problem your trying to solve, there is probably a framework out there to suit your needs.
Designing web templates, and Joomla templates in particular is not a trivial process and over the years our template building process has become quite involved to say the least. There are many factors to take into account related to browser capabilities, functionality, design, style, layout, typography, etc. RocketTheme has built an extensive set of functionality to handle these and we modify these on a template-by-template basis with each new release. We've wanted to create a unified framework to make theme design and development easier, more reliable, while at the same time allowing for our extensive functionality that you've become accustomed to. We've seen others creating frameworks but we've always felt that although these provide for an easy configuration and make it fairly simple for templates to be created, they impose too many limitations to ever work here at RocketTheme. In our usual all-or-nothing approach, we have waited until we could release the most flexible, extensible, and powerful template development framework out there.
Some of our core-tenants for development of this framework have been:
- This framework should be able to be installed as a standalone template and then used as the basis for new template development.
- Templates based on this framework should be easy to configure and modify. As much as possible should be controlled by the templateDetails.xml, and adding new positions, functionality,etc should be easy.
- Intuitive Administrative UI. The framework should be easy to use and configure but not at the expense of losing functionality and flexibility. We've taken the familiar template parameters and pushed them to an unheard of level.
- A simple and clean template! That means simple index.php, a simple set of CSS files, basically everything optimized for clarity and simplicity.
- Unparalleled control of layout and design never before seen on Joomla.
- Reuse is key. Anything that we need in more than one template is a good candidate to be in the core of the framework.
- Ability to override any layout. We don't want to be locked into a rigid XHTML output, so a solid and flexible XHTML core, while allowing the ability to override layouts to add structure and classes on a template-by-template basis is a critical attribute for the framework to have.
- Ease of creating new functionality and adding/supporting that functionality within the grid/layout system.
- Based on a standard CSS framework. We chose the 960 Grid System (http://960.gs/) due to it's simple and clean CSS, source-ordering ability, and cross-browser functionality.
- This framework should make porting templates to other platforms easier. We want to ensure all the 'design' elements, 'core' elements, and platform specific elements are separated to ensure easier development and maintainability.
We're pleased to say that our new Gantry Framework checks all the boxes and we feel it is a real game-changer when it comes to developing templates for platforms such as Joomla. Regarding times, we have a pretty solid platform already, and we plan on releasing the first RocketTheme Joomla Template with Gantry for our December release. Also, we will take some time to ensure that Gantry fully up to our own rigorous quality requirements before we port it to other platforms such as WordPress.
We will provide some more detail and insight on the specific features of Gantry in the coming days and weeks, so stay tuned!
Please read Part 2, Part 3 and Part 4 in this blog series to discover how Layouts work in Gantry.
