]> git.mxchange.org Git - friendica.git/blobdiff - doc/Addons.md
Merge pull request #9408 from annando/announce
[friendica.git] / doc / Addons.md
index 858d64355f5fc33a3149679cdb2cbfd6eb48e2fc..c1861c79135434cad135217c6811c6e838ed9020 100644 (file)
@@ -104,7 +104,7 @@ function <addon>_install()
 
 function <addon>_head(App $a)
 {
-       $a->registerStylesheet(__DIR__ . '/relative/path/to/addon/stylesheet.css');
+       \Friendica\DI::page()->registerStylesheet(__DIR__ . '/relative/path/to/addon/stylesheet.css');
 }
 ```
 
@@ -126,7 +126,7 @@ function <addon>_install()
 
 function <addon>_footer(App $a)
 {
-       $a->registerFooterScript(__DIR__ . '/relative/path/to/addon/script.js');
+       \Friendica\DI::page()->registerFooterScript(__DIR__ . '/relative/path/to/addon/script.js');
 }
 ```
 
@@ -181,6 +181,8 @@ Put your tpl files in the *templates/* subfolder of your addon.
 In your code, like in the function addon_name_content(), load the template file and execute it passing needed values:
 
 ```php
+use Friendica\Core\Renderer;
+
 # load template file. first argument is the template name,
 # second is the addon path relative to friendica top folder
 $tpl = Renderer::getMarkupTemplate('mytemplate.tpl', __DIR__);
@@ -358,6 +360,7 @@ Called from `Emailer::send()` before building the mime message.
 - **htmlVersion**: html version of the message
 - **textVersion**: text only version of the message
 - **additionalMailHeader**: additions to the smtp mail header
+- **sent**: default false, if set to true in the hook, the default mailer will be skipped.
 
 ### emailer_send
 Called before calling PHP's `mail()`.
@@ -367,6 +370,7 @@ Called before calling PHP's `mail()`.
 - **subject**
 - **body**
 - **headers**
+- **sent**: default false, if set to true in the hook, the default mailer will be skipped.
 
 ### load_config
 Called during `App` initialization to allow addons to load their own configuration file(s) with `App::loadConfigFile()`.
@@ -462,6 +466,19 @@ Hook data is a `\FastRoute\RouterCollector` object that should be used to add ad
 
 **Notice**: The class whose name is provided in the route handler must be reachable via auto-loader.
 
+### probe_detect
+
+Called before trying to detect the target network of a URL.
+If any registered hook function sets the `result` key of the hook data array, it will be returned immediately.
+Hook functions should also return immediately if the hook data contains an existing result. 
+
+Hook data:
+
+- **uri** (input): the profile URI.
+- **network** (input): the target network (can be empty for auto-detection).
+- **uid** (input): the user to return the contact data for (can be empty for public contacts).
+- **result** (output): Set by the hook function to indicate a successful detection.
+
 ## Complete list of hook callbacks
 
 Here is a complete list of all hook callbacks with file locations (as of 24-Sep-2018). Please see the source for details of any hooks not documented above.
@@ -470,14 +487,14 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
 
     Hook::callAll('init_1');
     Hook::callAll('app_menu', $arr);
-    Hook::callAll('page_content_top', $a->page['content']);
+    Hook::callAll('page_content_top', DI::page()['content']);
     Hook::callAll($a->module.'_mod_init', $placeholder);
     Hook::callAll($a->module.'_mod_init', $placeholder);
     Hook::callAll($a->module.'_mod_post', $_POST);
     Hook::callAll($a->module.'_mod_afterpost', $placeholder);
     Hook::callAll($a->module.'_mod_content', $arr);
     Hook::callAll($a->module.'_mod_aftercontent', $arr);
-    Hook::callAll('page_end', $a->page['content']);
+    Hook::callAll('page_end', DI::page()['content']);
 
 ### include/api.php
 
@@ -501,20 +518,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
     Hook::callAll('item_photo_menu', $args);
     Hook::callAll('jot_tool', $jotplugins);
 
-### include/text.php
-
-    Hook::callAll('contact_block_end', $arr);
-    Hook::callAll('poke_verbs', $arr);
-    Hook::callAll('put_item_in_cache', $hook_data);
-    Hook::callAll('prepare_body_init', $item);
-    Hook::callAll('prepare_body_content_filter', $hook_data);
-    Hook::callAll('prepare_body', $hook_data);
-    Hook::callAll('prepare_body_final', $hook_data);
-
-### include/items.php
-
-    Hook::callAll('page_info_data', $data);
-
 ### mod/directory.php
 
     Hook::callAll('directory_item', $arr);
@@ -531,7 +534,7 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
 
     Hook::callAll("parse_link", $arr);
 
-### mod/manage.php
+### src/Module/Delegation.php
 
     Hook::callAll('home_init', $ret);
 
@@ -601,10 +604,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
 
     Hook::callAll('post_local_end', $arr);
 
-### mod/lockview.php
-
-    Hook::callAll('lockview_content', $item);
-
 ### mod/uexport.php
 
     Hook::callAll('uexport_options', $options);
@@ -647,6 +646,11 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
     Hook::callAll('post_remote_end', $posted_item);
     Hook::callAll('tagged', $arr);
     Hook::callAll('post_local_end', $new_item);
+    Hook::callAll('put_item_in_cache', $hook_data);
+    Hook::callAll('prepare_body_init', $item);
+    Hook::callAll('prepare_body_content_filter', $hook_data);
+    Hook::callAll('prepare_body', $hook_data);
+    Hook::callAll('prepare_body_final', $hook_data);
 
 ### src/Model/Contact.php
 
@@ -671,6 +675,14 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
     Hook::callAll('register_account', $uid);
     Hook::callAll('remove_user', $user);
 
+### src/Module/PermissionTooltip.php
+
+    Hook::callAll('lockview_content', $item);
+
+### src/Content/ContactBlock.php
+
+    Hook::callAll('contact_block_end', $arr);
+
 ### src/Content/Text/BBCode.php
 
     Hook::callAll('bbcode', $text);
@@ -692,9 +704,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
 ### src/Content/ContactSelector.php
 
     Hook::callAll('network_to_name', $nets);
-    Hook::callAll('gender_selector', $select);
-    Hook::callAll('sexpref_selector', $select);
-    Hook::callAll('marital_selector', $select);
 
 ### src/Content/OEmbed.php
 
@@ -702,9 +711,17 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
 
 ### src/Content/Nav.php
 
-    Hook::callAll('page_header', $a->page['nav']);
+    Hook::callAll('page_header', DI::page()['nav']);
     Hook::callAll('nav_info', $nav);
 
+### src/Core/Authentication.php
+
+    Hook::callAll('logged_in', $a->user);
+    
+### src/Core/StorageManager
+
+    Hook::callAll('storage_instance', $data);
+
 ### src/Worker/Directory.php
 
     Hook::callAll('globaldir_update', $arr);
@@ -715,7 +732,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
 
 ### src/Module/Login.php
 
-    Hook::callAll('authenticate', $addon_auth);
     Hook::callAll('login_hook', $o);
 
 ### src/Module/Logout.php
@@ -739,11 +755,16 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
 ### src/Core/Authentication.php
 
     Hook::callAll('logged_in', $a->user);
+    Hook::callAll('authenticate', $addon_auth);
 
 ### src/Core/Hook.php
 
     self::callSingle(self::getApp(), 'hook_fork', $fork_hook, $hookdata);
 
+### src/Core/L10n/L10n.php
+
+    Hook::callAll('poke_verbs', $arr);
+
 ### src/Core/Worker.php
 
     Hook::callAll("proc_run", $arr);
@@ -772,6 +793,11 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
     Hook::callAll('atom_feed_end', $atom);
     Hook::callAll('atom_feed_end', $atom);
 
+### src/Protocol/Email.php
+
+    Hook::callAll('email_getmessage', $message);
+    Hook::callAll('email_getmessage_end', $ret);
+
 ### view/js/main.js
 
     document.dispatchEvent(new Event('postprocess_liveupdate'));