mirror of
https://git.sekbaer.de/Friendica/friendica.git
synced 2025-06-07 15:54:26 +02:00
Remove App dependency from Hook::callSingle
- This was causing a circular dependency with the logger_instance hook
This commit is contained in:
parent
79d1506694
commit
e73adde5fb
8 changed files with 37 additions and 67 deletions
|
@ -60,25 +60,14 @@ This *should* be 'addon/*addon_name*/*addon_name*.php' in most cases and can be
|
|||
`$function` is a string and is the name of the function which will be executed when the hook is called.
|
||||
|
||||
### Arguments
|
||||
Your hook callback functions will be called with at least one and possibly two arguments
|
||||
Your hook callback functions will be called with at most one argument
|
||||
|
||||
function <addon>_<hookname>(App $a, &$b) {
|
||||
function <addon>_<hookname>(&$b) {
|
||||
|
||||
}
|
||||
|
||||
If you wish to make changes to the calling data, you must declare them as reference variables (with `&`) during function declaration.
|
||||
|
||||
#### $a
|
||||
$a is the Friendica `App` class.
|
||||
It contains a wealth of information about the current state of Friendica:
|
||||
|
||||
* which module has been called,
|
||||
* configuration information,
|
||||
* the page contents at the point the hook was invoked,
|
||||
* profile and user information, etc.
|
||||
|
||||
It is recommeded you call this `$a` to match its usage elsewhere.
|
||||
|
||||
#### $b
|
||||
$b can be called anything you like.
|
||||
This is information specific to the hook currently being processed, and generally contains information that is being immediately processed or acted on that you can use, display, or alter.
|
||||
|
@ -88,7 +77,7 @@ Remember to declare it with `&` if you wish to alter it.
|
|||
|
||||
Your addon can provide user-specific settings via the `addon_settings` PHP hook, but it can also provide node-wide settings in the administration page of your addon.
|
||||
|
||||
Simply declare a `<addon>_addon_admin(App $a)` function to display the form and a `<addon>_addon_admin_post(App $a)` function to process the data from the form.
|
||||
Simply declare a `<addon>_addon_admin()` function to display the form and a `<addon>_addon_admin_post()` function to process the data from the form.0
|
||||
|
||||
## Global stylesheets
|
||||
|
||||
|
@ -102,7 +91,7 @@ function <addon>_install()
|
|||
}
|
||||
|
||||
|
||||
function <addon>_head(App $a)
|
||||
function <addon>_head()
|
||||
{
|
||||
\Friendica\DI::page()->registerStylesheet(__DIR__ . '/relative/path/to/addon/stylesheet.css');
|
||||
}
|
||||
|
@ -124,7 +113,7 @@ function <addon>_install()
|
|||
...
|
||||
}
|
||||
|
||||
function <addon>_footer(App $a)
|
||||
function <addon>_footer()
|
||||
{
|
||||
\Friendica\DI::page()->registerFooterScript(__DIR__ . '/relative/path/to/addon/script.js');
|
||||
}
|
||||
|
@ -167,9 +156,9 @@ DI::args()->get(1); // = 'arg1'
|
|||
DI::args()->get(2); // = 'arg2'
|
||||
```
|
||||
|
||||
To display a module page, you need to declare the function `<addon>_content(App $a)`, which defines and returns the page body content.
|
||||
They may also contain `<addon>_post(App $a)` which is called before the `<addon>_content` function and typically handles the results of POST forms.
|
||||
You may also have `<addon>_init(App $a)` which is called before `<addon>_content` and should include common logic to your module.
|
||||
To display a module page, you need to declare the function `<addon>_content()`, which defines and returns the page body content.
|
||||
They may also contain `<addon>_post()` which is called before the `<addon>_content` function and typically handles the results of POST forms.
|
||||
You may also have `<addon>_init()` which is called before `<addon>_content` and should include common logic to your module.
|
||||
|
||||
## Templates
|
||||
|
||||
|
@ -209,7 +198,7 @@ Called when a user attempts to login.
|
|||
|
||||
### logged_in
|
||||
Called after a user has successfully logged in.
|
||||
`$b` contains the `$a->user` array.
|
||||
`$b` contains the `App->user` array.
|
||||
|
||||
### display_item
|
||||
Called when formatting a post for display.
|
||||
|
@ -360,7 +349,7 @@ Called prior to output of profile edit page.
|
|||
### profile_advanced
|
||||
Called when the HTML is generated for the Advanced profile, corresponding to the Profile tab within a person's profile page.
|
||||
`$b` is the HTML string representation of the generated profile.
|
||||
The profile array details are in `$a->profile`.
|
||||
The profile array details are in `App->profile`.
|
||||
|
||||
### directory_item
|
||||
Called from the Directory page when formatting an item for display.
|
||||
|
|
|
@ -38,17 +38,14 @@ $function ist ein String und der Name der Funktion, die ausgeführt wird, wenn d
|
|||
Argumente
|
||||
---
|
||||
|
||||
Deine Hook-Callback-Funktion wird mit mindestens einem und bis zu zwei Argumenten aufgerufen
|
||||
Deine Hook-Callback-Funktion wird mit höchstens einem Argumenten aufgerufen
|
||||
|
||||
function myhook_function(App $a, &$b) {
|
||||
function myhook_function(&$b) {
|
||||
|
||||
}
|
||||
|
||||
Wenn du Änderungen an den aufgerufenen Daten vornehmen willst, musst du diese als Referenzvariable (mit "&") während der Funktionsdeklaration deklarieren.
|
||||
|
||||
$a ist die Friendica "App"-Klasse, die eine Menge an Informationen über den aktuellen Friendica-Status beinhaltet, u.a. welche Module genutzt werden, Konfigurationsinformationen, Inhalte der Seite zum Zeitpunkt des Hook-Aufrufs.
|
||||
Es ist empfohlen, diese Funktion "$a" zu nennen, um seine Nutzung an den Gebrauch an anderer Stelle anzugleichen.
|
||||
|
||||
$b kann frei benannt werden.
|
||||
Diese Information ist speziell auf den Hook bezogen, der aktuell bearbeitet wird, und beinhaltet normalerweise Daten, die du sofort nutzen, anzeigen oder bearbeiten kannst.
|
||||
Achte darauf, diese mit "&" zu deklarieren, wenn du sie bearbeiten willst.
|
||||
|
@ -70,9 +67,9 @@ 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.
|
||||
Du kannst ebenso addon_name_init(App $a) nutzen, was oft frühzeitig aufgerufen wird und das Modul initialisert.
|
||||
Deine Modulfunktionen umfassen oft die Funktion `addon_name_content()`, welche den Seiteninhalt definiert und zurückgibt.
|
||||
Sie können auch `addon_name_post()` umfassen, welches vor der content-Funktion aufgerufen wird und normalerweise die Resultate der POST-Formulare handhabt.
|
||||
Du kannst ebenso `addon_name_init()` nutzen, was oft frühzeitig aufgerufen wird und das Modul initialisert.
|
||||
|
||||
|
||||
Derzeitige Hooks
|
||||
|
@ -86,7 +83,7 @@ Derzeitige Hooks
|
|||
'user_record' => die erfolgreiche Authentifizierung muss auch einen gültigen Nutzereintrag aus der Datenbank zurückgeben
|
||||
|
||||
**'logged_in'** - wird aufgerufen, sobald ein Nutzer sich erfolgreich angemeldet hat.
|
||||
$b beinhaltet den $a->Nutzer-Array
|
||||
$b beinhaltet den `App->user`
|
||||
|
||||
|
||||
**'display_item'** - wird aufgerufen, wenn ein Beitrag für die Anzeige formatiert wird.
|
||||
|
@ -122,7 +119,7 @@ Derzeitige Hooks
|
|||
|
||||
**'profile_advanced'** - wird aufgerufen, wenn die HTML-Ausgabe für das "Advanced profile" generiert wird; stimmt mit dem "Profil"-Tab auf der Profilseite der Nutzer überein.
|
||||
$b ist die HTML-Ausgabe (String) des erstellten Profils
|
||||
(Die Details des Profil-Arrays sind in $a->profile)
|
||||
(Die Details des Profil-Arrays sind in `App->profile`)
|
||||
|
||||
**'directory_item'** - wird von der Verzeichnisseite aufgerufen, wenn ein Item für die Anzeige formatiert wird.
|
||||
$b ist ein Array
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue