Skip to main content

Mastering Joomla 1.5 Extension and Framework development – 4

Nel quarto capitolo del libro Mastering Joomla 1.5 Extension and Framework development vediamo come progettare la nostra estensione personalizzata.

Vediamo i punti più interessanti.

Classes e Helpers

E’ prevista la possibilità di creare classi completamente personalizzate, che non estendono le classi di Joomla e nemmeno necessariamente usano lo stesso stile di programmazione. Ad esempio, potremmo voler utilizzare una classe PHP scritta per un altro progetto. In tal caso, è buona abitudine piazzare il file nella cartella classes del nostro componente.

La cartella helpers contiene invece classi di “appoggio” alle nostre classi principali; ad esempio funzioni che abbiamo bisogno di utilizzare in tutto il componente (conversione di dati, gestione dei messaggi di errore, e così via…) o che effettuano elaborazioni trasversali sugli oggetti definiti.

Gestire parametri e richieste

Gli oggetti JRegistry, JUser, JSession, JBrowser ci risultano molto utili per gestire l’interazione con l’utente dell’applicazione. Ci permettono di leggere proprietà o parametri associati all’utente (potendo così estendere le sue caratteristiche) o alla sessione o al browser.

Struttura del componente

Ecco una rapida panoramica della struttura tipica di un componente. Salvo dove diversamente specificato, la struttura tra il backend e il frontend è la stessa:

  • mycomponent.php
  • controller.php
  • models (cartella)
  • views (cartella)
  • tables (cartella, solo nel backend)
  • assets (cartella, solo nel frontend)

Altre cartella che possiamo trovare sono:

  • controllers (nel caso usiamo diversi controller)
  • classes
  • helpers

All’interno della cartella views troviamo una sottocartella per ciascuna vista. Ad esempio potremmo avere una vista di default che si chiama come il componente, un’altra vista per l’oggetto singolo e una per la lista degli oggetti.

Supponendo ad esempio di realizzare un componente per la gestione di libri chiamato com_bookmanager, potremmo avere le viste bookmanager, book e books e quindi le omonime sottocartelle all’interno di views.

Entrando in ciascuna vista, avremo un file principale chiamato view.html.php e una sottocartella chiamata tmpl che contiene i layout.

NOTA: tutte queste sono convenzioni. Potremmo anche ridurre la nostra aderenza agli standard di nomenclatura Joomla; ma ne soffriremmo senz’altro dato che in questo modo una serie di automatismi pescano automaticamente i file necessari senza doverli sempre specificare.

File di installazione

Nella cartella di backend del nostro componente avremo anche i file necessari per preparare il file di installazione:

  • un file XML con tutti i dettagli dell’estensione
  • eventuali file SQL di installazione e disinstallazione
  • eventuali file PHP di installazione e disinstallazione (se vogliamo compiere operazioni aggiuntive durante queste fasi)

Moduli e plugin

La struttura per moduli e plugin è molto più semplice.

Per ciascun modulo esiste una specifica sottocartella dentro modules che contiene:

  • un file principale, con lo stesso nome del modulo
  • un file XML con i dati del modulo
  • un file helper.php, che ospita eventuali elaborazioni più complesse
  • una sottocartella tmpl con il layout

I plugin sono ancora più semplici, non stanno in una sottocartella specifica e sono costituiti solo da un file PHP e un XML.