X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=doc%2FAddons.md;h=a1c2c03ce22e2734af99f2b3ce0c54833233bb13;hb=0bc677b725ce8f4666ad6774ef6a9fa775a73408;hp=47d16085a1216595c44914695fb4d122014ed62e;hpb=9245942a0c2c98254c575e9f3d8c46c1da985ba6;p=friendica.git diff --git a/doc/Addons.md b/doc/Addons.md index 47d16085a1..a1c2c03ce2 100644 --- a/doc/Addons.md +++ b/doc/Addons.md @@ -31,7 +31,7 @@ Here's the structure: * Status: {Unsupported|Arbitrary status} */ ``` - + You can also provide a longer documentation in a `README` or `README.md` file. The latter will be converted from Markdown to HTML in the addon detail page. @@ -104,7 +104,7 @@ function _install() function _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 _install() function _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__); @@ -445,7 +447,7 @@ Form field array structure is: - **field**: Standard field data structure to be used by `field_checkbox.tpl` and `field_select.tpl`. For `checkbox`, **field** is: - - [0] (String): Form field name; Mandatory. + - [0] (String): Form field name; Mandatory. - [1]: (String): Form field label; Optional, default is none. - [2]: (Boolean): Whether the checkbox should be checked by default; Optional, default is false. - [3]: (String): Additional help text; Optional, default is none. @@ -456,7 +458,7 @@ For `select`, **field** is: - [1] (String): Form field label; Optional, default is none. - [2] (Boolean): Default value to be selected by default; Optional, default is none. - [3] (String): Additional help text; Optional, default is none. - - [4] (Array): Associative array of options. Item key is option value, item value is option label; Mandatory. + - [4] (Array): Associative array of options. Item key is option value, item value is option label; Mandatory. ### route_collection Called just before dispatching the router. @@ -464,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. @@ -472,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 @@ -503,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); @@ -533,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); @@ -550,10 +551,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep- Hook::callAll('about_hook', $o); -### mod/subthread.php - - Hook::callAll('post_local_end', $arr); - ### mod/profiles.php Hook::callAll('profile_post', $_POST); @@ -603,10 +600,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); @@ -626,10 +619,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep- Hook::callAll('jot_tool', $jotplugins); -### src/Network/FKOAuth1.php - - Hook::callAll('logged_in', $a->user); - ### src/Render/FriendicaSmartyEngine.php Hook::callAll("template_vars", $arr); @@ -649,6 +638,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 @@ -668,11 +662,40 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep- Hook::callAll('event_updated', $event['id']); Hook::callAll("event_created", $event['id']); +### src/Model/Register.php + + Hook::callAll('authenticate', $addon_auth); + ### src/Model/User.php + Hook::callAll('authenticate', $addon_auth); Hook::callAll('register_account', $uid); Hook::callAll('remove_user', $user); +### src/Module/PermissionTooltip.php + + Hook::callAll('lockview_content', $item); + +### src/Module/Settings/Delegation.php + + Hook::callAll('authenticate', $addon_auth); + +### src/Module/Settings/TwoFactor/Index.php + + Hook::callAll('authenticate', $addon_auth); + +### src/Security/Authenticate.php + + Hook::callAll('authenticate', $addon_auth); + +### src/Security/ExAuth.php + + Hook::callAll('authenticate', $addon_auth); + +### src/Content/ContactBlock.php + + Hook::callAll('contact_block_end', $arr); + ### src/Content/Text/BBCode.php Hook::callAll('bbcode', $text); @@ -694,9 +717,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 @@ -704,9 +724,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); @@ -717,7 +745,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 @@ -741,11 +768,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); @@ -774,6 +806,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'));