La scorsa settimana c’è stato un aggiornamento del PHP sul server, ed improvvisamente il mio sito (che usa Joomla) è sparito con questo misterioso errore: PHP Warning: Parameter 2 to frontpage() expected to be a reference in includesCacheLiteFunction.php on line 100.
|
Dopo aver provato a tracciare da solo l’errore ed essermi perso diverse volte (in fin dei conti anche ho un altro lavoro…) una ricerca su internet ha portato il sole nella mia giornata: nel forum Joomla Kjell Hählen ha postato la soluzione, che ho recuperato dal sito http://maximilion.wordpress.com/
Questo fix aggiunge alla fine prima della chiusura dell’ultima graffa una funzione nel file function.php:
static $newobjCount,$newobj;
function fixCalls($arguments) {
for ($i = 0, $j = count($arguments); $i < $j; $i++) {
if (is_object($arguments[$i])) {
if (!self::$newobjCount) self::$newobjCount = 0;
self::$newobj[++self::$newobjCount] = clone $arguments[$i];
$arguments[$i] = &self::$newobj[self::$newobjCount];
}
}
return $arguments;
}
La funzione viene chiamata due volte con l’istruzione:
$arguments = $this->fixCalls($arguments);
Questa istruzione va inserita prima di questa riga:
$result = call_user_func_array($target, $arguments);
e di questa:
$result = call_user_func_array(array($class, $method), $arguments);
Grazie di cuore a Kjell Hählen che mi ha salvato i siti che amministro!!!