L’intero codice di Joomla può essere suddiviso in due grandi sezioni: il lato frontend (sito) ed il lato di amministrazione. Il codice che realizza le funzionalità dell'amministrazione si trova nella cartella administrator.
Il lato amministrazione è l’insieme di funzionalità di Joomla che si occupa di gestire i contenuti e le funzioni che sono rese disponibili attraverso il lato frontend. Joomla basa la propria struttura su entità chiamate componenti.
Il componente che si occupa di presentare il contenuto si chiama com_content. Osservando la home page della nostra installazione Joomla possiamo notare che molti link sono della forma
index.php?option=com_content&view=article&id=5[..]
Questo significa che il collegamento porta ad una pagina gestita dal componente com_content. Osservando meglio i collegamenti troviamo anche
- com_newsfeeds
- com_weblinks
- com_user
- com_banners
Tutti questi sono componenti che svolgono una funzione particolare: com_newsfeeds si occupa di pubblicare notizie recuperate da altri siti usando il protocollo RSS, com_weblinks gestisce raccolte di collegamenti preferiti, com_user consente il login degli utenti, com_banners gestisce banner pubblicitari e collegamenti sponsorizzati. La prima pagina viene invece gestita dal componente com_frontpage, il cui compito è organizzare in modo ottimale la presentazione dei contenuti in home page. I componenti sono centrali per il funzionamento di Joomla, infatti senza di essi non funzionerebbe.
A far da contorno ai componenti troviamo dei box in cui sono visualizzate voci di menu, sondaggi, form per il login e la ricerca ed altre informazioni. Tutte queste sono informazioni che vengono fornite dai moduli, infatti ogni box è un modulo. Tutti i componenti ed i moduli vengono configurati utilizzando l’interfaccia di amministrazione.
Un altro meccanismo molto importante per il funzionamento di Joomla sono i menu. Come possiamo notare, ogni sito ha uno o più menu. Joomla basa il suo funzionamento sul fatto che ogni elemento di contenuto viene associato ad una voce di menu. Possiamo capire tutto questo analizzando i collegamenti interni a Joomla: ogni link ha al suo interno (generalmente alla fine, ma non è obbligatorio) il parametro Itemid.
index.php?option=com_content&view[…]&Itemid=50
Il valore del parametro Itemid non è altro che l’id del menu cui appartiene questo elemento di contenuto, ed è utilizzato per stabilire quale template deve essere utilizzato e quali moduli devono essere mostrati. Ogni modulo ed ogni template, infatti, è assegnabile ad una (o più di una) particolare voce di menu, e Itemid è l’elemento che permette di determinarla. Basti provare a cambiare il valore di questo parametro oppure eliminarlo per notare come cambia la visualizzazione delle pagine.