System von Hooks: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Created page with " <source lang=php> $parameters=array(); $reshook=$hookmanager->executeHooks('hookname',$parameters,$object,$action); // See description below // Note that $action and $object...")
Tag: 2017 source edit
 
No edit summary
Tag: 2017 source edit
Line 1: Line 1:
=Einführung=
Hooks sind eine Funktion für Entwickler, die es ihnen ermöglicht, benutzerdefinierten Code zu Standard-Dolibarr-Seiten hinzuzufügen, ohne Dolibarr-Kerndateien ändern zu müssen. Im Gegensatz zum System of Triggers (eine andere Möglichkeit, mit Dolibarr-Code zu interagieren), die mit Dolibarr-Ereignissen verknüpft sind, können Hooks überall und jederzeit ausgeführt werden, solange sie im Dolibarr-Kern geplant wurden. Dies sind Einfügepunkte im Programm.
Hooks sind abhängig von einem Kontext aktiv oder nicht (häufig ein Kontext pro Modul: zum Beispiel „productcard“ für Produkte, „invoicecard“ für Rechnungen...). Um vorhandene Hooks zu finden,
suchen Sie nach '''" initHooks( "'''
Hooks sind Funktionen, die Standardcode einfügen oder ersetzen. Um Code zu finden, der überschrieben werden kann,
suchen Sie nach '''" executeHooks( "'''.
Fügen Sie einen Haken hinzu, um das Einfügen von Code zu ermöglichen


Um einen Hook in Ihr eigenes Modul zu implementieren (damit Ihr Modul von anderen "gehakt" werden kann) müssen Sie 2 Schritte ausführen.
Diese Schritte müssen für jedes PHP-Skript in Ihrem Modul wiederholt werden, in dem Sie Hooks implementieren möchten.
1- Initialisieren Sie das HookManager-Objekt (platzieren Sie dieses Codestück am Anfang Ihres PHP-Skripts, direkt nach oder vor den Includes):
<source lang=php>
// Technisches Objekt initialisieren, um Hooks von Drittanbietern zu verwalten. Beachten Sie, dass '''conf->hooks_modules''' das Array array
include_once ( DOL_DOCUMENT_ROOT . '/core/class/hookmanager.class.php' );
$hookmanager = neuer  HookManager ( $db );
$hookmanager -> initHooks ( array ( 'context' ));
</source>
$hookmanager->initHooks() akzeptiert 1 Parameter (ein Array von Kontexten) und aktiviert die Hook-Unterstützung für dieses Skript:
- '''' context'''' ist die Zeichenfolge, die den Ausführungskontext enthält. Dies ist ein einfaches Flag, das von Hook-Funktionen verwendet werden kann, um zu erkennen, wann sie aufgerufen werden (mehrere Seiten/Module können denselben Hook an verschiedenen Stellen aufrufen, und eine Hook-Funktion möchte möglicherweise nur für einen bestimmten Kontext ausgeführt werden und nicht für die anderen). .
Hinweis: Sie können mehrere Kontexte gleichzeitig festlegen (z. B. wenn Sie einen gemeinsamen Kontext für mehrere Seiten benötigen, aber auch einen spezifischen Kontext für eine bestimmte Seite wünschen).
2- Platzieren Sie dann den Aufruf der Hooks dort, wo Code hinzugefügt werden soll:
<source lang=php>
<source lang=php>
$parameters=array();
$parameters=array();
265

edits

Navigation menu