La modalita' Offline di Joomla, come ben tutti sappiamo, ci consente di mettere in "stand-by" il nostro sito, evitanto cosi' che gli utenti possano accedervi mentre stiamo effettuando magari qualche modifica o prova. La pagina in questione dà la possibilità, a chi è in possesso di username e password, di accedere al sito, semplicemente sfruttando il form di accesso. C'è chi, come me per esempio, ha la necessità di nascondere (e NON eliminare) quel form, sia per trarne benefici estetici, sia per limitare le prove di accesso a quelle persone che non hanno niente da fare. Basterà semplicemente inserire un piccolo script nel codice. Essendo la pagina identica in tutte le versioni di Joomla, questo metodo si può applicare per tutte le versioni. Vediamolo insieme.
La pagina in questione è offline.php e si trova in " /templates/system/ ". Ovviamente non andremo mai a modificare direttamente quel file, per il solito discorso che non si devono mai modificare file del core di Joomla. Per questo motivo, utilizzeremo l'override. Copiamo quindi il file in "/templates/mio_template/" (dove mio_template è il template che stiamo utilizzando). Apriamo il file. In base a come piace, possiamo decidere di nasconderlo e farlo apparire alla pressione di un tasto della tastiera, oppure cliccando col mouse sull'immagine o su una scritta. Di seguito, vedremo sia lo script che ci permetterà di far apparire il form con la pressione di un preciso tasto della tastiera, e sia con un click sull'immagine di Joomla.
Tastiera: Lo script permette di nascondere il form, e farlo apparire (e scomparire nuovamente) con la pressione della lettera j
Lo script che dobbiamo incollare all'inizio della pagina è questo:
<script>
function presskey(e) {
if(window.event) // IE
asciikey = e.keyCode;
else if(e.which) // altri browser
asciikey = e.which;
var element=document.getElementById("form-login");
if (asciikey==106) {
if (element.style.display == 'none')
element.style.display="block";
else
element.style.display="none";
}
}
</script>
Alla riga 8 dello script, vediamo il numero 106. Il 106 è il corrispettivo decimale della lettera j in ASCII. Per modificare quindi la lettera con cui far apparire il form, basta semplicemente sostituire il 106 con il decimale in ASCII della lettera che vogliamo. Una tabella del codice ASCII è reperibile su wikipedia.
Incollato lo script, andiamo una ventina di righe sotto, dove c'è il tag <body>. Dentro il tag, inseriamo il codice onkeypress="presskey(event)".
Il tag <body> quindi, alla fine, risulterà così:
<body onkeypress="presskey(event)">
Infine, circa 10 righe più sotto, c'è il tanto famigerato form di cui stiamo parlando. Nel tag del form, dobbiamo inserire il codice style="display:none".
Il tag form, quindi, alla fine risulterà:
<form action="<?php echo JRoute::_('index.php', true); ?>" method="post" id="form-login" style="display:none">
N.B. Per Joomla 1.5, dentro il tag, esattamente il comando "action", risulterà diverso: state tranquilli.
Fine! Da adesso in poi, quando metteremo il sito in offline, vedremo la pagina senza più il form di accesso, che però potremo farlo apparire pigiando semplicemente la lettere che abbiamo scelto.
Click Mouse: Lo script permette di nascondere il form, e di farlo apparire (e scomparire nuovamente) cliccando su un elemento della pagina che sceglieremo.
Ecco lo script da incollare all'inizio della pagina:
<script>
function nascondi_form() {
var element=document.getElementById("form-login");
if (element.style.display == 'none')
element.style.display="block";
else
element.style.display="none";
}
</script>
Adesso dobbiamo inserire nel tag di un elemento che decidiamo noi, il codice onClick="nascondi_form()"
Per esempio, possiamo decidere di fare apparire il form quando clicchiamo sull'immagine di Joomla. Per far questo, inseriramo quel codice alla riga 34 circa, dove c'è il tag <img>, che quindi risulterà:
<img src="/images/joomla_logo_black.jpg" alt="Joomla! Logo" onClick="nascondi_form()" />
Infine, come per lo script della tastiera, andiamo verso la riga 41, dove c'è il form, e aggiungiamo il codice style="display:none".
Il tag form, quindi, alla fine risulterà:
<form action="<?php echo JRoute::_('index.php', true); ?>" method="post" id="form-login" style="display:none">
N.B. Per Joomla 1.5, dentro il tag, esattamente il comando "action", risulterà diverso: state tranquilli.
Ecco fatto, da adesso, quando il sito sarà offline, la pagina nasconderà il form di accesso, che potremo farlo comparire (e poi scomparire) semplicemente cliccando sull'immagine di Joomla (o sull'elemento che avete deciso).
Spero che la guida sia stata utile. :)
Gabriele Verona
Commenta l'articolo sul Forum.