Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu] CGSmartImage, udt et cache
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.1
#~ Url du site : www.nextrides.yannlamy.com
#~ Hébergeur / Soft : hébergeur pas cher
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.10.1
#~ Installed Modules:
#~ CMSMailer: 2.0.2
#~ CMSPrinting: 1.0
#~ FileManager: 1.2.0
#~ MenuManager: 1.7.7
#~ MicroTiny: 1.1.1
#~ ModuleManager: 1.5.1
#~ News: 2.12.3
#~ Search: 1.7
#~ ThemeManager: 1.1.4
#~ CGExtensions: 1.27.1
#~ FrontEndUsers: 1.16.4
#~ SelfRegistration: 1.6.13
#~ CustomContent: 1.7.3
#~ CGSmartImage: 1.6.1
#~ CGSimpleSmarty: 1.4.10
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: true
#~ max_upload_size: 6000000
#~ default_upload_permission: 664
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.8
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 64M
#~ max_execution_time: 90
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 10M
#~ upload_max_filesize: 6M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.56
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

toujours sur mon site qui me permet de tester plein de trucs, aujourd'hui, c'est une histoire de cache qui me pose problème.

En effet, avec feu les gens peuvent uploader une image qui s'affiche comme avatar lors de leur connection.
cet avatar est généré de 2 façons mais toujours par l'intermédiaire de CGSmartImage.
ces 2 façons sont soit directement cgsi soit par une udt {avatar} qui utilise cgsi.

mon soucis dans le cas présent est que utilisant jquery à outrance ( Sad )... mes changements de paramètres se font par l'intermédiaire du formulaire feu placé dans une fancybox (le formulaire est donc en iframe), ce qui fonctionne mais qui m'ennuit pour la mise a jour des images.
lorsque je recharge mon iframe et mon module de login (tout ça par jquery) les avatars ne se mettent pas à jour. il faut une réactualisation complète de la page pour ça fonctionne et encore, pas sur les iframes qui utilisent l'udt pour l'affichage de l'avatar.
j'ai donc rajouté un script php, appelé en ajax, pour effacer toutes les miniatures de l'image, générées par cgsi pour qu'au prochain affichage elles soient regénérées... mais que dalle! elles sont bien regénérées mais l'explorateur continue d'afficher l'ancienne image...
c'est donc surement un problème de mise en cache par l'explorateur mais j'aimerai bien pouvoir y remédier.

Donc si quelqu'un avait une idée pour régler ce problème....

merci bien.

les différents codes à dispo

udt avatar:

Code :
[== PHP ==]
global $gCms;

$feu =& cms_utils::get_module('FrontEndUsers');
$userloggedin = $feu->LoggedIn();

$width = $params['width'];
$height = $params['height'];

if($userloggedin){

   $userid = $feu->LoggedInId();
   $photo = $feu->GetUserPropertyFull('image',$userid);

   if (file_exists("uploads/feusers/".$photo)){

      $photosrc = 'uploads/feusers/'.$photo;}
  
   else{
        
      $photosrc = 'uploads/Nextrides/avatar.jpg';}
  
      
      $smarty = &cmsms()->GetSmarty();
      $smarty_data = "{CGSmartImage src=$photosrc filter_resizetofit=$width,$height,transparent,0 overwrite='true'} ";
      $smarty->_compile_source('temporary template', $smarty_data, $_compiled );
      @ob_start();
      $smarty->_eval('?>' . $_compiled);
      $_contents = @ob_get_contents();
      @ob_end_clean();
     echo '<div id="avatar">'.$_contents.'</div>';



}

script d'effacement des miniatures générées:

Code :
[== PHP ==]
$img1 = $_POST['img1'];
$img_split = explode("-",$img1);
$regex = $img_split[0];
$chemin = "../_CGSmartImage";
$repertoire = opendir($chemin);
while(false !== ($fichier = readdir($repertoire))){
        if(preg_match('#^'.$regex.'#', $fichier)){
            if($fichier!="." AND $fichier!=".." AND !is_dir($fichier)){
                unlink($chemin.'/'.$fichier);
                echo $fichier;}
        }
}

closedir($repertoire);
Sujet fermé


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)