Gib dem Framework Zucker
Kommentare

Erweitertes Customizing über LogicHooks
Die LogicHooks sind von Beginn an in SugarCRM enthalten und stellen auch keine neuartige Technologie dar. Ein LogicHook ist nichts anderes als ein Einstiegspunkt

Erweitertes Customizing über LogicHooks

Die LogicHooks sind von Beginn an in SugarCRM enthalten und stellen auch keine neuartige Technologie dar. Ein LogicHook ist nichts anderes als ein Einstiegspunkt zu einem bestimmten Event. In Sugar kann das z. B. das Speichern oder Lesen eines Datensatzes, der Login am System, das Löschen eines Datensatzes oder auch die Darstellung im Frontend sein. Beispiele für solche LogicHooks finden Sie direkt nach der Installation des Systems, denn SugarCRM bringt bereits Funktionalitäten mit, die über LogicHooks funktionieren.

Als Beispiel möchte ich die Integration von InsideView nennen. Wenn Sie einen Account öffnen, sehen Sie die Integration von InsideView direkt unter den Stammdaten (Abb. 6). Wenn Sie möchten, dass dies nicht mehr angezeigt wird, können Sie einfach den LogicHook deaktivieren. Sie finden ihn im Custom-Bereich von SugarCRM unter /custom/modules/Accounts/ logic_hooks.php. Er reagiert auf das Event after_ui_frame, das ausgelöst wird, wenn die Oberfläche des entsprechenden Moduls geladen wird. Das Array in der LogicHooks-Datei legt alle LogicHooks fest, die ausgeführt werden sollen.

//$hook_array['after_ui_frame'][] = Array(1, 'Accounts InsideView frame', 'modules/Connectors/connectors/sources/ext/rest/insideview/InsideViewLogicHook.php','InsideViewLogicHook', 'showFrame');

Wenn man den LogicHook auskommentiert, wird InsideView in der Oberfläche nicht mehr angezeigt.

Abb. 6: Integration von InsideView per LogicHook

Um ein anderes Beispiel zu zeigen, nehme ich den Code aus Listing 1 in die LogicHook-Datei auf.

$hook_array['before_save'] = Array(); 
$hook_array['before_save'][] = Array(1, 'Artikelbeispiel', 'custom/modules/Accounts/logic_hooks.php','Artikelbeispiel', 'set_industry'); 

class Artikelbeispiel
{
  function set_industry($bean)
  {
    $bean->industry = 'Education';
  }
}

Durch diese Erweiterung wird beim Speichern eines Accounts immer die Branche/Industry auf Education gesetzt, egal, was der Benutzer ausgewählt hat. Auslöser ist das Event before_save. In diesem Beispiel wurde die Klasse für die eigentliche Funktionalität (Artikelbeispiel) direkt in die Datei logic_hooks.php aufgenommen, deshalb referenziert auch der Pfad custom/modules/Accounts/logic_hooks.php auf sich selbst. In Produktivumgebungen würde man die Funktionalität in eine separate PHP-Datei aufnehmen und nicht in die LogicHook-Datei selbst.

Über die LogicHooks können Sie sehr viel Funktionalität in Sugar aufnehmen, die vom Standardsystem nicht vorgesehen ist. Man kann automatisch verbundene Datensätze anlegen (z. B. Prüfaufgaben), Daten verändern, in Kombination mit JavaScript kann die Oberfläche angepasst werden und vieles mehr. In Bezug auf die Oberfläche sollte man allerdings etwas vorsichtig sein, der JavaScript-Aufbau wird stetig weiterentwickelt und verändert sich daher oft.

Weitere Themen der folgenden Seiten:


  • Erweitertes Customizing von eigenen Modulen
  • Erweitertes Customizing von bestehenden Modulen
  • Customizing der Professional-Editionen
  • Fazit
  • Infos zum Autor
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -