Ciao a tutti, su forum.joomla.org ho trovato un interessantissima discussione in cui viene spiegato come nascondere un modulo (ad esempio un menu) solo agli utenti registrati (se vi è capitato di creare un menu del tipo "iscriviti" avrete notato quanto sia antipatico continuarlo a vederlo anche dopo essersi loggati).
Io che non sono un programmatore l'ho trovato semplicissimo e molto utile, posto qui il link:
http://forum.joomla.org/index.php/topic,114630.msg568882.htmlPer chi non conosce l'inglese o non ha tempo, segue la procedura in italiano.
Dunque, l'operazione consta di due piccoli passaggi:
1) Bisogna aprire la cartella /modules nella root ed editare l'xml relativo al modulo che ci interessa (nel mio caso mod_mainmenu.xml), ed inserire il seguente breve codice in qualsiasi punto insieme agli altri param (naturalmente i valori degli attributi label e description possono essere cambiati/tradotti a proprio piacimento):
<param name="show_registered" type="radio" default="1" label="Show Menu When Logged In" description="Show the menu also when a registered user is logged in">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
2) Infine, basta aprire il file /includes/frontend.php e andare alla linea 155, dove c'è il seguente codice:
foreach ($modules as $module) {
$params = new mosParameters( $module->params );
Subito dopo di esso va aggiunto:
// HACK: added code to check if module should be shown when a user is logged in
if (!$params->get('show_registered', 1) && $my->id) {
// simply continue the loop without outputting this module
continue;
}
// --- end HACK ---
Il gioco è fatto. A questo punto andando nel backend, gestione moduli, e selezionando un qualsasi mod_mainmenu, noterete che alla fine della pagina è apparsa un'ulteriore opzione che permette di scegliere se visualizzare o meno il modulo per gli utenti loggati. Semplicemente fantastico.