updated as of: October 23, 2012
The current version of IS4C has many areas of functionality that
are extensible via modules. The structure, however, is very rigid.
Class files for a given area of functionality (e.g., parsing) have
to be placed in a specific directory. This is not conducive to 3rd
party development; their additions end up scattered throughout the
the upstream version. Plugins attempt to address this issue.
A plugin is a self-contained collection of modules. It consists of:
last author: Andy Theuninck
The actual Plugin module contains metadata about the plugin. It specifies any
settings that should be exposed to the user and provides hooks to take action
when the plugin is enabled or disabled. The additional modules provided by the
plugin are identified by base class. When a plugin is enabled, these additional
modules automatically appear as new options in appropriate sections of IS4C's
configuration. Class names should match file names, but
otherwise file and directory structure is entirely up to the developer.
Doxygen documentation is available for the Plugin class. The included MemberCard
plugin is a decent illustrative example. It provides one module (a special UPC handler)
and uses the plugin system to expose the necessary prefix setting.
- A directory under "plugins" (for example, MyPlugin
- A file with the same name containing a Plugin subclass of the same name
(for example, a file MyPlugin.php containing the class MyPlugin)
- As many other modules as needed