37 lines
1.9 KiB
Text
37 lines
1.9 KiB
Text
|
The following directory structure is required:
|
||
|
- python code: plugins/MODULENAME/MODULENAME.py (all lower case is recommended)
|
||
|
- language files: plugins/MODULENAME/lang/(en|de|??).hdf
|
||
|
- clearsilver templates: plugins/MODULENAME/*.cs
|
||
|
|
||
|
|
||
|
Python code interface:
|
||
|
def prepareForm(hdf, cbox):
|
||
|
- here you may add some items to the hdf dataset used by the templates
|
||
|
- the recommended namespace is Data.Modules.MODULENAME.???
|
||
|
|
||
|
def doAction(cbox, store=None, ???):
|
||
|
- this function will get called whenever this module is involved in a request
|
||
|
- all arguments should be optional (e.g. for displaying a form without previous input values)
|
||
|
- the argument "store" should be used to process a form submission (just a recommendation)
|
||
|
- if the processing failed for some reason (invalid input, ...), it should raise a CBPluginException (e.g. CBPluginActionError) - the error message should be the name of a warning message (maybe defined in the plugin specific language file) - e.g. "InvalidDate" for Lang.WarningMessage.InvalidDate
|
||
|
- the return value should be the name of the template that should be displayed after processing (a template file in the module directory takes precedence over global template files)
|
||
|
|
||
|
def def getStatus(cbox):
|
||
|
- returns a string, that described a state connected to this module (e.g. the current date and time (for the "date" plugin)
|
||
|
|
||
|
|
||
|
Language file structure:
|
||
|
- the following values _must_ be defined:
|
||
|
Lang.Modules.MODULENAME.Name (a short description)
|
||
|
Lang.Modules.MODULENAME.Link (the visible text for links to this module)
|
||
|
Lang.Modules.MODULENAME.Rank (defines the order of the plugins displayed)
|
||
|
- all other elements should follow the usual structure of language files
|
||
|
|
||
|
|
||
|
Clearsilver template:
|
||
|
- should start with a "<h1>" tag
|
||
|
- links to the module (e.g. in form headers) could look like the following:
|
||
|
<?cs call:link("module_MODULENAME",'','','','') ?>
|
||
|
- a hidden input field called "store" should be used to indicate a form submission
|
||
|
|