:murb:CMS is yet another Content Management System build from scratch by yet another designer. So why do I think this one is different? :murb:CMS is...
Note to reader (2010): this year I stopped using murbCMS, although I still sympathize with some of the ideas, maintaining it in PHP consumed too much time and frustration.
What :murb:CMS is not about is webbased editing of documents. Well, it could be, but it will not be my primary target. What :murb:CMS is about is a open flow of information. Connecting seperate files, located anywhere, on basis of their metadata.
Currently this idea hasn't been implemented yet. Some problems I still have to work around are:
I believe the web should be a heaven for those in search of information. Some may say it already is, but I believe it is too chaotic.
This chaos could be tackled through great search engines or centralized approaches (like wikipedia). A third approach making sure information is stored well. This third approach is how this CMS system tries to make sure documents stay easy accessible. Information architecture first.
When you store information, you'll probably prefer having this information still available for over a long time. That is why standars have been created, and that's why I prefer using standards for this CMS. The latest web-standards are all being based on one technology called XML. It's big advantage is it's flexibility and extensibility. Goal of this CMS is therefore also to meet to this flexi- and extensibility.
:murb:CMS tries to embrace these new technologies and will try to reformat any given standards based XML file.
As I have a dutch nationality I don't write all my articles in English. And my audience won't speak or read English as fluently as I'd like them too. Therefor there is a need for localisation. This will be done using the xml:lang (and lang attribute for xhtml) attribute(s).
When there are more than one elements specifying language using the right attribute on a single level in an xml file, a language can be selected using information of the browser at the client side (HTTP_ACCEPT_LANGUAGE). In murbCMS PHP obtains this information and makes the default language available to the XSLT parser.
<rdf:Description> <dc:description>General language, default language</dc:description> <dc:description xml:lang="nl">Nederlandse taal, alleen wanneer nederlands als primaire taal is geselecteerd</dc:description> </rdf:Description>
Localisation takes place at 2 places:
My first assumtpion is that the best way to store informational-documents on the web is through XHTML. That is why :murb:CMS will not make use of any different or new document format. XHTML has been designed for the web, has a proven track-history. Furthermore, because XHTML is XML, it can be transformed and extended with other XML-related technologies.
Any other XML format can theoratically be plugged into the system. The meta-data file about a document gives the parser the information needed about the document, such as it's type.
A implementation of another xml-type is the simpelPresentation system and another demonstration has been added parsing Age Bosma's ISO 8859-1/15 Character Overview XML file.
A basic page request would go along the following requests:
When continuing browsing sitestructure.xml gives all information required.
When content is denoted by sitestructure.xml another request needs to be done:
For presentation to the world, structured information is preferred. This is done by a custom made (if there would have been an appropriate standard for this I would have been using that one) format (if you know of one, please contact me. This single file places documents in an hierarchy through references to their metadata. Furthermore its task is to spice up the intermediate pages.
XSLT will be used for transformation. The server I host my websites on are all running PHP. So there are dozens of options of transforming some source file into a presentable HTML file. Yet I believe XSLT is the most future proof way of transforming. PHP may change (when I change e.g. from webserver), but the XSLT will stay, as it is supported by other serverside languages as well, heck, even browsers support it!
This section is ment to share some thoughts on storage with you.
As metadata is not safed in a standard way over different fileformats I've made the design decision to safe metadata externally.
For further insights on the problem of storing metadata: Sean B. Palmer - he discusses different approaches to include metadata.
The LINK element can be used to express links between different files. Being never aware of the LINK element for a long period of time (except for linking CSS files), it's use became more obvious to me when Mozilla offered a navigation bar. Firefox (my current browser) does not have this bar, but it can be extended with a plugin. From usability point of view this navigation bar is imho great, because it offers a standarised way of navigating through a website. Furthermore RSS feeds are often recognised when properly LINKed.
Implementation of my personal view of how this information should be managed is still limited, as I just started implementing.
Enjoyed this? Follow me on Mastodon or add the RSS, euh ATOM feed to your feed reader.
Dit artikel van murblog van Maarten Brouwers (murb) is in licentie gegeven volgens een Creative Commons Naamsvermelding 3.0 Nederland licentie .