Whirly Posted February 2, 2012 Share Posted February 2, 2012 Bonjour, Je souhaite renommer mon fichier global.css à chacune de mes modifications. global2.css, global2.1.css etc... Cela permet au navigateur d'un ancien visiteur de recharger la page et d'afficher les modifications (Un internaute n'est pas censé savoir qu'il faut rafraîchir la page avec F5). Je ne veux pas passer par le htaccess sinon on perd complètement l’intérêt du cache navigateur! J'aimerais savoir quels sont les fichiers à modifier qui appellent le global.css via cette ligne : Merci d'avance! Link to comment Share on other sites More sharing options...
Samy_R Posted February 2, 2012 Share Posted February 2, 2012 Tu es sur quel type d'hébergement ? Mutualisé ? Dédié ? Link to comment Share on other sites More sharing options...
Whirly Posted February 2, 2012 Author Share Posted February 2, 2012 Mutualisé chez 1&1 Link to comment Share on other sites More sharing options...
Whirly Posted February 4, 2012 Author Share Posted February 4, 2012 Normalement ça devrait être dans le header.tpl mais à la place j'ai ça, ce qui veut dire que la mention global.css doit se trouver dans d'autres fichiers. {if isset($css_files)} {foreach from=$css_files key=css_uri item=media} <link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" /> {/foreach} {/if} Link to comment Share on other sites More sharing options...
Whirly Posted February 6, 2012 Author Share Posted February 6, 2012 Beuh :-( Ce n'est donc pas possible de renommer ce fichier? Link to comment Share on other sites More sharing options...
Whirly Posted February 7, 2012 Author Share Posted February 7, 2012 Ou alors au lieu de renommer on pourrait utiliser Timestamp La question est la même: Quels fichiers dois-je modifier pour prendre en compte le nouveau nom de global.css ? J'imagine que ce sont des .tpl Link to comment Share on other sites More sharing options...
Whirly Posted February 11, 2012 Author Share Posted February 11, 2012 Bon on peut dire que je me sens un peu tout seul dans mon petit sujet. Problème résolu (on est jamais mieux servi que par soit même ;-) 1. J'ai fait une recherche via l'invite de commande : findstr /s /m "\<global.css\>" c:\wamp\www\prestashop\*.* > résultat.txt 2. Dans le fichier résultat.txt j'ai trouvé les fichiers suivants : c:\wamp\www\prestashop\classes\FrontController.php c:\wamp\www\prestashop\js\tinymce.inc.js c:\wamp\www\prestashop\modules\blockcustomerprivacy\blockcustomerprivacy.php c:\wamp\www\prestahsop\modules\ebay\ebay.php 3. J'ai donc renommé global.css et global2.css et j'ai modifié le fichier FrontController.php en conséquence. 4. Après avoir nettoyé les fichiers compile ça marche! Mes changements sont pris en compte sans avoir à rafraichir ma page!!! Youpi!!!! Wouhou! (Chui trop fort) :wub: :wub: :wub: Un commentaire? Link to comment Share on other sites More sharing options...
Kilka Posted February 12, 2012 Share Posted February 12, 2012 Bon on peut dire que je me sens un peu tout seul dans mon petit sujet. Problème résolu (on est jamais mieux servi que par soit même ;-) 1. J'ai fait une recherche via l'invite de commande : findstr /s /m "\<global.css\>" c:\wamp\www\prestashop\*.* > résultat.txt 2. Dans le fichier résultat.txt j'ai trouvé les fichiers suivants : c:\wamp\www\prestashop\classes\FrontController.php c:\wamp\www\prestashop\js\tinymce.inc.js c:\wamp\www\prestashop\modules\blockcustomerprivacy\blockcustomerprivacy.php c:\wamp\www\prestahsop\modules\ebay\ebay.php 3. J'ai donc renommé global.css et global2.css et j'ai modifié le fichier FrontController.php en conséquence. 4. Après avoir nettoyé les fichiers compile ça marche! Mes changements sont pris en compte sans avoir à rafraichir ma page!!! Youpi!!!! Wouhou! (Chui trop fort) :wub: :wub: :wub: Un commentaire? Bonne solution, mais n'est-il pas possible d'avoir une génération automatique du nouveau nom du css(global2, puis global3...) ? Dans ce cas là il faudrait aussi automatiser le code dans Frontcontroller... Des pistes pour cela? Link to comment Share on other sites More sharing options...
meditation Posted February 12, 2012 Share Posted February 12, 2012 dans le header.tpl de votre theme, vous ajoutez un point d'interrogation, et une variable version dans la suite, comme ceci: <link href="{$css_uri}?version=1" rel="stylesheet" type="text/css" media="{$media}" /> chaque fois si vous changez la variable, cela va obliger le browser de reloader les css. 1 Link to comment Share on other sites More sharing options...
Whirly Posted February 13, 2012 Author Share Posted February 13, 2012 Ah bah oui tout de suite c'est plus facile! Test concluant! Merci Meditation :wub: :wub: Link to comment Share on other sites More sharing options...
Kilka Posted February 14, 2012 Share Posted February 14, 2012 Oui; c'est en effet plus simple et plus efficace comme solution ! Merci. Link to comment Share on other sites More sharing options...
leo46 Posted March 23, 2012 Share Posted March 23, 2012 Désolé mais j'ai pas tout compris. Ok pour le ?version=1..2.. que je met dans header.tpl, mais en meme temps à côté il faut faire quoi dans quel fichier ? Admettons que je modifie mon global.css ou un autre css comme product.css, qu'est ce que je fais ? 1- Je changer la valeur de version dans header.tpl en l'incrémentant de 1 ? 2- Je change le nom du css ? Je touche à Frontcontroller.php ? Merci d'avance, c'est vrai que c'est chiant de faire tout un tas de modifs que les clients ne voient pas au final. Link to comment Share on other sites More sharing options...
titeuf913 Posted April 29, 2012 Share Posted April 29, 2012 Bonjour, j'utilise cette fonction pour le css et les images. Ce qui m'offre l'avantage de ne pas avoir à renomer mes images après modification ou mes css et de ne pas à utiliser la fonction F5 pour vider le cache du navigateur. Car comme tu le sais le client ne le sais pas qu'il faut faire un F5 pour prendre en compte les modifications. J'avais essayer une autre méthode qui fonctionne également c'est de renomer ma template de ce fait les changements étaient pris en compte mais il fallait me retaper les traductions de certains modules. Donc j'opte largement pour la première solutions. 1/ Pour que cela fonctionne il te faut activer dans Smarty.class.php la ligne PHP_TAG en TRUE var $security_settings = array( 'PHP_HANDLING' => false, 'IF_FUNCS' => array('array', 'list', 'isset', 'empty', 'count', 'sizeof', 'in_array', 'is_array', 'true', 'false', 'null'), 'INCLUDE_ANY' => false, 'PHP_TAGS' => true, 'MODIFIER_FUNCS' => array('count'), 'ALLOW_CONSTANTS' => false ); 2/ Dans header.tpl de ton thème : {php}echo ('<link href="{$css_uri}?' .time(). '" rel="stylesheet" type="text/css" media="{$media}" />');{/php} 3/ Pour appliquer un rafraichissement sur une image qui à tendance à être modifier fréquement : (Je ne recommande pas de la faire systèmatiquement sur toutes les images car cela peut entrainer un ralentissement de ton site) {php}echo ('[img={$img_dir}tonimage.png?]');{/php} Peut être que certains vont désaprouvé cela car en théorie nous ne somme pas tenue de mettre du code php dans un thème prestashop. Pour ma part j'ai essayer plusieurs solutions et c'est la seul qui fonctionne. Rien de plus frustrant de faire des modifications qui ne sont même pas vu par les clients. Link to comment Share on other sites More sharing options...
LauraPresta Posted January 11, 2017 Share Posted January 11, 2017 dans le header.tpl de votre theme, vous ajoutez un point d'interrogation, et une variable version dans la suite, comme ceci: <link href="{$css_uri}?version=1" rel="stylesheet" type="text/css" media="{$media}" /> chaque fois si vous changez la variable, cela va obliger le browser de reloader les css. Ce code n'a pas fonctionné pour moi mais peut-être il y avait une autre manip à faire ? Le temps est passé (presta 1.6.1.6 ici) mais c'est le seul sujet francophone qui parle réellement de ce problème. La seule réelle solution, on est d'accord, étant de changer le nom ou la version des fichiers css, quelqu'un a-t-il résolu le problème ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now