fai attenzione che funziona solo se la cache è ativata ed è configurara dal pannello di controllo scegliendo il tipo di cache.
Non ero sicurissimo di aver attivata la cache, quindi ho riprovato ad attivarla sia nel plugin (con la pagina impostata) sia da Configurazione Globale, senza però risolvere.
Però come ha suggerito tonicopi ho inserito un refresh nella pagina (modificando il sorgente) con il seguente codice
$document->setMetaData("refresh", "0", $attribute = "http-equiv");
che alla fine risulta una volta interpretata la pagina:
<meta http-equiv="refresh" content= "0" />
La pagina si riavvia in continuazione... quindi ho aumentato a 10 secondi e in effetti funziona. Ma è una scocciatura e certamente non va bene il riavvio ogni 10 secondi. Però è già una indicazione che "probabilmente" la strada è giusta.
Cercando varie soluzioni, anche con Script Java di Refresh, nessuno funziona (proprio non partono... forse per errore mio).Decido di adattarne una di queste soluzioni al PHP e nello stesso punto in cui avevo inserito il codice per il refresh, inserisco questo codice PHP
$osp_time=time(); //Leggo il Tempo
if (isset($_COOKIE['osp_reload'])) { //verifico se il cookie esiste
$osp_time_cookie = $_COOKIE['osp_reload']; //Recupero il valore del cookie
$osp_time_cookieFix = ($osp_time_cookie + 10); //aggiungo 10 secondi al valore letto dal cookie
setcookie("osp_reload", $osp_time, time()+3600); //Lo un nuovo valore nei cookie
if ($osp_time_cookieFix > $osp_time) { //Verifico il valore del cookie è superiore di 10 secondi rispetto a quello attuale
echo "AAA Cookie= " . $osp_time_cookieFix . " -> Time = " . $osp_time . " -> Diff= " . ($osp_time - $osp_time_cookieFix);
$document->setMetaData("refresh", "0", $attribute = "http-equiv"); //Inserisco l'struzione per ricaricare la pagina
} else {
echo "BBB Cookie= " . $osp_time_cookieFix . " -> Time = " . $osp_time . "-> Diff= " . ($osp_time - $osp_time_cookieFix);
}
} else { // il cookie non esiste, lo scrivo e faccio comunque il refresh
setcookie("osp_reload", $osp_time, time()+3600); //Lo salvo nei cookie
echo "CCC Cookie= " . $osp_time_cookieFix . " -> Time = " . $osp_time . "-> Diff= " . ($osp_time - $osp_time_cookieFix);
$document->setMetaData("refresh", "0", $attribute = "http-equiv"); //Inserisco l'struzione per ricaricare la pagina
}
In sintesi:- leggo il tempo attuale
- leggo il tempo memorizzato nei cookie (tempo precedente)
- se il tempo memorizzato nei cookie + 10 secondi è superiore al tempo attuale ricarico la pagina, altrimenti no.
Il problema è che "grazie" alla cache tutti quei valori rimangono gli stessi (lo si nota proprio per gli echo che visualizzo)
Ho provato anche una variante inserendo questo
$document->setMetaData("refresh", "0;URL=?$osp_time", $attribute = "http-equiv");
Aggiunge qualcosa di variabile all'URL e pensavo in quel modo di fregare la cache, ma niente... il valore di $osp_time non varia fino a quando non fa un vero e proprio riavvio