Loading...
 
Development

Development


Tiki Plugins

posts: 6 United States

I understand the difference between modules and features, but I'm not clear about plugins. What's their purpose and how are they different from the other two?

Richtl

posts: 111 Taiwan

Feature is a semantic name, it doesn't describe a morphology. We call feature something that bring a specified functionnality and we have no real index of them. Sometimes a feature is just a couple of php+tpl like tiki-newfeature.php and templates/tiki-newfeature.tpl, sometimes with corresponding lib/requiredlib/requiredlib.php. It's rather easy to copy one existing feature and make a new one.
Some times it's much more complicated and there are various files everywhere.

Module is the name of the boxes we have on the right and left column. They are one template and a php file, placed in templates/modules/ and modules/ and names are conventionnally prefixed with mod-. There is no declaration to do (maybe it will be cool to think about a central registry of modules somewhere, but we don't have it yet) and the modules/ dir is parsed when the list of available modules is required (in admin modules panel).

Plugins are smarty features that make possible to use {ANYTHING()}{ANYTHING} for including feature in wiki pages (or, incidentally, forums, articles, blogs, ..). There is a major confusion about the Module Plugin that make possible to include a module (a box) in a page (by the way of the plugin {MODULE()}{MODULE}). Plugins are in lib/wiki-plugins/ and are prefixed with wikiplugin-. The lib/wiki-plugin-dist/ was intended to be the main dir but people were annoyed to have to move requird files from one dir to the other, so there is only one plugin that is only in dist and not in the default one : the include plugin, for security reasons. The next step will be to have here too a sortof registry that make possible to enable or disable a plugin from the database rather than from filesystem.

mose


posts: 1001 Canada

richtl, is this answer complete?biggrin
mose, maybe you should think of including this in (developer?) FAQ, so it doesn't get lost in the flow. This is pertinent documentation.