123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- Plugins
- =======
- Beginning with the 0.7.x branch, StatusNet has supported a simple but
- powerful plugin architecture. Important events in the code are named,
- like 'StartNoticeSave', and other software can register interest
- in those events. When the events happen, the other software is called
- and has a choice of accepting or rejecting the events.
- In the simplest case, you can add a function to config.php and use the
- Event::addHandler() function to hook an event:
- function AddGoogleLink($action)
- {
- $action->menuItem('http://www.google.com/', _('Google'), _('Search engine'));
- return true;
- }
- Event::addHandler('EndPrimaryNav', 'AddGoogleLink');
- This adds a menu item to the end of the main navigation menu. You can
- see the list of existing events, and parameters that handlers must
- implement, in EVENTS.txt.
- The Plugin class in lib/plugin.php makes it easier to write more
- complex plugins. Sub-classes can just create methods named
- 'onEventName', where 'EventName' is the name of the event (case
- matters!). These methods will be automatically registered as event
- handlers by the Plugin constructor (which you must call from your own
- class's constructor).
- Several example plugins are included in the plugins/ directory. You
- can enable a plugin with the following line in config.php:
- addPlugin('Example', array('param1' => 'value1',
- 'param2' => 'value2'));
- This will look for and load files named 'ExamplePlugin.php' or
- 'Example/ExamplePlugin.php' either in the plugins/ directory (for
- plugins that ship with StatusNet) or in the local/ directory (for
- plugins you write yourself or that you get from somewhere else) or
- local/plugins/.
- Plugins are documented in their own directories.
|