Ciao dmdigital,
ho eliminato il tuo riferimento alla tua risorsa esterna. Su Joomla.it non amiamo questo genere di manovre. Se vuoi, puoi copiare il contenuto della risorsa esterna nel forum e citare la fonte, oppure utilizzare il wiki per inserire delle nuove risorse o scrivere articoli su Joomla.it ecc...
Sviluppo Estensioni per JoomlaMolti di coloro che lavorano con Joomla si trovano al punto, prima o poi, di volere personalizzare il comportamento di un modulo o di un componente che hanno installato; inevitabilmente, anche per chi ha un'ottima conoscenza di PHP, l'analisi del codice sorgente risulta complicata, resa difficile soprattutto dalla struttura stessa dei file che compongono l'estensione che si vuole modificare. Del resto, è evidente che, per chi utilizza Joomla a livello professionale, il potere mettere le mani su estensioni, moduli e plug-in diventa qualcosa di essenziale per garantire ai clienti un servizio completo (quante volte, infatti, un committente chiede di personalizzare le schermate di un'estensione?).
Il problema fondamentale per chi si accinge ad entrare nel mondo dello sviluppo delle estensioni per Joomla è la mancanza su internet di documentazione libera sufficientemente approfondita. Cercando tutorial o guide ci si scontra con articoli che danno solamente una vaghissima overview dell'argomento, lasciando il campo pieno di domande e dubbi. Purtroppo, anche una ricerca in lingua inglese non dà i risultati sperati.
Anche noi ci siamo trovati di fronte a questa situazione, e qui vi diamo tutti i consigli che abbiamo potuto trarre dalla nostra esperienza.
Passo 0 - Approfondire PHP e MySQL
Come tutti sanno, Joomla è scritto in PHP e si appoggia su DB MySQL. Quindi, ovviamente, se volete entrare nel campo dello sviluppo di estensioni per Joomla, la prima cosa da fare è approfondire la conoscenza delle tecnologie sulle quali si basa. Per chi è a digiuno di queste tecnologie, consiglio vivamente di leggere le guide presenti su html.it (PHP e MySQL). Per tutti gli altri, che hanno già utilizzato PHP e MySQL per programmare, consiglio di ripassare i concetti base della programmazione ad oggetti e le loro implicazioni in PHP.
Passo 1 - Il metodo di programmazione Model-View-Controller
Il framework sul quale Joomla si basa è implementa il modello architetturale chiamato Model-View-Controller. Questo consente di fatto il perfetto isolamento tra quella che è la business logic e il livello di presentazione. In breve, il livello Controller raccoglie gli input dall'utente, il Model li elabora e la View presenta i risultati di nuovo all'utente. L'enorme vantaggio di una soluzione di questo tipo è che consente la modifica di una parte dell'applicazione senza dover modificare l'altra: in pratica, in un progetto MVC, se modifichiamo un algoritmo di business logic che elabora i dati immessi dall'utente, modifichiamo solo il Model, senza toccare View e Controller.
Model
Generalmente rappresenta lo strato che si occupa dell'accesso ai dati (DB); qui troviamo le classi che, ad esempio, mappano gli oggetti sul DB, coadiuvate da metodi che permettono l'elaborazione dei dati stessi. Questo strato è molto importante perchè permette, per esempio, di rendere molto specifiche le modifiche necessarie nel cambio di metodo di memorizzazione dei dati, oppure nel caso di variazioni negli algoritmi che li elaborano.
View
La view viene utilizzata per renderizzare nel livello di presentazione i dati presenti nel Model; per esempio, se abbiamo una classe nel Model che rappresenta una recensione, la View in questione si occupa di visualizzare i dati di una singola recensione a video; un'altra View potrebbe invece presentare una tabella con la lista delle recensioni presenti sul DB. Nel caso di Joomla, e delle web application in generale, si tratta quindi di uno strato che si occupa di generare le pagine HTML, prendendo i dati dal Model e inserendoli in un template; è molto importante che la vista non modifichi i dati in alcun modo, poichè ciò rappresenterebbe una violazione del metodo Model-View-Controller.
Controller
Il Controller è il componente che si occupa di ricevere gli input dell'utente e di decidere le risposte corrispondenti; per esempio, un controller potrebbe ricevere la richiesta di visualizzare tutte le recensioni di una determinata categoria: in questo caso, si occuperebbe di recuperare i dati necessari dal Model e di passarli all'apposita View.
Passo 2 - L'implementazione MVC in Joomla
In Joomla MVC è implementato tramite 3 classi:
JModel,
JView,
JController.
Per una overview di come funziona l'implementazione vi consiglio di leggere il tutorial
Developing a Model-Controller-View ComponentTratto da
dmdigital.it