Copyright © 2005 Robert Bienert
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.
LayManSys – short for Layout Management System – is a PHP framework, that helps you providing a consistent look&feel of your web pages (it is no CMS - Content Management System). It stores the meta information about the documents in RDF (short for Resource Description Framework) files and uses them for generating the HTML frame (
<head> and footer).
LayManSys is a RDF-based PHP framework for generating a consistent layout of web documents. It is a include library (and no CMS) that can be used online as well as on the command line. It generates the documents HTML frame, that is its
<head> and footer, manages (CSS) style definitions, shortcut icons (aka favicons), static HTML and dynamic PHP content and much more. The necessary meta information is either stored in (the) RDF files or in special layout configuration files; these files can be seen as some kind of “themes”. To use LayManSys' benefits, you only need to write the body of your web document, collect all meta information about it in a RDF file, include the LayManSys library into the document and call its initialization function. At the documents bottom you may want to call a LayManSys finalization routine that builds the footer element.
As mentioned above, there is only one function call to start parsing the meta information and building the HTML frame. This function delegates most work to helper functions and objects, that parse the RDF file(s), parse a layout configuration if necessary, send HTTP header and generate HTML output until the
<body> element. The default is to write also the main heading,
<h1 id="top">, using the same information as for the
The RDF files for LayManSys make use of XML namespaces and are inherited from the idea of presenting Dublin Core meta data in a XML way: All Dublin Core related information belongs to elements in the “dc” namespace, such as
dc:Subject. If inner data structures, e.g. list or sequences, are needed, they are directly taken from the Resource Description Framework, e.g.
RDF:Seq. LayManSys maps the Dublin Core data to HTML content with the same or a similar meaning.
The use of XML namespaces and RDF makes the files extremly extendable, because it is no problem adding additional information to the RDF files. That is the way how LayManSys adds its information, such as references to CSS files or layout configuration, to the RDF files. I hope, that this is way the Resource Description Framework should be used to and was designed for, because these files describe (web) resources.
LayManSys is not a Content Management System! It helps you providing a consistent layout and HTML resp. XHTML code of your site. For this, it generates certain HTML code for a documents header and footer. But – unlike a CMS – you still have to write the code for the documents body. The body than can be generated using a CMS, of course.
Most Content Management Systems use databases as information stores; these information is provided by something like a main page, so they consist of a data store and a limited set of CGI (short for Common Gateway Interface) files (this term includes technologies like PHP or ASP). LayManSys – on the other hand – is only a include library, that can be used in a unlimited number of PHP files. It only provides a framework for your HTML content.