Steven Miles

2008
OCT

Snapp CMS

Agency cru-logo.png Developers
Development
Steve Miles
Technologies
Server Side
PHP 5.2+
MySQL
Apache
XML Web Sevices
Admin Client Site
ExtJS 2+
Javascript
CSS
Frontend Client Side
PHP 5.2+
HTML
XML
CSS
Javascript

Overview

SnappCMS was the next evolution from Cru Content taking what we had learned from Cru Content and take it to the next level, but still maintain our core goals of being easy to use for the end user and not hindering a developers development style or need to get the job done.

SnappCMS has been built on PHP 5 with a MySQL database for it's core data manipulation and services and uses ExtJS 2 for it's rich administrative interface.

With the idea of being deployed on a server level we have structured the cms so that it can be easily setup deployed as either a complete  standalone application for a single site or as a shared library allowing us to share a single code base across all sites for ease of development and maintenance of updates. 

Architecture

SnappCMS at it's core is essentially a data provider to developers, that can essentially be rendered into whatever format or structure that is required to get the job done, whether its rendering the data as a standard html page, xml or data objects for use with flash sites or even turned into javascript objects for use in highly dynamic sites, it make the cms very fluid and flexible to suit almost any need, while still providing a consistent and standardized way of editing that content.

Taking advantage of PHP 5 autoloading function proved to be a great advantage in allowing to cms to be fully extensible with a repository for our base classes and modules, while also providing a folder specific to each site for which developers can create and add their own classes, modules and widgets, that will be automatically available to be used any where through out the site.

Templates

Keeping with our goal to reduce repetition of code and common task, SnappCMS has three types of templates available for the creation of sites

1) Mulitple Site Template

SnappCMS candle multiple sites to be run from the one instance of the administration, allowing different domain names or viewing devices to have their own template eg

  • GetOutThere.gov.au has a flash/xml interface and also a html interface both using the same page data for ease of maintenance
  • JerryGhionis.com has 3 different sites but by keeping them in the one instance allows the same assets to be used across all sites and provides a central ecommerce and order management
  • Or you may simply want to provide a mobile version of the site to mobile/iphone users without having to duplicate content

2) Page Type Templates

Each page type (eg Content, Blog Product Catalog etc) can a unlimited number of page templates created allowing content editors to be able to simply select which template they want the data to be displayed in. By the simple act of either copying a existing template and modifying it or even created a new folder, in the template folder, allow developers to quickly provide slightly different templates to suit the needs of the job.

3) Content Templates

Content templates are basically small html snippets that content editors can insert into any content area with the administration, reducing the need create the layout each time in html

Widgets

Widgets are one of the corner stones of SnappCMS, it allows developers to re-use existing code snippets to perform repetitive task like creating a menu structures, links, user editable content or even content from another module into any part of a page or template.

One of the really nice aspects of the widget engine is that same widget can be used in the construction of the site, in a modules rendering template and even in any of the user generated content. Added with the ability of developers to created their own custom widgets on a per site basis means new widgets can be constantly added the collection and expand the possibilities to the content editors

Administration Console

The administration console it a very rich application like experience. It have been built completely out of javascript and css by leveraging the ExtJS library to provide a solid framework for the rapid development and extension.

Having such a framework allowed us to make the process of managing content much easier, by provide standard functionality like content menu's, drag and drop for the sorting of images and pages, multi tab layout, braking up complex layouts into simpler more focused tasks and a multi document interface allowing multiple pages to be open at once. Being very dynamic All in current industry stand browsers, like IE7, Firefox and Safari.

The administration console has been designed to be very modular and can easily extend simply enabling or adding new modules to a site

Content

The content aspects of the cms forms the heart of SnappCMS, with a sitmap tree structure outlining all the pages with in a site, containing visual icons representing different page types. Each page type is a different module that can either provide a link to a more extensive module like a product catalog or be as simple as a standard html content page, but each page type con be completely difference in how it collects and edits it individual pages data


Page Creation Wizard

Media Manager

The media manager is a central location for content editors to update and organize assets for their site, allow the standard functions of upload, renaming, creating folders. It also provides automatically generated thumbnails of all images and associated icons for know file types.

Administration

The Administration Module provides a easy way to add and manage user access to the console as well as individual access right to each module. Each Module can have it's own individual access permissions and rights. Also modules can be enabled or disabled on a per site basis allowing the interface to be simplified down to just what is required.

All changes and errors are automatically logged for latter diagnostics and problem solving



For more information on the api and data objects you can view the Developer API Documentation

Powered By Cru Content
 
data recovery