diff options
Diffstat (limited to 'doc/Plugins.md')
-rw-r--r-- | doc/Plugins.md | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/doc/Plugins.md b/doc/Plugins.md index 9fdbac502..7d802fc5c 100644 --- a/doc/Plugins.md +++ b/doc/Plugins.md @@ -1,11 +1,13 @@ -Creating Plugins/Addons for the Hubzilla + +Creating Plugins/Addons for the $Projectname ========================================== -So you want to make the Hubzilla do something it doesn't already do. There are lots of ways. But let's learn how to write a plugin or addon. +So you want to make the $Projectname do something it doesn't already do. There are lots of ways. But let's learn how to write a plugin or addon. + +In your $Projectname folder/directory, you will probably see a sub-directory called 'addon'. If you don't have one already, go ahead and create it. -In your Hubzilla folder/directory, you will probably see a sub-directory called 'addon'. If you don't have one already, go ahead and create it. mkdir addon @@ -28,7 +30,7 @@ Then we're going to create a comment block to describe the plugin. There's a spe /** * * Name: Random Place (here you can use better descriptions than you could in the filename) - * Description: Sample Hubzilla plugin, Sets a random place when posting. + * Description: Sample $Projectname plugin, Sets a random place when posting. * Version: 1.0 * Author: Mike Macgirvin <mike@zothub.com> * @@ -47,9 +49,9 @@ In our case, we'll call them randplace_load() and randplace_unload(), as that is * pluginname_uninstall() -Next we'll talk about **hooks**. Hooks are places in the Hubzilla code where we allow plugins to do stuff. There are a [lot of these](help/Hooks), and they each have a name. What we normally do is use the pluginname_load() function to register a "handler function" for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called. +Next we'll talk about **hooks**. Hooks are places in the $Projectname code where we allow plugins to do stuff. There are a [lot of these](help/Hooks), and they each have a name. What we normally do is use the pluginname_load() function to register a "handler function" for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called. -We register hook handlers with the 'register_hook()' function. It takes 3 arguments. The first is the hook we wish to catch, the second is the filename of the file to find our handler function (relative to the base of your Hubzilla installation), and the third is the function name of your handler function. So let's create our randplace_load() function right now. +We register hook handlers with the 'register_hook()' function. It takes 3 arguments. The first is the hook we wish to catch, the second is the filename of the file to find our handler function (relative to the base of your $Projectname installation), and the third is the function name of your handler function. So let's create our randplace_load() function right now. function randplace_load() { @@ -244,18 +246,18 @@ we will create an argc/argv list for use by your module functions ***Porting Friendica Plugins*** -The Hubzilla uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are: +The $Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are: * Friendica's pluginname_install() is pluginname_load() * Friendica's pluginname_uninstall() is pluginname_unload() -The Hubzilla has _install and _uninstall functions but these are used differently. +The $Projectname has _install and _uninstall functions but these are used differently. * Friendica's "plugin_settings" hook is called "feature_settings" * Friendica's "plugin_settings_post" hook is called "feature_settings_post" -Changing these will often allow your plugin to function, but please double check all your permission and identity code because the concepts behind it are completely different in the Hubzilla. Many structured data names (especially DB schema columns) are also quite different. +Changing these will often allow your plugin to function, but please double check all your permission and identity code because the concepts behind it are completely different in the $Projectname. Many structured data names (especially DB schema columns) are also quite different. #include doc/macros/main_footer.bb; |