Module system
Exponential is module based. The Exponential kernel functionality is available
using different interfaces. Interface implementation is plugin based and the
current implementations are Web and SOAP. The Web interface is the normal
browser based Exponential interface which outputs HTML. The SOAP interface is a
general SOAP interface useful for integration with other systems using
industri standard XML messages.
TODO — Image not available in archive
Title: Module System Architecture Diagram
File: /doc/images/module.png
What this image shows:
Diagram showing the Exponential CMS module system architecture. Illustrates how module definitions (module.php files) declare functions and their views, how the kernel dispatches requests to module functions, and how the module result is passed to the layout template.
Replacement instructions:
Redraw based on sdk/kernel/view/module_system documentation. Save as /doc/images/module.png
See /sdk/missing.html for the full list of missing images.
Module directory structure
There are different types of modules which can be placed in different places
in the Exponential directory structure. The kernel modules are located under
/kernel/.
/kernel/content/ <- content module
/kernel/content/module.php <- module definition
/kernel/content/web/ <- web implementation
/kernel/content/web/view.php <- web implementation of content / view
/kernel/content/soap/ <- soap implementation
/kernel/content/soap/view.php <- soap implementation of content / view
Module definition
Each module has it's own definition file. This file describes the available
functionality.
- List of available functions ( all functions may not be implemented in all interfaces )
- List of parameters to each function
- List of context variables which can be used for permissions
Workflows
Every function in every module will get triggers, pre and post, which
can execute a workflow. These workflows can be used to add custom functionality
or to add special permission checking. Read the
workflow documentation for
details.
Permissions
The available modules, functions and context variables are used when creating
permission policies. These policies define what a specific user has access to
in the system. Permissions are checked before the pre workflow is trigged,
i.e. if you don't have access to a function the pre workflow will never be
trigged.
permission documentation for
details.
|