TMG ha terminato l'attività. Grazie per esser stati con noi. Questo sito non è più aggiornato e resta su solo per alcuni prodotti obsoleti che però fanno ancora traffico anche se non dovrebbero ma la colpa semmai è di google.

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