Cos'è Joomla?
Joomla! è un software di content management per siti Web, realizzato completamente nel linguaggio PHP. È pubblicato con licenza open source GNU GPL v.2. È nato nel settembre 2005 da una scissione (fork) dal codice del CMS Mambo; attualmente è in rapido sviluppo, sotto la guida di un gruppo di sviluppatori (per buona parte ex-sviluppatori di Mambo) riuniti nell'associazione no-profit Open Source Matters.
Il CMS è distribuito sotto forma di pacchetto compresso. È sufficiente scompattare l'archivio in una cartella pubblica di un server Web dotato di supporto a PHP ed avere a disposizione un database MySQL per i dati del programma. Dopo un processo di installazione (più propriamente, di prima configurazione) di pochi minuti, il sito è operativo.
Tra le caratteristiche principali proposte ci sono:
- Alto grado di personalizzazione grazie ai numerosi moduli, componenti e mambot/plugin (vedi più sotto) disponibili sia come Software libero che con altre licenze;
- Caching delle pagine per incrementare le prestazioni;
- Funzioni di Search Engine Optimization, per facilitare l'indicizzazione dei contenuti da parte dei motori di ricerca;
- Feeding RSS, che permette ai visitatori di essere avvisati degli aggiornamenti dei contenuti mediante l'utilizzo di un feed reader;
- Versione stampabile delle pagine;
- Esportazione delle pagine in formato PDF;
- Pubblicazione tipo Blog;
- Sondaggi;
- Ricerca testuale su tutti i contenuti inseriti;
- Localizzazione internazionale, che permette la traduzione di ogni funzionalità del software nella propria lingua;
Altri componenti open source disponibili separatamente, sponsorizzati dal team di sviluppo di Joomla! ma non sviluppati dallo stesso team consentono, fra le altre cose, di:
- Creare e gestire forum di discussione (Joomlaboard / Fireboard)
- Tradurre l'intero contenuto del sito per renderlo fruibile in più lingue (Joom!Fish)
- Migliorare la gestione degli utenti registrati e potenziare loro interazioni, creando un effetto community (Community Builder)
Estensioni
Uno dei punti di forza di Joomla! è la vivacità della comunità che lo supporta, sia in termini di discussione e capacità di aiuto (il forum ufficiale supera i 100000 post mensili) che di ampia disponibilità di componenti aggiuntivi per personalizzare la funzionalità del motore.
Tutte le estensioni vengono distribuite sotto forma di pacchetti compressi, la cui installazione è gestita in maniera completamente automatica da uno script apposito, disponibile nella sezione di amministrazione del proprio sito Joomla!, che permette anche di disinstallare estensioni già installate.
Ne esistono di tre tipi: componenti, moduli e plugin
Componenti
I componenti sono elementi aggiuntivi attraverso i quali si possono aggiungere a Joomla! ulteriori funzionalità per rispondere a specifiche esigenze (ad esempio una Photo gallery, un guestbook, funzioni di wiki, newsletter...).
Sono responsabili del contenuto principale di ogni pagina generata da Joomla!, per cui in genere l'aggiunta di un componente corrisponde all'aggiunta di un'intera sezione al sito dove viene installato.
Moduli
I moduli sono usati per mostrare elementi di informazione o funzionalità interattive all'interno di un sito Joomla!, in maniera collaterale al contenuto principale. Si possono considerare come finestre aggiuntive attraverso le quali dare informazioni non necessariamente correlate alla pagina visualizzata, magari per mostrare le altre funzionalità del sito.
I moduli recuperano le informazioni, o parti di informazioni definite attraverso parametri, e le visualizzano nella zona di loro competenza; ad esempio il modulo "ultime notizie" recupera di default i soli titoli degli articoli per visualizzarli nel sito come lista, dando la possibilità di anticipare al visitatore ciò che si trova all'interno del sito stesso e quali sono le notizie più recenti. All'utente viene data la possibilità di scegliere quali moduli visualizzare e dove collocarli all'interno del layout della pagina, in accordo con un template (vedi sotto). Moduli sono anche i menu di navigazione all'interno di un sito Joomla!.
Agendo direttamente nella sezione Gestione Moduli (Module Manager) dell'amministrazione, possono essere creati semplici moduli in HTML. Nel caso di script più complessi, essi sono in genere preparati per essere installati con le apposite procedure. Esistono moltissimi moduli di grande utilità già programmati e pronti all'uso, messi gratuitamente a disposizione nell'apposita sezione del sito ufficiale delle estensioni.
Fra i moduli standard si possono segnalare il modulo main menu (il menu principale), il modulo di login (per l'accesso riservato degli utenti), quello per i sondaggi (poll) e quello per la distribuzione dei feed RSS (syndicate).
Template
Un template è un documento HTML/CSS che contiene il codice necessario a guidare Joomla! e ad impaginare i contenuti: ad esempio contiene il codice che permette il caricamento dei vari moduli in posizioni predefinite, codice per caricare il cosiddetto mainbody (la zona in cui vengono presentati i contenuti principali generati da Joomla! o dai componenti aggiuntivi) e cosi via. Per ottenere l'aspetto desiderato molti template contengono anche una serie di immagini (per gli sfondi, i bordi eccetera). Ogni template può essere scaricato da appositi siti gratuitamente ed installato attraverso l'apposita area admin.
Plugin
I plugin sono piccoli pezzi di codice che, quando richiamati, attivano un programma, uno script o eseguono una specifica funzione. Spesso agiscono in background nell'intero sito. Possono essere semplicissimi come la funzione che sostituisce un certo testo digitato con una funzione codificata (ad esempio posizionare una immagine precaricata impaginandola in un testo o spezzare in due pagine il contenuto di un lungo articolo), ma possono anche avere effetti molto più evidenti, come richiamare, all'interno delle finestre dei form per l'inserimento dei contenuti, le funzionalità di sofisticati editor di testo in modalità WYSIWYG elaborati da terze parti. Possono inoltre permettere collegamenti tra diversi componenti; una galleria di immagini, ad esempio, può avere un plugin collegato che renda la descrizione delle immagini disponibile alle funzioni di ricerca sul sito.
Esistono mambot per inserire funzioni Flash, per collegare automaticamente un glossario alle parole contenute nei testi degli articoli, per generare miniature delle immagini inserite nei testi in modo che alla selezione appaia una finestra con l'immagine a maggiore risoluzione, e molti altri.