Con questa tipologia di Logic Hook, possiamo andare ad intervenire sul funzionamento dell’applicativo SuiteCRM andando ad intercettare gli eventi.
Al verificarsi di un determinato evento specifico dell’applicativo, deve essere compiuta una determinata azione.
Come anticipato in un altro articolo di introduzione ai logic hooks dobbiamo dire al sistema, quando intervenire e cosa fare. Per fare questo si utilizza un file di nome logic_hooks.php, dove vengono inserite le informazioni utili al CRM per individuare l’evento.
Di seguito gli eventi sui quali possiamo andare ad intervenire tramite i Logic Hooks relativi all’applicativo:
- after_entry_point, viene eseguito all’inizio di ogni richiesta;
- after_ui_footer, viene eseguito dopo la chiamata del footer;
- after_ui_frame, eseguito dopo la chiamata del frame e prima di quella del footer;
- handle_exception, viene eseguito quando si verifica una eccezione nell’esecuzione del codice;
- server_round_trip, eseguito alla fine di ogni pagine;
Il file logic_hooks.php conterrà, oltre all’indicazione dell’evento, le informazioni sulla azione da compiere al verificarsi dell’evento. Si specifica in questo file la classe ed il metodo da richiamare che rappresentano l’azione che si intromette nel normale funzionamento di SuiteCRM.
Questi Logic Hooks hanno un impatto sul funzionamento globale dell’applicativo ed i file logic_hooks.php che ne definiscono il funzionamento devono risiedere in
./custom/modules/logic_hooks.php
Una particolarità riguarda l’evento after_ui_frame che può essere utilizzato anche specificatamente per un modulo, nel qual caso dovrà risiedere all’interno della cartella del modulo da intercettare:
./custom/modules/<nome del modulo>/logic_hooks.php
Al metodo richiamato vengono passati 2 parametri $event, $arguments:
- $event – stringa – con indicato l’evento corrente
- $arguments – array – informazioni extra relativamente all’evento
./custom/modules/logic_hooks.php’
1 2 3 4 5 6 7 8 9 10 |
$hook_version = 1; $hook_array['after_entry_point'][] = array( 1, 'Hook description', 'custom/modules/customLogicHook.php', 'className', 'methodName' ); |
./custom/modules/customLogicHook.php’
1 2 3 4 5 6 7 8 9 |
class className { function methodName($event, $arguments) { //logica } } |