265
edits
Gschratzer (talk | contribs) (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 |
Gschratzer (talk | contribs) 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(); | ||
edits