Developers Manual
This documentation is meant for developers who want to contribute to CMSimple_XH or develop solutions for their own use, e.g. own templates.
See also the new developer documentation.
Important Rule for Extension Writers
Your code is run along with others' code, so you always should take care to avoid any possible clashes. Some hints:
use unique designators for global variables, constants, functions, classes, GPC parameters, ID, name and class attributes etc. to avoid name clashes
never destroy a session; it might still be used by others
don't change error_reporting or display_errors
1)
templates should not force a too restrictive markup language version (e.g.
HTML 4.01 strict or XHTML 1.0 strict) as a plugin might require less strict features (e.g. an <iframe>)
plugins should not make use of too “loose” features (e.g. the name attribute for <a> elements), as the template might declare (X)
HTML 5.
avoid hardcoding file or folder path's; use the constants and variables offered by the system core (CMSIMPLE_ROOT,
$pth)
the core and plugins should set
padding:0
for all elements which define an explicit
height
to avoid issues with templates using the
IE box modell (i.e.
* {box-sizing: border-box}
.
Plugin stylesheets should not use @import
at-rules, as these are not catered to by the combined plugin stylesheet (plugins.css).
System Core
Since CMSimple_XH 1.6 the developer documentation is generated from the sources. The following two articles are thus obsolete, and kept for historic purposes only.
Templates
Plugins
Miscellaneous