FasterJoomla

Joomla security and optimization

Visita il nuovo sito FasterJoomla che raccoglie i nostri articoli ed estensioni per Joomla!

Si parla di sicurezza, velocità, sviluppo di estensioni per Joomla.

Trovate pubblicate anche le nostre guide pratiche.

Per prima cosa implementiamo un timeout.
Mi serve principalmente per quelle domande di conferma che hanno una risposta predefinita che si usa al 90%...
 

Ciascuna funzione  di visualizzazione (ask, tell) include in fondo:

    if (arguments.length > 3)
    {
        this.doTimeout(okTimeoutSeconds);
    }
Quindi passando un parametro in più, ovvero il timeout in secondi, si attiva il timeout.
 
Gestisco tutto (setup, display dei secondi restanti, e chiusura) da una funzione sola:
 
_msgBox.prototype.doTimeout = function (okTimeoutSeconds)
{
    if (arguments.length>0)
    {
        // faccio partire il timeout. okTimeoutSeconds sono i secondi trascorsi
        // i quali verrà premuto il primo bottone automaticamente.
        this.okTimeoutProgress = okTimeoutSeconds;
    }
    if (this.okTimeoutProgress <= 0)
    {
        this.handleCallback(msgBox.button1Result);
    }
    else
    {
        this.button1Div.innerHTML = this.button1+'...'+this.okTimeoutProgress--;
        clearTimeout(this.okTimeoutID);
        this.okTimeoutID = setTimeout("msgBox.doTimeout()",1000);
    }
}

I file descritti in questo articolo si possono scaricare dall'introduzione