Fork me on GitHub






le cache en local
Newbie
Inscrit: 14/12/2010 09:34
Messages: 5
Bonjour à tous,

Je vais commencer par me présenter rapidement. Tout fraichement diplômé d'une Licence Pro, je suis employé dans une entreprise de dev web qui utilise Xoops. J'apprends donc à utiliser ce CMS plutôt sympathique (et moins barbare que certains dont je ne citerai pas le nom).

Je vais maintenant vous exposer mon problème.
J'ai installé xoops v2.5 en local avec wampserver. Aucun souci, ca marche nikel. J'ai également installé un module fantôme trouvé sur un site. Encore une fois ca marche nikel.
Je souhaite modifier le contenu pour mettre le mien, et là ca ne fonctionne pas. Le problème est localisé : le cache ne se vide pas. Si je vide les répertoires : smarty_cache, smarty_compile et xoops_cache, cela fonctionne, mes changements apparaissent.
Cependant je souhaiterai que le cache se vide automatiquement, ce qui est apparemment le cas lorsque Xoops est en ligne.

J'ai regardé dans les paramètres d'administration. Une option permet de faire cela, mais elle est déjà positionné sur "pas de cache", mais rien n'y fait, le cache ne se vide pas automatiquement.

Existe-t-il donc un bouton que je n'aurai pas vu? un module à installer? un bout de code à implémenter?
J'ai cherché sur le forum et sur le net, je n'ai rien trouvé à ce sujet.

Je vous remercie pour l'attention que vous porterez à mon problème. S'il vous manque des informations, n'hésitez pas à me les demander.

Cordialement,
Mathieu (alias Kurogan).

Posté le : 14/12/2010 09:45
Partager Twitter Partagez cette article sur GG+
Re: le cache en local
Semi pro
Inscrit: 08/06/2005 17:15
De Where ?
Messages: 513
Bonjour,

Concernant le module ghost, tu as une version toute fraiche à partir de ce svn http://xoofoo.svn.sourceforge.net/vie ... oops/modules/ghost/trunk/

Pour le cache, dans les préférences de l'admin tu peux cocher l'actualisation des templates et thème à partir du répertoire

Si tu créé un module, à chaque modification, je te conseille de mettre à jour ton module via l'admin

Dans tes fichiers php, tu peux également ajouter ces lignes :
$xoopsTpl->xoops_setCaching(0);
$xoopsTpl->xoops_setCacheTime(0);

Posté le : 14/12/2010 10:16
Partager Twitter Partagez cette article sur GG+
Re: le cache en local
Newbie
Inscrit: 14/12/2010 09:34
Messages: 5
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.'/'.$objtrue);         
}     
}      
closedir($dh);         
if (
$deleteRootToo)     
{         
@
rmdir($dir);     
}         
return; 

?>


Qu'en pensez-vous? Est-ce une bonne idée ou pas?

Posté le : 14/12/2010 10:42
Partager Twitter Partagez cette article sur GG+
Re: le cache en local
Semi pro
Inscrit: 08/06/2005 17:15
De Where ?
Messages: 513
Citation :

Kurogan a écrit :
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.

Comme tu peux le voir à partir de ce lien ( http://xoofoo.svn.sourceforge.net/vie ... iew=revision&revision=466 ), le module ghost à pas mal changé par rapport à une version que tu dois avoir

Citation :
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 ?

Je t'invite à lire la doc sur le système de cache de xoops et smarty

Citation :
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)

Dans l'administration de Xoops, dans "Maintenance" tu as également un système de nettoyage des caches

Posté le : 14/12/2010 11:00
Partager Twitter Partagez cette article sur GG+
Re: le cache en local
Newbie
Inscrit: 14/12/2010 09:34
Messages: 5
Je ne comprend pas tout, mais effectivement, il y a pas mal de modification dans le module fantôme.

Pour la doc, j'irai la lire. J'ai du zapper ce passage.

Je n'avais pas vu l'option de vidage de cache dans la partie maintenance. Merci pour l'info.

Encore désolé de vous avoir embêter avec tout ca.
A bientôt et encore Merci à toi, Caradoc.

Posté le : 14/12/2010 13:41
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

44 Personne(s) en ligne (36 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 44 | Plus ...