The concept of extension points
The application can be extended using hookups on extension points, so called plugins.
Extension points are used to:
- inform about an executed process step (e.g. PluginsLoaded) or an arrived process progress (e.g. Start)
- process actions on data and return the results (e.g. plugin “compress” compresses the html code before output)
There are 3 steps defining/using extension points:
Step 1: Defining extension points
DefineExtensionPoint ( $ExtensionPoint[, $ExtensionMode] );
There are 2 modes for extension points:
- ESF_EXTENSIONPOINT_SINGLE: only one action can be registered for this extension point. (e.g. LoadAuctions should only return one set of auctions)
- ESF_EXTENSIONPOINT_MULTI: many actions can performed at this step
The extension points for core functionality are defined in /plugin/plugins.php
But e.g. modules can define their own extension points.
Step 2: Registering plugins (here functions) for extension points
RegisterPlugin ( $ExtensionPoint, $FunctionToProcess[, $Position] );
Here you can define, on which position the function is called, if there are
more than one function for an extension point is defined.
By default the function are called in the order they are registered.
Step 3: Processing registered plugins for an extension point
There are two modes calling plugin functions:
ProcessPluginInform ( $ExtensionPoint );
Inform about a finished process step or an arrived application status.
These plugins becomes no parameters and no return is expected.
ProcessPlugin ( $ExtensionPoint, $Parameters );
Work with the submitted parameters. Which parameters are submitted and which return is expected will be described below.


![[ Download ]](files/download.gif)