Hooks

Gli hooks nascono con lo scopo di estendere delle funzionalità del framework, senza impattare in maniera importante nella struttura esistente.

Configurazione

Nel file hooks/hooks.ini devono essere censiti gli hook presenti nell'applicativo, ecco un esempio:

[citywareHook.php]
active=1

In questo caso, l'hook è attivo, ed è richiesta la presenza del file hooks/citywareHook.php

Implementazione classe hook

Il codice si divide in due fasi:

Registrazione delle funzioni, in risposta a particolari eventi

Implementazione delle funzioni di risposta degli eventi

Es. Cityware:

<?php
itaHooks::register('post_login', 'cityware_post_login');
function cityware_post_login($args) {
require_once ITA_BASE_PATH . '/apps/CityBase/cwbParGen.class.php';
require_once ITA_BASE_PATH . '/apps/CityBase/cwbLibDB_BOR.class.php';
$libDB_BOR = new cwbLibDB_BOR();
// Imposta anno contabile
cwbParGen::setAnnoContabile(date("Y"));
// Imposta cliente
$cliente = $libDB_BOR->leggiBorClient()[0];
cwbParGen::setBorClient($cliente);
// Imposta enti per il cliente
$enti = $libDB_BOR->leggiBorEntiClient($cliente['PROGCLIENT']);
cwbParGen::setBorEnti($enti);
}
?>

In questo caso, Cityware imposta in sessione delle variabili, per poi utilizzarle successivamente in tutti i moduli al bisogno.