About this site

This site is powered by a Simple Content Management (SCM) system that was originally built from the ground up to accomodate my relative simple needs for web content management and to get re-acquinted with the latest approaches and best practices in this field. Web design has always been a second and lower profile part of VNS activities and that is the reason I'm spending a few words on the subject here.

Motivation

SCM is a PhP/MySQL based system that was made to run on Linux/Apache no differently than under Windows/IIS in a virtual directory and grew out of initial frustration with the many available open source solutions that I've looked at and that can readily be found on the internet. The exercize of building a fully functional content management system is certainly not trivial and it left me with great respect for the results that can be obtained by many individuals working together on an Open Source project. Thumbs up for the people creating software as Joomla or Wordpress or the multitudes of other projects hosted at sourceforge!

One benefit of building one's own system (of any kind!) though, is that it gives at least an opportunity to learn what really needs to go on under the hood and that there is direct control over the feature set.

Simple structure

SCM uses a simple mySQL database organizing sets of articles into categories and applying simple rules to whether articles are private (draft) or published, whether they appear on the menu, whether they are published in an RSS feed etc. It combines the need for static content with a bare-boned blogging system. SCM requires V4 (or up) of PhP and MySQL. The PhP code requires no register globals and no magic quotes.

Clean presentation

Any content management system should maximize separation between content and presentation. SCM tries to delegate all presentation issues by binding-in to a single HTMLSCM Logo - Celebrating PhP! template file through which all transactions go. As you can see in the source of this site's root document index.php, the root document would be a valid web page by itself when renamed as an HTML file. There are some calls to SCM to fill in dynamic content and the actual SCM frontend script itself (scm_front.php) is included in the first line. SCM writes out content as simple HTML (though things are a bit more complicated in admin mode) and Menus, for example, are written out as unsorted list tags. The template binds in an external cascading style sheet and some javascript modules.

Valid XHTML and CSS

The template for this web site is created with care to be standards (W3C) compliant and is using the XHTML transitional doctype.

Valid XHTML Valid CSS

The W3C icons here take you to on-line validators and the template contains equivalent links (below left on the page - with the check marks) allowing check-up of any page. XHTML (Extensible Hypertext Markup Language) is a family of current and future document types that reproduces, subset and extent HTML, reformulated in XML. It's the next best thing to happen to promote consistency, interoperability and stability on the web. The CSS stylesheet of the template drives all layout, positioning and formatting. There are no tables involved for that purpose and this - again - serves the goal of separating content from presentation.

Cross Browser

One practical advantage of adhering to XHTML rather than HTML is that it keeps any modern browser out of quirks mode thus enormously improving consistency of rendering between various browsers. This site has been tested on Firefox (V2.0 and V3.0), Opera (V9.6), Safari (V3.2), Internet Explorer (V6 and V7) and Google Chrome (V1.0).

browser_firefox.jpg browser_opera.gif browser_safari.jpg browser_ie.gif

Firefox is my browser of choice for development, giving easy DOM inspection, an excellent error console and very useful extensions such as the Tidy HTML validator by Marc Guery, the WebDeveloper toolbar by Chris Pederick and the brilliant Firebug by Joe Hewitt. Other browsers are getting better end better too in terms of support for development plug-ins. I want to mention fiddler and the developer toolbar for IE(7). It is essential stuff for a web developer.

Java scripting

SCM allows easy inclusion of javascripts and/or stylesheets on a per-article basis. Furthermore, both the template and SCM itself are including javascripts providing additional functionality. These all operate on the DOM level. My own scripting for the non-admin section is enhanced by two open source scripts I would like to mention.

First there's the Flash detection an embedding script SWFObject by Geoff Stearns, now in a unified open source venture at Google code. It's used to dynamically place Flash movies such as the banner flash on these pages. At the HTML level, the banner is a static background image under a standard <H1> header (see it by reloading this page after switching off javascript support in your browser). As such, the flash header entirely replaces this and dynamically takes over the banner text much as with the sIFR 2.0 idea of Rich Accessible Typography for the Masses by Mike Davidson.

OudNieuw.jpgSecondly, the lightbox (V1) script of Lokesh Dhakar is a standard inclusion. This script has become very popular and is now integrating the best of other efforts in the V2. The script allows images such as the one here at the left to be show in larger format without leaving the page. To see what I mean, just click the image (and click it again or press X at the keyboard to get back).

The picture itself, by the way, was taken on the Národní in the center of Prague, a city that has gone through an enormous renaissance in the past years.

A series of other scripts are used in the admin section of SCM, providing things such as drag and drop manipulation and - most importantly, a WYSIWYG editor for creating content. This is tinyMCE by Moxicode, enhanced an Ajax based file manager for file/image upload. The Moxicode editor is another example of excellent open source software! 

RSS Feed

SCM provides the option to publish an RSS 2.0 feed of the non-private content. The generated XML file is accompanied by an XSL transformation sheet for readability as HTML in any browser; look here to display the current feed as such (if your browser does not directly support RSS). SCM also comprizes an RSS news aggregator, based on the code of zFeeder. On this website, the news aggregator provides headlines from several parties that may be interresting to an embedded systems developer; see here. The aggregator is OPML based. You can borrow the current OMPL file here.

Filed under about – Static post 2006 Jul 10 – Modified 2009 Feb 1 – Permalink

Top