Secondo capitolo della mia tesi di laurea, dedicata allo sviluppo di un CMS per gestire un'Azienda di Promozione Turistica, utilizzando Joomla. Per maggiori informazioni, si veda la pagina della tesi.
Perchè serve un CMS e perchè proprio Joomla
Ogni sito web ai suoi albori presenta poco contenuto. Con lo scorrere del tempo, l’organizzazione responsabile del sito sente il bisogno di pubblicare nuove informazioni sul web, ed il sito deve essere aggiornato. Probabilmente il sito è content-driven, fortemente basato sul contenuto, magari sul portale vengono pubblicati articoli e news con una frequenza molto alta, per cui occorre prestare molta attenzione a come possa essere aggiornato e modificato il sito.
L'obiettivo del progetto è la progettazione di un sistema di comunicazione via web, in grado di potere essere facilmente modificato da persone non esperte di programmazione o web development, con cui sia possibile gestire efficacemente una gran mole di informazioni di diverse tipologie.
Per far fronte a queste esigenze è inevitabile appoggiare la nostra base di informazioni su un Content Management System (CMS), una piattaforma per la pubblicazione delle informazioni e la gestione dei contenuti di un portale.
Grazie al CMS la fase di realizzazione dell'architettura del sito e della information architecture è distinta dalla fase di inserimento dei dati veri e propri. Mentre la prima fase necessita il lavoro di un esperto informatico, in quest'ultima fase i contenuti effettivi del portale possonoessere gestiti da personale interno all'organizzazione, precedentemente istruito per l'operazione, attraverso pochi semplici passi.
2.1 Scenario Tipico
Quella che segue è la descrizione di uno scenario molto comune tra le piccole aziende: viene commissionato il sito ad una Web Agency o ad un professionista del settore, il sito viene realizzato in HTML e CSS, e l’azienda è molto contenta del risultato.
Dopo alcuni mesi la ditta sente la necessità di dover aggiornare delle informazioni, ma nessuno all’interno della ditta conosce HTML. Il contenuto del sito deve essere modificato da una persona esterna, che funge da responsabile del sito. Ora tutto il contenuto che deve essere pubblicato sul sito passa per le sue mani. Potrebbe accadere che questa persona si renda irreperibile per qualsiasi motivo ed ogni aggiornamento sarebbe impossibilitato.
Oppure viene affidata la gestione del sito ad un dipendente interno all’azienda, con poche conoscenze informatiche, dopo un breve corso di HTML. Questa persona si occupa dell’inserimento dei dati, ed il procedimento funziona, ma dopo qualche tempo ci si accorge che il sito ha bisogno di un serio restyling, dato che le informazioni venivano aggiunte ogni volta in modo approssimativo, senza un vero metodo, una organizzazione dei dati.
In ambedue la casi in presenza di frequenti aggiunte di contenuto al sito potrebbe accadere che la persona incaricata di aggiornare il sito diventi un “bottleneck”, un collo di bottiglia per il flusso delle informazioni dall’azienda al suo pubblico.
2.2 Estendere la Gestione del Contenuto
Il tempo in cui una azienda creava un sito Web solo per avere una “presenza” su Internet è finito, oggigiorno un sito Internet serve ad informare i clienti, risolvere i loro problemi e cercare di attirare nuove opportunità.
La gestione del contenuto del sito deve essere resa disponibile anche a delle persone che non hanno un background tecnico, non sanno come è composta una pagina HTML nè come è strutturato un sito Internet. E non vogliono saperlo. Vogliono solo aggiungere contenuto al sito Web.
Bisogna ricorrere ad un software che possa creare un framework intorno al sito, in modo che, definita una struttura portante ed un design attraente, le informazioni inserite nel sito vengano strutturate in modo automatico in modo coerente ed intuitivo, senza che la crescita della mole di informazione porti il sito fuori controllo. Questo software si chiama Content Management System.
2.3 Cos’è un CMS
Il Content Management è un concetto che riguarda la pubblicazione di contenuto attraverso strumenti digitali.
Un Content Mangement System è uno strumento che permette di ottenere il controllo sulla creazione e sulla distribuzione di informazione, un sistema di gestione dei contenuti che consenti di creare, modificare e gestire le informazioni offerte attraverso un interfaccia semplice ed intuitiva, facilitando così il compito di gestione del portale informativo.

Ecco le caratteristiche comuni di ogni CMS:
- Permette di aggiornare il sito senza essere degli esperti di HTML
- Permette di realizzare in modo facilitato l’architettura dei dati progettata, attraverso la definizione di diverse sezioni e categorie in cui classificare gli articoli
- Permette di separare nettamente i dati dalla loro presentazione
- Permette di gestire in modo semplice la pubblicazione delle informazioni e decidere quando esse devono essere tolte dal sito.
- Integrazione con contenuti provenienti da diverse fonti come database o RSS •Gestione degli utenti, con mailing list e messaggistica
- Funzionalità di ricerca dei contenuti che vanno oltre la disposizione in categorie
Un CMS è uno strumento indispensabile per gestire siti e portali informativi di ogni dimensioni.
2.4 Perchè è stato scelto Joomla
Appurata la necessità di utilizzare un Content Management System, la scelta di quale utilizzare può essere un operazione lunga e difficoltosa, dato il gran numero di CMS in circolazione. Innanzi tutto, come per qualsiasi software, occorre distinguere tra CMS Open Source e CMS Closed Source.
![]()
La differenza non risiede soltanto nel prezzo - generalmente vale l'equazione “open source = gratis” - ma anche nel livello di supporto che potrà essere necessario in fasi più avanzate del deployment dell'applicazione.
Mentre per quanto riguarda un CMS Closed Source, proprietario, il supporto viene tipicamente fornito e garantito dall'azienda produttrice, optando per una soluzione Open Source esistono due alternative: appoggiarsi alla comunità online, e quindi ai forum dedicati, oppure cercare una ditta che fornisca supporto a pagamento per il CMS scelto.
Ovvimente sia l'efficacia del supporto delle community sia il numero di aziende che forniscono servizi di supporto tecnico per un particolare prodotto sono direttamente proporzionali alla diffusione dello stesso: più un prodotto è diffuso, più è possibile trovare persone in grado di aiutarci in caso di necessità.
In quest'ottica sarà necessario utilizzare un CMS molto diffuso ed usato in applicazioni real world, che funzioni in modo efficiente sotto carichi di lavoro impegnativi e sia un sistema affidabile.
Un altra enorme differenza tra le due diverse licenze di software risiede nella disponibilità del codice sorgente. L'opportunità di poter modificare radicalmente un software per correggere problemi o aggiungere features è uno dei “cavalli di battaglia” delle licenze Open Source come la GPL General Public License.
La strada seguita per il progetto “APT Lecco” prevede l'uso di un CMS Open Source, per avere la possibilità di analizzare il codice sorgente, per godere dei vantaggi di una licenza Open Source, usufruire della community e - perchè no - risparmiare qualcosa in termini di acquisto di pacchetti software. Inoltre sin dalle prime fasi di analisi delle funzionalità della web application è risultata evidente la necessità di creare moduli software aggiuntivi per poter fornire una esperienza navigazionale più ricca all’utente, utilizzando i tags (di cui parleremo in seguito), per cui la disponibilità del codice sorgente non potrà altro che esserci d’aiuto nel progettare ed implementare questo tipo di funzioni.
La successiva scelta riguarda il linguaggio di programmazione utilizzato dai creatori del CMS, strettamente legata all'uso di un CMS Open Source e quindi alla disponibilità del codice sorgente. Tra i Content Management Systems più diffusi e usati in sistemi che richiedono un carico computazionale di un certo livello possiamo distinguere due categorie preponderanti: sistemi che sono creati in PHP e sistemi che utilizzano Java.
Al momento sul mercato i più diffusi sistemi che utilizzano PHP (Joomla, Mambo, Drupal) sono più maturi, più seguiti e supportati di quelli che utilizzano Java (OpenCMS, JBoss, Nukes), come illustra un articolo di TheServerSide.com, “Do any Java CMS/Portals match the PHP ones?” [2].
Il 2006 ha visto la prima edizione dei Packt Open Source CMS Award, un premio indetto dalla Packt Publishing, una nota casa editrice che ha recentemente pubblicato svariati libri inerenti il web, specificatamente dedicati agli sviluppatori, come ad esempio “Building Web-sites With Joomla”, “Smarty PHP Template Programming and Applications” o ancora ”AJAX and PHP: Building Responsive Web Applications ”. Il loro sito è un punto di riferimento, riporta articoli, esempi di codice e innumerevoli altre risorse utili, ed è molto frequentato dagli sviluppatori web. Proprio da questo sito è nato il sondaggio, una sorta di referendum per decidere quale tra i CMS Open Source fosse il “migliore”. Dopo le votazioni di 16,000 utenti, i cinque prodotti finalisti sono stati Drupal (http://drupal.org), E107 (http://e107.org), Joomla! (http://www.joomla.org), Plone (http://www.plone.org), XOOPS (http://www.xoops.org). Tutti questi prodotti sono scritti in PHP ad esclusione di Plone, che utilizza Python.
Il migliore tra i cinque CMS è risultato Joomla.
2.5 Introduzione a Joomla
Joomla è un CMS Open Source, nato nell’agosto del 2005 da una scissione degli sviluppatori del CMS Mambo, in rivolta contro il gestore del marchio di Mambo.
![]()
Joomla si presenta come una serie di parti ben integrate tra di loro, strutturate in modo tale che sia semplice aggiungere o togliere delle funzionalità al sistema. L’installazione del Joomla è decisamente facile e veloce, ed in pochi minuti si seguono alcuni passi che portano ad avere pronto un Content Management System potente e stabile.
Analizziamo la stuttura dei files nella cartella di Joomla: la figura a fianco ci permette di dare un primo colpo d’occhio al contenuto della cartella joomla/. Ecco una breve spiegazione del contenuto di queste cartelle:

- administrator contiene i files che compongono il backend del sistema, i componenti che sono utilizzati per amministrare il CMS.
- cache viene utilizzata per memorizzare la cache delle pagine e dei feed rss.
- components contiene i componenti che estendono le funzionalità di Joomla.
- editor contiene il codice che gestisce gli editor utilizzati da Joomla per inserire e modificare i contenuti.
- help contiene i files di aiuto utilizzati nel backend.
- images questa cartella contiene tutte le immagini che saranno parte del sito web, ad eccezione di quelle proprie del template grafico utilizzato.
- includes raggruppa diversi files di libreria che vengono utilizzati dal CMS, come le funzioni per collegarsi al database.
- language contiene i files che gestiscono le lingue supportate dall’applicazione.
- mambots raggruppa i mambots, che sono utility come gli editors o il motore di ricerca interno del CMS.
- modules archivia i moduli che aggiungono funzionalità a Joomla
- templates contiene i templates grafici creati dai web designer che permettono di gestire l’interfaccia grafica in modo indipendente dall’architettura dei dati.
Moduli, componenti e mambots sono tre tipi di componenti che permettono di estendere le funzionalità di Joomla. I moduli si creano per visualizzare informazioni nel frontend, i mambots si occupano di funzioni “in background”, come il motore di ricerca interno, ed i componenti permettono l’integrazione tra visualizzazione ed il backend amministrativo. Parleremo di componenti, moduli e mambots più avanti.
2.6 Le caratteristiche di Joomla
Il 10 Aprile 2007 è stata pubblicata sulla home page del sito joomla.org una notizia in cui è riportato il raggiungimento di 100.000 utenti iscritti al forum ufficiale del sito. Ogni giorno su questo forum si iscrivono mediamente 172 nuovi utenti, e vengono postati più di 1200 messaggi. Una user community enorme. Il sito ufficiale di joomla presenta una sezione dedicata alle estensioni, dove è possibile ricercare dei moduli aggiuntivi - sia gratis sia a pagamento - per arricchire le funzionalità del CMS.
Ad aprile 2007 queste estensioni erano più di 1500, quindi si può ragionevolmente pensare di poter avere, qualora se ne senta la necessità, la soluzione alle esigenze che potrebbero sorgere.
Estendere Joomla: i moduli
I moduli sono una estensione di Joomla che permette di visualizzare informazioni sullo schermo, in una posizione che viene definita all’interno dei templates grafici. Esistono due tipi di moduli: moduli che gestiscono il frontend (Site Modules) e moduli che sono utilizzati nel backend (Administrator Modules). Esempi di moduli sono la form di login, i sondaggi, i feed RSS. I moduli si trovano nella cartella joomla/modules.
Estendere Joomla: i mambot
I mambot sono elementi che funzionano in background, portando funzionalità aggiuntive al frontend del CMS, come la gestione delle immagini, delle pagine multiple, i tabs o gli editor WYSIWYG (What You See Is What You Get). I mambots si trovano nella cartella joomla/mambots.
Estendere Joomla: i componenti
I componenti sono la parte principale di Joomla. Basti pensare che la gestione del contenuto è gestito da un componente com_content, e la stessa cosa accade per la pagina iniziale, attraverso com_frontpage. I componenti possono generare output per il frontend direttamente oppure interfacciarsi con dei moduli.
I componenti si trovano nella cartella joomla/components. Essi dispongono generalmente di una interfaccia di backend in cui è possibile configurarli a seconda delle esigenze.
Articoli correlati:

March 27th, 2008 at 10:23 am
[...] ilaria: Secondo capitolo della mia tesi di laurea, dedicata allo sviluppo di un CMS per gestire un’Azienda di Promozione Turistica, utilizzando Joomla. Per maggiori informazioni, si veda la pagina della tesi. … [...]