Adobe Photoshop: aumentare nitidezza di una foto mossa o sfuocata
9 Luglio 2014Joomla: immagini non visibili su pagine diverse da home-page se il SEO è attivato
22 Settembre 2014Nel Backoffice di prestashop, in basso a sinistra, c’è un indicazione del tempo di caricamento di ciascuna pagina …
Mi hanno chiesto di ottenere lo stesso contatore nel pagine del negozio pubblico.
Per svolgere questo compito sono andato a vedere come questa cosa viene ottenuta nel backend: nel template dell’interfaccia di amministrazione, in particolare in admin/themes/default/templatefooter.tpl c’è la riga magica che calcola il tempo di caricamento.
[sourcecode]
<span>{l s=’Load time: ‘}{number_format(microtime(true) – $timer_start, 3, ‘.’, ”)}s</span>;
[/sourcecode]
come potete vedere, il tempo in secondi intercorso tra l’inizio della renderizzazione della pagina e la fine viene calcolato sottraendo al tempo corrente (microtime(true)) in contenuto della variabile $timer_start che viene così definita in admin/index.php
[sourcecode]
$timer_start = microtime(true);
[/sourcecode]
Facile, mi sono detto, faccio la stessa cosa nel tema del front-end; ma non funziona allo stesso modo, anche se una variabile simile è definita addirittura nel file di configurazione config/config.inc.php..
Come ho risolto? Sfruttando il fatto che Smarty, il gestore di template di Prestashop, è in grado di accedere alle variabili server side definite in php ed in particolare all’array $_SESSION.
Così ho aggiunto una riga al config/config.inc.php per definire un’opportuna varibile di sessione:
[sourcecode]
$_SESSION[‘START_LOAD’]= microtime(true);
[/sourcecode]
che ho letto all’interno del footer.tpl relativo al tema in uso nel front-end di Prestashop tramire la riga
[sourcecode]
<span>Caricamento pagina: {number_format(microtime(true) – $smarty.session.START_LOAD, 3, ‘.’, ”)} s</span>
[/sourcecode]
opportumente aggiunta prima del tag <body>