Simblog aims to be one of the most easy-to-use and lightweight blogging platforms. It emphasizes user experience, workflow, and ease of use without neglecting usability and extensibility. It will take full advantage of what HTML5 and CSS3 have to offer without delving too deeply into experimental features.
The layout system should be implemented with the following specifications:
page is built around zones, they are generic containers, something very basic.
There will be special zones like: HeaderZone, FooterZone, MainZone. These three are mandatory. Any skin will have at least these three zones.
each zone is a container for any number of blocks >= 0
blocks are smaller containers which will contain content (from plugins or other things)
the admin is aware of the organization of zones, he will know which zone is which on the page. He should have the ability to view them, highlighted on the page.
every zone will have a unique identifier. This will be needed so the admin will know where he will add blocks of content, as well as Simblog will know which blocks are contained in any zone.
skins will come with a fix layout, zones will be identified in the template by html containers (div s or section s). Skins will have the layout configuration in a conf file (or a JSON file). The format of the configuration has not been established yet
PHP backend specifications: Layout will be a static class constructed at runtime which will read the current skin configuration and construct the zones appropriately. A Zone will be a different class which will be instantiated by the Layout class with a UniqueID which will be the 'id' of the container. This will be passed as an argument to the Zone constructor which will retrieve information from the database for that ZoneID containing a string which Zone knows how to interpret. This string will be used to determine what blocks are contained in the Zone. Blocks will be instantiated inside the plugin class.
The layout system should be implemented with the following specifications: