Joomla ha la caratteristica di essere estremamente versatile, e permette di installare i proprio moduli e componenti in maniera semplice e pulita, promuovendo sì l’utilizzo del CMS “a scatola chiusa”, ma anche lo sviluppo di elementi ad hoc per estenderne le funzionalità.

In questo ambito può essere davvero utile conoscere il meccanismo di funzionamento delle sessioni in Joomla. A differenza di quanto si crede, Joomla può essere considerato un vero e proprio framework, con le sue API e tutto ciò che serve per sviluppare componenti realmente e completamente integrati con il sistema.

Uno di questi oggetti, sicuramente tra i principali, è il JFactory: mediante questo oggetto infatti è possibile tra le altre cose gestire ad esempio le connessioni con il database, e, per l’appunto, le sessioni. Vediamo il procedimento esatto.

Il primo passo è recuperare la sessione e salvarla in una variabile che ne permetta l’utilizzo:

$session =&JFactory::getSession();

Notiamo che utilizziamo l’oggetto JFactory per salvare all’interno della variabile $session un riferimento alla sessione, che possiamo utilizzare per settare un valore:

$my_value = “variabile di sessione”;

$session->set(‘my_value’, $my_value);

In questo modo utilizziamo l’istanza della sessione precedentemente recuperata per memorizzare la variabile $my_value all’interno della sessione stessa. Il nome del parametro ‘my_value’ non deve ovviamente essere per forza uguale a quello della variabile ($my_value), anche se è buona norma utilizzare lo stesso nome per il parametro e per la variabile, in modo da facilitare la programmazione.

Il valore precedente salvato in sessione è facilmente recuperabile attraverso il seguente comando:

$my_value = $session->get('my_value');

Come possiamo vedere, quindi, il framework Joomla mette a disposizione tutta una serie di strumenti che facilitano il compito dello sviluppatore: è importante conoscere tali strumenti, perchè sono stati concepiti proprio per facilitare l’integrazione del nostro codice con quello del CMS, integrazioni da implementare nel modo corretto, se vogliamo che il nostro sistema rimanga stabile e sicuro.



Capita a volte di voler integrare al nostro portale Joomla delle piccole funzionalità utilizzabili ovunque nel sito ma che non giustificano lo sviluppo di un intero componente. L’implementazione di un modulo sarebbe la situazione perfetta, ma normalmente un modulo Joomla viene inserito nel template del portale, e questo è limitante per alcune funzionalità.

Ma come possiamo fare allora per non rinunciare al nostro progettino?? Ecco i passi per risolvere il problema….ed è semplicissimo!!

Per inserire un modulo all’interno di un articolo si deve usare all’interno del corpo del testo dell’articolo il commando “{loadposition xx}” seguendo queste procedura:

  1. Creiamo un modulo e assegnamoli una posizione che non generi conflitti con una posizione già esistente nel template. E’ possibile digitare all’interno della posizione un valore piuttosto che sceglierlo tra quelli disponibili. Per esempio, potremmo utilizzare il valore “myposition”.
  2. Ora è necessario assegnare il modulo all’elemento o agli elementi del menu che contiente gli articoli in cui vogliamo che il modulo venga visualizzato. E’ anche possibile assegnare il modulo a tutti gli elementi del menu.
  3. Il passo finale: editiamo l’articolo e lì dove vogliamo che sia mostrato inseriamo il testo “{loadposition myposition}” nel contenuto del testo.

Effettuata questa semplice procedura, il modulo verrà mostrato correttamente nell’articolo, esattamente nella posizione in cui abbiamo inserito la dicitura “{loadposition myposition}” dove “myposition” è la posizione che abbiamo assegnato precedentemente al modulo.



La promozione e lo studio del posizionamento di un sito Joomla non è un’operazione facile. Questo articolo traccia alcune linee guida per presentare tecniche generali SEO (Search Engine Optimization): questo è un campo vastissimo, con migliaia di tecniche differenti da adottare a seconda dello scopo che si vuole raggiungere. Con questa guida, restringiamo il campo a chi intende migliorare il posizionamento dei propri siti in Joomla: sarebbe impensabile esaurire un tal argomento in un solo articolo.

Con il termine SEO si intendono tutte quelle attività che servono a migliorare il posizionamento di una pagina web nei risultati forniti dai motori di ricerca. Per chi non ha conoscenze approfondite di un server web, come apache, ma utilizza Joomla come piattaforma, può appoggiarsi ad alcuni componenti che fanno molto del lavoro che bisognerebbe fare “a mano”. La cosa migliore sarebbe imparare ad utilizzare i server web ed in particolare apache, uno tra i migliori prodotti della sua categoria: ma ci rendiamo conto che lo studio di questo prodotto può risultare per molti davvero ostico, ed allora…ecco due dritte su come superare questo ostacolo!

Innanzitutto è fondamentale seguire questi semplici passi:

  1. Ogni pagina del sito deve avere un campo <title> diverso. In più, il titolo della pagina dovrebbe contenere le parole chiave relative al contenuto della pagina stessa.
  2. Il titolo del contenuto della pagina deve essere lo stesso del campo <title>: bisogna solo fare attenzione a non ripetere troppe volte le keywords.
  3. E’ di fondamentale importanza linkare sempre le parole chiave o più rilevanti del contenuto a risorse esterne o interne. La maggior parte dei motori di ricerca, tra cui ovviamente Google, premia le risorse valide e permette di salire nei risultati di ricerca.
  4. Ogni volta che inseriamo un contenuto Joomla abbiamo la possibilità di compilare i metatag description e keyword in modo da differenziarli e specificarli per ogni articolo che inseriamo. Questo è uno degli elementi più importanti.
  5. Bisogna curare anche il contenuto, prestando attenzione che il tema trattato sia originale e in relazione alle tematiche principali trattate dal sito.
  6. Comunicare con il mondo esterno, cercare collaborazioni e scambi di link testuali nelle homepage di siti con i quali si hanno partnership: questo permette di aumentare il page rank, e di consegueza le posizioni nei risultati di una ricerca.

Vi sono diversi componenti e moduli Joomla che aiutano a completare questi passi: come precedentemente suggerito, sarebbe di gran lunga consigliato gestire il tutto “a mano”, per avere più controllo e coscienza di ciò che succede. Tuttavia il componente “sh404SEF” è sicuramente il migliore per quel che riguarda l’URL Rewriting. Questa tecnica consiste nell’utilizzare URL modificati prima di reperire le risorse che gli stessi identificano, per una varietà di scopi, come appunto migliorare il posizionamento, oppure prevenire link indesiderati o controllare alcune delle principali funzionalità fornite dal protocollo HTTP per i server web.

Un altro elemento fondamentale, ma non legato a Joomla, è rappresentato dalle sitemap: ogni motore di ricerca principale ( Google, Yahoo, ecc ) mette a disposizione non solo strumenti per la gestione, ma addirittura strumenti che generano la sitemap automaticamente in base all’URL che passiamo al generator. Una sitemap è semplicemente una pagina web che in qualche modo riassume tutto il contenuto del sito, che oltre a facilitare la navigazione del sito permette di facilitare la scansione del sito da parte dei crawler dei motori di ricerca.

Una volta generata la sitemap ed inserita nella cartella del nostro sito, è convenitente a questo punto segnalarla ai motori di ricerca attraverso la pagina appropriata, in modo da velocizzare il riconoscimento e l’eventuale correzione di errori. La pagina in questioneè norlmalmente raggiungibiledagli strumenti gestione che il motore mette a disposizione per le sitmap.

Eseguendo questi piccoli accorgimenti, si potranno iniziare a vedere dei miglioramenti: bisogna sempre tenere presente che le tecniche SEO sono caratterizzate dalla grande difficoltà per cui i risultati di tali applicazioni non sono visibili nell’immediato, ma richiedono tempo, costanza e applicazione. Bisogna avere pazienza per ottenere dei risultati soddisfacenti, lavorando costantemente per tempi che sono nell’ordine di mesi. Quindi non ci dobbiamo aspettare dei miglioramenti improvvisi: pazientate, e seguite sempre le linee guida o le tecniche ufficiali fornite dai motori di ricera, perchè così come i miglioramenti si vedono nel tempo, anche le catastrofi hanno la medesima caratteristica! ;)



Joomla è oramai uno dei CMS (Content Management System) più affermati e utilizzati, sia per la sua facilità d’utilizzo sia per la sua modularità, che permette di installare estensioni con pochi passi.

Ma Joomla è anche molto apprezzato dagli addetti ai lavori, da chi ogni giorno si trova a configurare e integrare con la struttura del CMS elementi software personalmente sviluppati: nell’articolo presente a questo indirizzo è possibile leggere una guida che spiega chiaramente la distinzioni tra quelli che rappresentano gli elementi principali della struttura di questo CMS: i componenti, i mambots e i moduli.

Qui trattiamo esclusivamente l’implementazione e lo sviluppo dei moduli: questi possono essere visti come delle entità ausiliarie rispetto ai componenti, entità che vengono visualizzate esclusivamente all’interno delle sezioni definite nel template ( e qui richiamamibili attraverso la funzione MosLoadModules() ).

Lo sviluppo di un modulo richiede almeno la creazione di due file:

  • il file mod_nomemodulo.php rappresenta il file PHP che contiente il codice principale del modulo;
  • il file mod_nomemodulo.xml che rappresenta il file di installazione del modulo: qui sono contenute tutte le informazioni necessarie all’installazione, come i parametri, le immagini, e il nome di questo file, come per il precedente deve avere un nome preciso perchè rappresenta l’ “oggetto” che stiamo creando.

Ad esempio, supponiamo di implementare un modulo che estenda un componente di nostra creazione, in modo che il modulo recuperi e permetta la visualizzazione di alcuni record del nostro componente secondo parametri che possono essere configurati attraverso il modulo stesso (ordine, tipologia di lemento, ecc..). Allora potremmo chiamare i file del nostro modulo in questo modo:

  • mod_list_myelements.php
  • mod_list_myelements.xml


Una volta creati questi file è sufficiente comprimerli in un pacchetto .ZIP o TGZ e installarli attreverso l’installer-moduli di Joomla (Installazioni—>Moduli) raggiungibile dal pannello di amministrazione.

File di installazione del modulo

Vediamo un esempio commentato di file di installazione del modulo, nel nostro caso il file mod_list_myelements.xml.

/**INTESTAZIONE FILE XML**/
<?xml version=”1.0″ encoding=”iso-8859-1″?>
<mosinstall type=”module” version=”1.0.0″>
/**FINE INTESTAZIONE FILE XML**/

/**DATI DELL’AUTORE DEL MODULO E DESCRIZIONE**/
<name>List Elements</name>
<author>Marco Lecce</author>
<creationDate>January 2008</creationDate>
<copyright>(C) 2008 Marco Lecce. All rights reserved.</copyright>
<license></license>
<authorEmail>yourmail@
yourmail.com</authorEmail>
<authorUrl>www.yoursite.com</authorUrl>
<version>1.0.0</version>
<description>Questo modulo elenca gli elementi in base a parametri di configurazione.</description>
/**FINE DATI DELL’AUTORE DEL MODULO E DESCRIZIONE**/

/**
ALL’INTERNO DEL TAG files VANNO INSERITI TUTTI I FILE CHE COMPONGONO IL MODULO: AD ESEMPIO SE IL MODULO UTILIZZA IMMAGINI PARTICOLARI, POSSIAMO DICHIARARLE QUI
**/

<files>
<filename module=”mod_list_myelements”>mod_list_myelements.php</filename>
(ESEMPIO DI SECONDO FILE<filename module=”mod_list_myelements”>image.jpg</filename>)

</files>

/**DICHIARAZIONE PARAMETRI MODULO: QUESTA PARTE E’ FACOLTATIVA; QUI DEFINIAMO TRE PARAMETRI**/
<params>
/**
CONFIGURAZIONE PRIMO PARAMETRO:
“count” -> nome nel database del campo del componente che vogliamo controllare con il modulo
“type” -> il tipo del parametro sarà text, cioè il parametro è una casella di testo
“default” -> valore di default
**/
<param name=”count” type=”text” default=”20″ label=”Contatore” description=”Il numero di elementi (default 20)” />
/**
CONFIGURAZIONE SECONDO PARAMETRO:
“order” -> nome nel database del campo del componente che vogliamo controllare con il modulo
“type” -> il tipo del parametro sarà list, cioè il parametro è una select da cui potremmo scegliere tre opzioni
“default” -> valore di default
**/
<param name=”order” type=”list” default=”order_list” label=”Ordinamento” description=”Stabilisce la modalità di ordinamento delle news”>
<option value=”v1″>Valore1</option>
<option value=”v2″>Valore2</option>
<option value=”v3″>Valore3</option>
</param>
/**
CONFIGURAZIONE TERZO PARAMETRO:
“type” -> nome nel database del campo del componente che vogliamo controllare con il modulo
“type” -> il tipo del parametro sarà list, cioè il parametro è un radio box da cui potremmo scegliere due opzioni
“default” -> valore di default
**/
<param name=”type” type=”radio” default=”ASC” label=”Verso dell’ordinamento” description=”Stabilisce il verso dell’ordinamento “>
<option value=”ASC”>Crescente</option>
<option value=”DESC”>Decrescente</option>
</param>
</params>
/**FINE DICHIARAZIONE PARAMETRI MODULO**/
</mosinstall>

I commenti dovrebbero essere piuttosto chiari: una volta installato il componente dal pannello di amministrazione, andando nella sezione dedicata ai moduli, e cliccando sul nostro appena installato, sarà possibile configurare il comportamento del modulo nel frontend, attraverso i parametri che abbiamo dichiarato.

Codice del modulo

Questo è il file principale, che contiene cioè tutto il codice del modulo. Ora, in questo file, in realtà, noi possiamo scrivere tutto il codice PHP che ci serve, perciò più che fare un esempio di come scrivere questo tipo di file, daremo le indicazioni su come è possibile utilizzare alcune direttive che chiariscono le potenzialità dei moduli.

  • defined( ‘_VALID_MOS’ ) or die( ‘Restricted access’ );
    E’ importantissimo inserire questa riga di codice come prima nel file del modulo: in questo modo evitiamo l’accesso diretto al file, cioè impediamo l’accesso al file dall’esterno di Joomla. Dimenticarsi questa riga non compromette il funzionamento del modulo, ma apre falle nella sicurezza del portale.
  • $ordering = $param->get(‘order’);
    Con questa riga di codice PHP non facciamo altro che assegnare alla variabile $ordering il valore del parametro ‘order‘ che abbiamo scelto nel backend, cioè dall’amministrazione del modulo: nel nostro caso, ‘order‘ l’abbiamo creato come select con tre opzioni, e quindi dall’amministrazione del modulo possiamo assegnare uno di questi tre valori al parametro, che possiamo recuperare nel frontend attraverso appunto questa riga di codice.

Ora dovrebbe essere chiaro come sia possibile intergrare funzionalità diverse a qualsiasi elemento della struttura di Joomla attraverso i moduli: la vera forza di questo CMS è proprio la versatilità che caratterizza non solo l’utilizzo, ma anche lo sviluppo di applicazioni basate su questo Content Managment System.