You are here: start » developers_manual

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_errors1)
  • 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.




You are here: start » developers_manual
Except where otherwise noted, content on this wiki is licensed under the following license: GNU Free Documentation License 1.3
Valid XHTML 1.0 Valid CSS Driven by DokuWiki