forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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.
 |