Gli event handlers di Joomla

I plugin sono estensioni che si basano su un particolare design pattern, chiamato Observer.

In pratica essi restano inattivi fino a che Joomla lancia un particolare evento. Ogni plugin si registra per un determinato evento e quando esso avviene, il plugin viene eseguito.

Vediamo una lista di eventi predefiniti in Joomla

System

Durante l'esecuzione di ogni richiesta, vengono generati

  • onAfterInitialize: chiamato dopo che il framework è stato caricato e l'applicazione è stata inizializzata.
  • onAfterRoute: dopo il caricamento e l'inizializzazione, viene chiamato questo evento quando è stato effettuato il routing, che consiste nel determinare quale componente si occupa di gestire la richiesta.
  • onAfterDispatch: chiamato dopo che il componente determinato con il routing ha preso il controllo.
  • onAfterRender: chiamato quando l'output della pagina è pronto per essere inviato.

XML-RPC

XML-RPC è un protocollo usato per eseguire funzioni su server remoti, e visualizzare il risultato di tale operazione.

  • onGetWebServices: usato da funzioni XML-RPC, usato per determinare le funzioni utilizzabili.

Search

Questi eventi sono usati per estendere le capacità del componente di ricerca di Joomla.

  • onSearch: chiamato quando viene lanciata una ricerca.
  • onSearchAreas: chiamato quando il componente usato per la ricerca richiede la lista delle aree del sito in cui cercare.

Authentication

  • onAuthenticate: chiamato quando un utente esegue il login, usato per implementare metodi di autenticazione esterni.

User

Questi eventi consentono di estendere e personalizzare la gestione degli utenti.

  • onLoginUser: chiamato subito dopo che l'utente ha inserito i dati di login e premuto il pulsante per entrare.
  • onLoginFailure: chiamato quando il login fallisce.
  • onLogoutUser: chiamato quando l'utente preme il pulsante logout.
  • onBeforeStoreUser: chiamato appena prima che un utente è memorizzato nel database, ci permette di modificare i dati dell'utente prima di memorizzarli.
  • onAfterStoreUser: chiamato dopo che un utente è memorizzato nel database.
  • onBeforeDeleteUser: chiamato appena prima che un utente è stato cancellato dal sistema, utile per aggiornare tabelle che usano i dati degli utenti.
  • onAfterDeleteUser: chiamato dopo che un utente è stato cancellato dal sistema.

Editor-xtd

Sotto l'editor di testo di Joomla possiamo notare dei pulsanti "Image", "Pagebreak", "Readmore". Questi aggiungono funzionalità inserendo delle stringhe di testo all'interno della form in cui modifichiamo il contenuto.

  • onCustomEditorButton: usato per aggiungere pulsanti nello spazio sottostante l'editor di testo (insieme ad "Image", "Pagebreak", "Readmore").

Editor

Questi eventi sono generati per l'integrazione di editor esterni, come TinyMCE, JCE ed altri. Non di comune utilità, dunque.

  • onInit: chiamato quando si inizializza l'editor
  • onDisplay: chiamato quando l'editor è pronto per essere visualizzato, setta i parametri della visualizzazione della form di inserimento del testo
  • onGetContent: chiamato quando è richiesto il contenuto del testo scritto nell'editor
  • onSetContent: usato per popolare l'editor con del testo prima di visualizzarlo
  • onSave: chiamato quando si salva il contenuto dell'editor
  • onGetInsertMethod: usato per inserire il testo nella posizione corrente del cursore

Content

Eventi generati per la modifica, la preparazione e la visualizzazione dei contenuti

  • onPrepareContent:usato per modificare il testo del contenuto
  • onAfterDisplayTitle: inserisce elementi subito dopo il titolo del contenuto
  • onBeforeDisplayContent: usato per inserire elementi dopo il titolo, appena prima del contenuto della pagina
  • onAfterDisplayContent: usato per inserire elementi subito dopo il contenuto della pagina
  • onBeforeContentSave: chiamato appena prima che il contenuto sia salvato
  • onAfterContentSave: chiamato appena dopo che il contenuto viene salvato

Aggiungere nuovi eventi

Ovviamente è possibile introdurre nuovi eventi per gestire operazioni personalizzate, creando un componente che ad un certo punto del suo workflow esegue una chiamata a

$mainframe->triggerEvent('onMioEvento', $arguments);

e creando un plugin che abbia la funzione onMioEvento

class plgContentMioPlugin extends JPlugin {
function onMioEvento(&$params) {
//contenuto della funzione
}
}

Tags: , , ,

Lascia un commento

Nome (obbligatorio)

Mail (non sarà pubblicata) (obbligatoria)

Sito web