Technical clarity

CMME has been developed for technical clarity. It has been developed to do one task and do it with simplicity. It's design is to be extendable, using plugins that are themselves simple (sub)programs. Only the parts of the program that need to be a script are so, the rest is kept cleanly functional and object oriented. This is contrary to the common PHP way of creating scripts that mix HTML with PHP code. Actually, there are two ways of working with PHP that can be seen on the internet. The first way is by mixing PHP code with HTML and creating scripts with a lot of global variables and only a few functions. The second way is by seperating PHP code from HTML, working with clean functional interfaces or object orientation. I prefere the second way of working.

Object orientation 

The development of CMME has been done, using an object oriented approach. It uses a plugin system to add different page part types. Each page part plugin handles (HTML) output, editing and removal itself. Plugins are called from within the framework of CMME.

Use of libraries

CMME uses libraries for functionality that could be used outside CMME. E.g., the hstats library is used for counting page visits and creating statistical information.

Reuse of existing components

CMME makes use of a number of PHP libraries and components by other authors:

pclzip.lib.php provides ZIP compression and decompression on a PHP basis only. It can be used where PHP has not been installed with the ZIP extensions (which is often the case). PHP Calendar is used for the WebLog plugin. EditArea is used for administering templates. It provides a javascript CSS editor. Xinha is a What You See Is What You Get (WYSIWYG) editor, written in javascript. JSCalendar provides a date picker to be used with HTML Forms. ASCIIMath is a MathML implementation in javascript. It works best with firefox. Internet Explorer is supported through an external IE plugin.


Visited: 923