Content plugin in Joomla 1.5
Diamo uno sguardo al mondo dei plugin per Joomla, dei piccoli “agenti” che entrano in gioco prima che la pagina venga inviata al browser e possono aiutarci a rifinire meglio il nostro lavoro.
Introduzione ai plugin
Realizzare un modulo per Joomla è molto semplice per un programmatore: visto che l’output del modulo viene preso dal motore e visualizzato sulla pagina, l’interazione con gli altri elementi è quasi nulla e possiamo fargli fare quello che ci pare. Per utilizzare i plugin, invece, è necessario conoscere meglio la struttura di Joomla e soprattutto il modo in cui la pagina viene generata.
Nella sua forma più semplice, un plugin è un pezzetto di codice che va a sostituire determinate ricorrenze di testo nella nostra pagina. Ad esempio, un plugin incluso in Joomla è quello che offusca gli indirizzi e-mail presenti nella pagina. Altri plugin vanno a riconoscere sintassi particolari (ad esempio “{morfeo 1}”) sostituendole con i dati provenienti da un determinato componente.
Diversi plugin si applicano in diversi momenti della costruzione della pagina: alcuni si riferiscono agli articoli e si applicano quindi subito dopo il rendering dell’articolo (content plugin), altri invece si applicano subito prima che la pagina completa venga inviata al browser (system plugin).
Una applicazione che abbiamo sviluppato in questo periodo (Precart, il nostro preventivatore per VirtueMart) usa un plugin per modificare l’aspetto e l’ordine degli attributi del prodotto. In questo modo, la gestione degli attributi stessa rimane invariata in VirtueMart, e non siamo costretti a modificare i file originali del componente.
Articolo sui plugin
Un articolo interessante (in inglese) di Joseph Le Blanc, pur focalizzandosi sulla differenza di comportamento dei content plugin tra Joomla 1.0 e 1.5, è molto utile per capire la differenza tra content plugin e system plugin, e ci fornisce alcuni interessanti esempi di codice.
L’autore è un esperto programmatore di Joomla e ha scritto un interessante libro che approfondisce la realizzazione di estensioni nella maniera corretta.