On 10/28/07, John Reese <jreese@...> wrote:
> Victor Boctor wrote:
> > I've posted my feedback on the Wiki page. I like your work to make
> > such plug-ins as simple as possible, but I think we should use the
> > original requirements as more complete requirements that define the
> > vision for this feature.
> Replies and answers have been posted. I did use the original
> requirements page as a guideline for the functionality expected of
> plugins, but I tried to keep everything very streamlined.
> The biggest difference is that for my design, I chose to let the usage
> of appropriate events allow the *plugin* to accomplish much of what the
> original plugin spec defined as features implemented by the API.
> For instance, rather than having the plugin manager receive CSS or
> appropriate time, I offer an EVENT_PAGE_HEAD hook which the plugin can
> declaring menu options it needs to add, it hooks into a menu output
> event to output those menu items itself. Rather than telling the plugin
> manager what language files it needs to use, the plugin can directly
> load a language file that it needs, or the language API itself will
> simply *look* for a plugin's language files if it can't already find the
> string in its cache.
> In reality, this simple plugin manager allows plugins to do anything (if
> not more than) the original spec defined, but it instead places the
> responsibility on plugin developers to use as much or as little of that
> functionality as is required.
> This not only reduces the complexity of the plugin manager (which is
> less that 1000 lines including all the management pages), but it reduces
> all the unnecessary overhead, and offers much greater freedoms to the
> plugin authors.
Sounds great. I think what we need to do is to update the dynamic
plugins specs to include the planned events like the menu event that
you referred to it above. Also having some examples about doing
actions like a plug-in that adds a new management page with a new menu
option and some extra behavior to issue view page, etc.