Technology

From fCMS

Jump to: navigation, search

Contents

[edit] Background

A Website as of today contains many small elements linked together at runtime. Most modern Frameworks or Content Management Systems require a lot of coding and knowledge the average webdesigner lacks of. To avoid mixing design and program logic and to make life in general easier for a website constructor, the fCMS SiteSystem encapsulates the (php-)code in an easy-to-learn xml derivative, defining a page in a so-called control-xml file.

Processing these control-xml files, elements are found and mapped using their id-attribute within the content. For this to work out, the system requires valid xhtml sources - including the correct xml namespace definition - and the id attribute within the content snippets to be globally for the resulting content document.

[edit] 3-Pass Processing

The fCMS SiteSystem processes the control-xml using three sequential processing steps:

  • PREPARE MODE
In the first step, the control.xml is fed into the PageBuilder subsystem. In PrepareMode, the PageBuilder loads all static elements, resolves static overlays and everything that is explicitly set to be cacheable. See Control Syntax for details on tags supported in this mode. Once PrepareMode processing has completed and if caching is enabled, the intermediate result will be stored in the cache to base future request upon this stage.
  • PREPROCESSING
For enhanced flexibility, the PreProcessor-mode can modify the control file based on runtime generated values, like loading
different parts or modules based on user input, dynamically set values or disable unwanted functionality.
See PreProcessing for details on what the PreProcessor subsystem can do. All actions directly modify the control.xml replacing the PreProcesor tags by their resulting output.
  • FINAL MODE
As the last step, the PageBuilder will be called again in final mode, to execute all modules (unless forced cachable and thus been already called in PrepareMode) and load all remaining parts and overlays either defined as noncachable or because of a result created from the preprocessing-step executed before. See Control Syntax for details on tags supported by the PageBuilder in this mode.
Once processing is complete, the resulting Content-DOMDocument will be dumped into the users browser, replacing all system
placeholders (see Variables for details) with the specific values.

Since the control file is processed from top to bottom, it is possible to nest structures using the id of an element which has been loaded before. Keep in mind though, that the 3-way-processing might lead to unexpected behavior if caching or preprocessor tags are ignored.


[edit] Custom virtual protocols


[edit] Language Handling


[edit] Site Mode and Binary Mode

Personal tools