X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=doc%2Fde%2FAddons.md;h=35ce0e28b4150ed0085390b9ed9726eee84604cb;hb=6f290607de7f10cea7429aacd0b394fd3f4c4e69;hp=5bbfde279437388ae2cbd08d42f871598ce15b64;hpb=9665f4ed415d34cbcf09df8c6ca04882303e9544;p=friendica.git diff --git a/doc/de/Addons.md b/doc/de/Addons.md index 5bbfde2794..a20cf4a594 100644 --- a/doc/de/Addons.md +++ b/doc/de/Addons.md @@ -26,7 +26,7 @@ Addons sollten einen Kommentarblock mit den folgenden vier Parametern enthalten: Registriere deine Addon-Hooks während der Installation. - Addon::registerHook($hookname, $file, $function); + \Friendica\Core\Hook::register($hookname, $file, $function); $hookname ist ein String und entspricht einem bekannten Friendica-Hook. @@ -61,11 +61,14 @@ Addons können auch als "Module" agieren und alle Seitenanfragen für eine besti Um ein Addon als Modul zu nutzen, ist es nötig, die Funktion "addon_name_module()" zu definieren, die keine Argumente benötigt und nichts weiter machen muss. Wenn diese Funktion existiert, wirst du nun alle Seitenanfragen für "http://example.com/addon_name" erhalten - mit allen URL-Komponenten als zusätzliche Argumente. -Diese werden in ein Array $a->argv geparst und stimmen mit $a->argc überein, wobei sie die Anzahl der URL-Komponenten abbilden. -So würde http://example.com/addon/arg1/arg2 nach einem Modul "addon" suchen und seiner Modulfunktion die $a-App-Strukur übergeben (dies ist für viele Komponenten verfügbar). Das umfasst: - - $a->argc = 3 - $a->argv = array(0 => 'addon', 1 => 'arg1', 2 => 'arg2'); +Diese werden in das App\Arguments Objekt geparst. +So würde `http://example.com/addon/arg1/arg2` dies ergeben: +```php +DI::args()->getArgc(); // = 3 +DI::args()->get(0); // = 'addon' +DI::args()->get(1); // = 'arg1' +DI::args()->get(2); // = 'arg2' +``` Deine Modulfunktionen umfassen oft die Funktion addon_name_content(App $a), welche den Seiteninhalt definiert und zurückgibt. Sie können auch addon_name_post(App $a) umfassen, welches vor der content-Funktion aufgerufen wird und normalerweise die Resultate der POST-Formulare handhabt. @@ -101,7 +104,7 @@ Derzeitige Hooks **'post_remote'** - wird aufgerufen, wenn ein Beitrag aus einer anderen Quelle empfangen wird. Dies kann auch genutzt werden, um lokale Aktivitäten oder systemgenerierte Nachrichten zu veröffentlichen/posten. $b ist das Item-Array einer Information, die in der Datenbank und im Item gespeichert ist. - {Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML) + {Bitte beachte: der Seiteninhalt ist bbcode - nicht HTML) **'settings_form'** - wird aufgerufen, wenn die HTML-Ausgabe für die Einstellungsseite generiert wird. $b ist die HTML-Ausgabe (String) der Einstellungsseite vor dem finalen ""-Tag. @@ -189,178 +192,317 @@ Derzeitige Hooks Komplette Liste der Hook-Callbacks --- -Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 14-Feb-2012 generiert): Bitte schau in die Quellcodes für Details zu Hooks, die oben nicht dokumentiert sind. +Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Apr-2018 generiert): Bitte schau in die Quellcodes für Details zu Hooks, die oben nicht dokumentiert sind. + +### index.php + + Hook::callAll('init_1'); + Hook::callAll('app_menu', $arr); + 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', DI::page()['content']); + +### include/api.php + + Hook::callAll('logged_in', $a->user); + Hook::callAll('authenticate', $addon_auth); + Hook::callAll('logged_in', $a->user); + +### include/enotify.php + + Hook::callAll('enotify', $h); + Hook::callAll('enotify_store', $datarray); + Hook::callAll('enotify_mail', $datarray); + Hook::callAll('check_item_notification', $notification_data); + +### src/Content/Conversation.php + + Hook::callAll('conversation_start', $cb); + Hook::callAll('render_location', $locate); + Hook::callAll('display_item', $arr); + Hook::callAll('display_item', $arr); + Hook::callAll('item_photo_menu', $args); + Hook::callAll('jot_tool', $jotplugins); + +### mod/directory.php + + Hook::callAll('directory_item', $arr); + +### mod/xrd.php + + Hook::callAll('personal_xrd', $arr); + +### mod/ping.php + + Hook::callAll('network_ping', $arr); + +### mod/parse_url.php + + Hook::callAll("parse_link", $arr); + +### src/Module/Delegation.php + + Hook::callAll('home_init', $ret); + +### mod/acl.php + + Hook::callAll('acl_lookup_end', $results); + +### mod/network.php + + Hook::callAll('network_content_init', $arr); + Hook::callAll('network_tabs', $arr); + +### mod/friendica.php + + Hook::callAll('about_hook', $o); + +### mod/profiles.php + + Hook::callAll('profile_post', $_POST); + Hook::callAll('profile_edit', $arr); + +### mod/settings.php + + Hook::callAll('addon_settings_post', $_POST); + Hook::callAll('connector_settings_post', $_POST); + Hook::callAll('display_settings_post', $_POST); + Hook::callAll('settings_post', $_POST); + Hook::callAll('addon_settings', $settings_addons); + Hook::callAll('connector_settings', $settings_connectors); + Hook::callAll('display_settings', $o); + Hook::callAll('settings_form', $o); + +### mod/photos.php + + Hook::callAll('photo_post_init', $_POST); + Hook::callAll('photo_post_file', $ret); + Hook::callAll('photo_post_end', $foo); + Hook::callAll('photo_post_end', $foo); + Hook::callAll('photo_post_end', $foo); + Hook::callAll('photo_post_end', $foo); + Hook::callAll('photo_post_end', intval($item_id)); + Hook::callAll('photo_upload_form', $ret); -boot.php: Addon::callHooks('login_hook',$o); +### mod/profile.php -boot.php: Addon::callHooks('profile_sidebar_enter', $profile); + Hook::callAll('profile_advanced', $o); -boot.php: Addon::callHooks('profile_sidebar', $arr); +### mod/home.php -boot.php: Addon::callHooks("proc_run", $arr); + Hook::callAll('home_init', $ret); + Hook::callAll("home_content", $content); -include/contact_selectors.php: Addon::callHooks('network_to_name', $nets); +### mod/poke.php -include/api.php: Addon::callHooks('logged_in', $a->user); + Hook::callAll('post_local_end', $arr); -include/api.php: Addon::callHooks('logged_in', $a->user); +### mod/contacts.php -include/queue.php: Addon::callHooks('queue_predeliver', $a, $r); + Hook::callAll('contact_edit_post', $_POST); + Hook::callAll('contact_edit', $arr); -include/queue.php: Addon::callHooks('queue_deliver', $a, $params); +### mod/tagger.php -include/text.php: Addon::callHooks('contact_block_end', $arr); + Hook::callAll('post_local_end', $arr); -include/text.php: Addon::callHooks('smilie', $s); +### mod/uexport.php -include/text.php: Addon::callHooks('prepare_body_init', $item); + Hook::callAll('uexport_options', $options); -include/text.php: Addon::callHooks('prepare_body', $prep_arr); +### mod/register.php -include/text.php: Addon::callHooks('prepare_body_final', $prep_arr); + Hook::callAll('register_post', $arr); + Hook::callAll('register_form', $arr); -include/nav.php: Addon::callHooks('page_header', $a->page['nav']); +### mod/item.php -include/auth.php: Addon::callHooks('authenticate', $addon_auth); + Hook::callAll('post_local_start', $_REQUEST); + Hook::callAll('post_local', $datarray); + Hook::callAll('post_local_end', $datarray); -include/bbcode.php: Addon::callHooks('bbcode',$Text); +### mod/editpost.php -include/oauth.php: Addon::callHooks('logged_in', $a->user); + Hook::callAll('jot_tool', $jotplugins); -include/acl_selectors.php: Addon::callHooks($a->module . '_pre_' . $selname, $arr); +### src/Network/FKOAuth1.php -include/acl_selectors.php: Addon::callHooks($a->module . '_post_' . $selname, $o); + Hook::callAll('logged_in', $a->user); -include/acl_selectors.php: Addon::callHooks('contact_select_options', $x); +### src/Render/FriendicaSmartyEngine.php -include/acl_selectors.php: Addon::callHooks($a->module . '_pre_' . $selname, $arr); + Hook::callAll("template_vars", $arr); -include/acl_selectors.php: Addon::callHooks($a->module . '_post_' . $selname, $o); +### src/Model/Item.php -include/acl_selectors.php: Addon::callHooks($a->module . '_pre_' . $selname, $arr); + Hook::callAll('post_local', $item); + Hook::callAll('post_remote', $item); + Hook::callAll('post_local_end', $posted_item); + 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); -include/acl_selectors.php: Addon::callHooks($a->module . '_post_' . $selname, $o); +### src/Model/Contact.php -include/notifier.php: Addon::callHooks('notifier_normal',$target_item); + Hook::callAll('contact_photo_menu', $args); + Hook::callAll('follow', $arr); -include/notifier.php: Addon::callHooks('notifier_end',$target_item); +### src/Model/Profile.php -include/items.php: Addon::callHooks('atom_feed', $atom); + Hook::callAll('profile_sidebar_enter', $profile); + Hook::callAll('profile_sidebar', $arr); + Hook::callAll('profile_tabs', $arr); + Hook::callAll('zrl_init', $arr); -include/items.php: Addon::callHooks('atom_feed_end', $atom); +### src/Model/Event.php -include/items.php: Addon::callHooks('atom_feed_end', $atom); + Hook::callAll('event_updated', $event['id']); + Hook::callAll("event_created", $event['id']); -include/items.php: Addon::callHooks('parse_atom', $arr); +### src/Model/User.php -include/items.php: Addon::callHooks('post_remote',$arr); + Hook::callAll('register_account', $uid); + Hook::callAll('remove_user', $user); + +### src/Content/ContactBlock.php -include/items.php: Addon::callHooks('atom_author', $o); + Hook::callAll('contact_block_end', $arr); -include/items.php: Addon::callHooks('atom_entry', $o); +### src/Content/Text/BBCode.php -include/bb2diaspora.php: Addon::callHooks('bb2diaspora',$Text); + Hook::callAll('bbcode', $text); + Hook::callAll('bb2diaspora', $text); -include/cronhooks.php: Addon::callHooks('cron', $d); +### src/Content/Text/HTML.php -include/security.php: Addon::callHooks('logged_in', $a->user); + Hook::callAll('html2bbcode', $message); -src/Content/Text/HTML.php: Addon::callHooks('html2bbcode', $text); +### src/Content/Smilies.php -include/Contact.php: Addon::callHooks('remove_user',$r[0]); + Hook::callAll('smilie', $params); -include/Contact.php: Addon::callHooks('contact_photo_menu', $args); +### src/Content/Feature.php -include/conversation.php: Addon::callHooks('conversation_start',$cb); + Hook::callAll('isEnabled', $arr); + Hook::callAll('get', $arr); -include/conversation.php: Addon::callHooks('render_location',$locate); +### src/Content/ContactSelector.php -include/conversation.php: Addon::callHooks('display_item', $arr); + Hook::callAll('network_to_name', $nets); -include/conversation.php: Addon::callHooks('render_location',$locate); +### src/Content/OEmbed.php -include/conversation.php: Addon::callHooks('display_item', $arr); + Hook::callAll('oembed_fetch_url', $embedurl, $j); -include/conversation.php: Addon::callHooks('item_photo_menu', $args); +### src/Content/Nav.php -include/conversation.php: Addon::callHooks('jot_tool', $jotplugins); + Hook::callAll('page_header', DI::page()['nav']); + Hook::callAll('nav_info', $nav); -include/conversation.php: Addon::callHooks('jot_networks', $jotnets); +### src/Core/Authentication.php -index.php: Addon::callHooks('init_1'); + Hook::callAll('logged_in', $a->user); -index.php: Addon::callHooks('app_menu', $arr); +### src/Core/Protocol.php -index.php: Addon::callHooks('page_end', $a->page['content']); + Hook::callAll('support_follow', $hook_data); + Hook::callAll('support_revoke_follow', $hook_data); + Hook::callAll('unfollow', $hook_data); + Hook::callAll('revoke_follow', $hook_data); + Hook::callAll('block', $hook_data); + Hook::callAll('unblock', $hook_data); -mod/photos.php: Addon::callHooks('photo_post_init', $_POST); +### src/Core/StorageManager -mod/photos.php: Addon::callHooks('photo_post_file',$ret); + Hook::callAll('storage_instance', $data); + Hook::callAll('storage_config', $data); -mod/photos.php: Addon::callHooks('photo_post_end',$foo); +### src/Module/PermissionTooltip.php -mod/photos.php: Addon::callHooks('photo_post_end',$foo); + Hook::callAll('lockview_content', $item); -mod/photos.php: Addon::callHooks('photo_post_end',$foo); +### src/Worker/Directory.php -mod/photos.php: Addon::callHooks('photo_post_end',intval($item_id)); + Hook::callAll('globaldir_update', $arr); -mod/photos.php: Addon::callHooks('photo_upload_form',$ret); +### src/Worker/Notifier.php -mod/friendica.php: Addon::callHooks('about_hook', $o); + Hook::callAll('notifier_end', $target_item); -mod/editpost.php: Addon::callHooks('jot_tool', $jotplugins); +### src/Module/Login.php -mod/editpost.php: Addon::callHooks('jot_networks', $jotnets); + Hook::callAll('authenticate', $addon_auth); + Hook::callAll('login_hook', $o); -mod/parse_url.php: Addon::callHooks('parse_link', $arr); +### src/Module/Logout.php -mod/home.php: Addon::callHooks('home_init',$ret); + Hook::callAll("logging_out"); -mod/home.php: Addon::callHooks("home_content",$o); +### src/Object/Post.php -mod/contacts.php: Addon::callHooks('contact_edit_post', $_POST); + Hook::callAll('render_location', $locate); + Hook::callAll('display_item', $arr); -mod/contacts.php: Addon::callHooks('contact_edit', $arr); +### src/Core/ACL.php -mod/settings.php: Addon::callHooks('addon_settings_post', $_POST); + Hook::callAll('contact_select_options', $x); + Hook::callAll($a->module.'_pre_'.$selname, $arr); + Hook::callAll($a->module.'_post_'.$selname, $o); + Hook::callAll($a->module.'_pre_'.$selname, $arr); + Hook::callAll($a->module.'_post_'.$selname, $o); + Hook::callAll('jot_networks', $jotnets); -mod/settings.php: Addon::callHooks('connector_settings_post', $_POST); +### src/Core/Authentication.php -mod/settings.php: Addon::callHooks('settings_post', $_POST); + Hook::callAll('logged_in', $a->user); -mod/settings.php: Addon::callHooks('addon_settings', $settings_addons); +### src/Core/Hook.php -mod/settings.php: Addon::callHooks('connector_settings', $settings_connectors); + self::callSingle(self::getApp(), 'hook_fork', $fork_hook, $hookdata); -mod/settings.php: Addon::callHooks('settings_form',$o); +### src/Core/L10n/L10n.php -mod/register.php: Addon::callHooks('register_account', $newuid); + Hook::callAll('poke_verbs', $arr); -mod/like.php: Addon::callHooks('post_local_end', $arr); +### src/Core/Worker.php -mod/xrd.php: Addon::callHooks('personal_xrd', $arr); + Hook::callAll("proc_run", $arr); -mod/item.php: Addon::callHooks('post_local_start', $_REQUEST); +### src/Util/Emailer.php -mod/item.php: Addon::callHooks('post_local',$datarray); + Hook::callAll('emailer_send_prepare', $email); + Hook::callAll("emailer_send", $hookdata); -mod/item.php: Addon::callHooks('post_local_end', $datarray); +### src/Util/Map.php -mod/profile.php: Addon::callHooks('profile_advanced',$o); + Hook::callAll('generate_map', $arr); + Hook::callAll('generate_named_map', $arr); + Hook::callAll('Map::getCoordinates', $arr); -mod/profiles.php: Addon::callHooks('profile_post', $_POST); +### src/Util/Network.php -mod/profiles.php: Addon::callHooks('profile_edit', $arr); + Hook::callAll('avatar_lookup', $avatar); -mod/tagger.php: Addon::callHooks('post_local_end', $arr); +### src/Util/ParseUrl.php -mod/cb.php: Addon::callHooks('cb_init'); + Hook::callAll("getsiteinfo", $siteinfo); -mod/cb.php: Addon::callHooks('cb_post', $_POST); +### src/Protocol/DFRN.php -mod/cb.php: Addon::callHooks('cb_afterpost'); + Hook::callAll('atom_feed_end', $atom); + Hook::callAll('atom_feed_end', $atom); -mod/cb.php: Addon::callHooks('cb_content', $o); +### src/Protocol/Email.php -mod/directory.php: Addon::callHooks('directory_item', $arr); + Hook::callAll('email_getmessage', $message); + Hook::callAll('email_getmessage_end', $ret);