frab / frab

conference management system
https://frab.github.io/frab/
Other
713 stars 151 forks source link

Plugin system #10

Open oneiros opened 12 years ago

oneiros commented 12 years ago

frab aims to be as simple as possible and appeal to a wide audience of conference organizers. At the same time, every conference has it's own way of doing certain things. Especially when it comes to interfacing with 3rd party systems, such as request trackers, CRM, ticket sales systems and so on.

Ultimately I would like frab to stay lean and small but be extensible through plugins.

I kind of like the way Redmine handles this. But frab is on Rails 3 and many hacks Redmine still needs should not be necessary with newer versions of Rails. I have, however, not yet researched what it would take exactly to plug rails engine plugins into frab.

Also, I am not 100% happy with Redmine's hook system. It is hard to find useful places for hooks without plastering an unmaintanable amount of hooks all over the place. Completely overriding views from a plugin is not ideal in terms of maintainability, though, so something like this should exist.

At the very least it would be necessary to provide hooks for the navigation, so plugins can integrate into the application.

I have opened this ticket to start a discussion about how a plugin system could work. Maybe someone would even like to propose something.

manno commented 12 years ago

With the ticket server integration I had to change these things:

oneiros commented 12 years ago

I just discovered deface (https://github.com/railsdog/deface) which allows for template changes without overriding the whole template. Currently only works with erb, but haml support is being worked on.

It is used by spree commerce to solve the view hook problem.

I like the unobtrusive and extremely flexible approach of deface. But I fear it might make rendering views even slower. I might do some benchmarks at some point.

For now, this is just a reminder. It is definitely worth checking out.