Bonjour,
Merci pour cette réponse très rapide.
J'ai téléchargé la dernière version du module fantôme. Je ne vois aucune différence mais cela doit être trop subtile pour moi lol.
Concernant mon problème, il est résolu. Apparemment, seul l'option d'actualisation de thèmes et templates posait problème. Pour ceux qui auraient le même souci, voici la démarche à suivre :
administration -> paramètres généraux -> Contrôler les modifications de templates ? à mettre sur "oui".
J'ai tout de même rajouté les deux lignes de code dans le header pour plus de sûreté.
Cependant je reste intrigué. Pourquoi le cache ne se vide-t-il pas en local alors que le module le précise explicitement ?
En attendant des réponses, j'ai trouvé une solution alternative sur un forum anglais. Il suffit de créer un fichier xDelCache.php avec ce code dedans (en changeant la variable XoopsVarPath) :
<?php echo '<ul><li>ok</li>';
error_reporting(E_ALL);
echo '<li>Error Checking on - ok<li>';
define('XOOPS_VAR_PATH', '../../xoops_data');
echo '<li>Path Set - '.XOOPS_VAR_PATH.'</li>';
$start[0] = time();
$length[0] = 60*4;
set_time_limit($length[0]);
echo '<li>Step Smarty Cache Clear Started</li>';
unlinkRecursive(XOOPS_VAR_PATH.'/caches/smarty_cache', false);
echo '<li>Step Smarty Cache Clear Ended</li>';
$start[1] = time();
$length[1] += $start[1] - $length[0];
set_time_limit($length[1]);
echo '<li>Step Smarty Compile Clear Started</li>';
unlinkRecursive(XOOPS_VAR_PATH.'/caches/smarty_compile', false);
echo '<li>Step Smarty Compile Clear Ended</li>';
$start[2] = time();
$length[2] += $start[2] - $length[1];
set_time_limit($length[2]);
echo '<li>Step XOOPS Cache Started</li>';
unlinkRecursive(XOOPS_VAR_PATH.'/caches/xoops_cache', false);
$end = time();
echo '<li>Step XOOPS Cache Ended</li></ul>';
exit(0);
/**
* Recursively delete a directory *
* @param string $dir Directory name
* @param boolean $deleteRootToo Delete specified top-level directory as well
*/
function unlinkRecursive($dir, $deleteRootToo) {
if(!$dh = @opendir($dir))
{
return;
}
while (false !== ($obj = readdir($dh)))
{
if($obj == '.' || $obj == '..')
{
continue;
}
if (!@unlink($dir . '/' . $obj))
{
unlinkRecursive($dir.'/'.$obj, true);
}
}
closedir($dh);
if ($deleteRootToo)
{
@rmdir($dir);
}
return;
}
?>
Qu'en pensez-vous? Est-ce une bonne idée ou pas?