mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-06 15:14:58 +00:00
some more information on how extensions work
This commit is contained in:
parent
44399154b8
commit
8d9d7fddd9
|
@ -5,7 +5,8 @@ Since verson 5.0.0 SeedDMS can be extended by extensions. Extensions
|
||||||
can hook up functions into certain operations, e.g.
|
can hook up functions into certain operations, e.g.
|
||||||
uploading, removing or displaying a document. They can also be
|
uploading, removing or displaying a document. They can also be
|
||||||
used to modify some of the internal variables like the list of
|
used to modify some of the internal variables like the list of
|
||||||
translations.
|
translations and they can even replace classes in the core of
|
||||||
|
seeddms and hook up functions into certain operations in the core.
|
||||||
|
|
||||||
All extensions are located in the folder 'ext'. Each extension
|
All extensions are located in the folder 'ext'. Each extension
|
||||||
has its own folder named by the name of the extension. The central
|
has its own folder named by the name of the extension. The central
|
||||||
|
@ -16,7 +17,8 @@ a method init() which is called with any page request. The
|
||||||
configuration itself is cached and must be updated within
|
configuration itself is cached and must be updated within
|
||||||
the extension manager if it was changed.
|
the extension manager if it was changed.
|
||||||
|
|
||||||
The integration into SeedDMS is done by hooks. SeedDMS manages
|
The integration into SeedDMS is done by hooks, class and file
|
||||||
|
overloading. SeedDMS manages
|
||||||
a globally available array of hooks ($GLOBALS['SEEDDMS_HOOKS']).
|
a globally available array of hooks ($GLOBALS['SEEDDMS_HOOKS']).
|
||||||
This array has the elements 'view' and 'controller'. All entries
|
This array has the elements 'view' and 'controller'. All entries
|
||||||
in those array elements contain instances of self defined classes
|
in those array elements contain instances of self defined classes
|
||||||
|
@ -29,3 +31,23 @@ class SeedDMS_ExtExample_ViewFolder {
|
||||||
...
|
...
|
||||||
};
|
};
|
||||||
|
|
||||||
|
The same approach is implemented for hooks called from the controller
|
||||||
|
logic (the op/op.*.php files).
|
||||||
|
|
||||||
|
$GLOBALS['SEEDDMS_HOOKS']['controller']['removeFolder'][] = new SeedDMS_ExtExample_RemoveFolder;
|
||||||
|
|
||||||
|
class SeedDMS_ExtExample_RemoveFolder {
|
||||||
|
...
|
||||||
|
};
|
||||||
|
|
||||||
|
Based on these two variants of adding hooks to the seeddms application code,
|
||||||
|
the seeddms core can be extended by implementing the controller hook 'initDMS'
|
||||||
|
which is called right after the class SeedDMS_Core_DMS has been initiated.
|
||||||
|
|
||||||
|
Beside hooks and callbacks another way of modifying seeddms is given
|
||||||
|
by overloading the files in the directory 'views' and 'controllers'. Both
|
||||||
|
directories contain class files with a single class for either running
|
||||||
|
controller or view code. If an extension provides those file in its
|
||||||
|
own extension dir, they will be used instead of the files shipped with
|
||||||
|
seeddms.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user