plugin interface implemented
example plugins added: date and network moved "logs" to plugins
This commit is contained in:
parent
5af79f90b6
commit
dba8ca79fd
27 changed files with 483 additions and 174 deletions
36
pythonrewrite/plugins/plugin-interface.txt
Normal file
36
pythonrewrite/plugins/plugin-interface.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
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
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue