FABIAN Posted July 2, 2012 Share Posted July 2, 2012 (edited) MOD Version : V.0.0.3 / Compatible 1.5RC MOD Version : V.0.0.4 / Fix erreur dans l'attribution du mois. Bonjour à tous, Après quelques heures de travail et de recherche je suis heureux de vous faire profiter des fruits de mes résultats LES ETAPES Modification du mois serveur Français (ou autre) en anglais. (comme ci dessous exemple pour un seul mois). Ceçi est à l'origine de l'erreur NaN. {if ($product->specificPrice.to|date_format:'%B') == 'janvier' or ($product->specificPrice.to|date_format:'%B') == 'januar'}{assign var="month_counter" value="january"}{/if} Vérification que la promotion est toujours en cours à la seconde prête. Entre l'heure de paramétrage et l'heure serveur. {if ($product->specificPrice.reduction) AND ($product->specificPrice.to|date_format:'%Y-%m-%d %H:%M:%S' >= $smarty.now|date_format:'%Y-%m-%d %H:%M:%S')} ........ {/if} Paramétrage de l'affichage en correspondance avec la langue ISO utilisée par l'utilisateur lors de sa navigation. {if $lang_iso == 'en'} <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown.js"></script> {else} <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown.js"></script> <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown-{$lang_iso}.js"></script> {/if} LE RESULTAT Un compteur fonctionnel sur la dernière version de PRESTASHOP. La gestion multilingue (serveur & user). Un fonctionnement simple et automatique (pas de gestion d'un module tiers pour gérer les promotions, exploite les fonctionnalités natives de prestashop). >> VOIR LA PIECE JOINTE (capture.jpg) << 1. Les pré-requis : Package Jquery.Countdown : http://keith-wood.name/countdown.html Un accès FTP à votre domaine. Un éditeur de texte. 2. Copie des fichiers Jquery sur le serveur www : Copier les fichiers présents dans le package Jquery.Countdown comme ci dessous. *.css dans /prestashop/css/ *.js dans /prestashop/js/jquery/ 3. Edition du fichier product.tpl et ajout du MOD : Editer le fichier /prestashop/theme/$$Votre_Theme$$/product.tpl Rechercher la ligne : <p class="prodAttr">{l s='Reduced price!'}</p> <br class="clear" /> {/if} et la ligne : {if $packItems|@count} <p class="pack_price">{l s='instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p> <br class="clear" /> {/if} Ajouter le code suivant entre : {* ----------------------- MOD PROMOTION COUNTDOWN START ----------------------- *} {* Author : Fabian Osmond - [email protected] *} {* Date : July 2nd 2012 *} {* Enjoy this MOD for your favorite e-commerce script *} {* MOD Version : V.0.0.4 *} {* ----------------------------------------------------------------------------- *} {* Download the Jquery.Countdown : http://keith-wood.name/countdown.html *} {* ----------------------------------------------------------------------------- *} {* Tested on : PrestaShop V.1.4.8 *} {* Inspired modified and enhaced from : *} {* http://www.prestashop.com/forums/topic/62399-mod-reduction-price-countdown *} {* ----------------------------------------------------------------------------- *} {* 1 - Format local server time to english month. You can put additional language like spanish or italian etc.. *} {if ($product->specificPrice.to|date_format:'%B') == 'janvier' or ($product->specificPrice.to|date_format:'%B') == 'januar'} {assign var="month_counter" value="january"} {elseif ($product->specificPrice.to|date_format:'%B') == 'fevrier' or ($product->specificPrice.to|date_format:'%B') == 'februar'} {assign var="month_counter" value="february"} {elseif ($product->specificPrice.to|date_format:'%B') == 'mars' or ($product->specificPrice.to|date_format:'%B') == 'marz'} {assign var="month_counter" value="march"} {elseif ($product->specificPrice.to|date_format:'%B') == 'avril'} {assign var="month_counter" value="april"} {elseif ($product->specificPrice.to|date_format:'%B') == 'mai'} {assign var="month_counter" value="may"} {elseif ($product->specificPrice.to|date_format:'%B') == 'juin' or ($product->specificPrice.to|date_format:'%B') == 'juni'} {assign var="month_counter" value="june"} {elseif ($product->specificPrice.to|date_format:'%B') == 'juillet' or ($product->specificPrice.to|date_format:'%B') == 'juli'} {assign var="month_counter" value="july"} {elseif ($product->specificPrice.to|date_format:'%B') == 'aout'} {assign var="month_counter" value="august"} {elseif ($product->specificPrice.to|date_format:'%B') == 'septembre'} {assign var="month_counter" value="september"} {elseif ($product->specificPrice.to|date_format:'%B') == 'octobre' or ($product->specificPrice.to|date_format:'%B') == 'oktober'} {assign var="month_counter" value="october"} {elseif ($product->specificPrice.to|date_format:'%B') == 'novembre'} {assign var="month_counter" value="november"} {elseif ($product->specificPrice.to|date_format:'%B') == 'decembre' or ($product->specificPrice.to|date_format:'%B') == 'dezember'} {assign var="month_counter" value="december"} {else} {assign var="month_counter" value="{$product->specificPrice.to|date_format:'%B'}"} {/if} {* 2 - Check if product is right now in promotion *} {if ($product->specificPrice.reduction) AND ($product->specificPrice.to|date_format:'%Y-%m-%d %H:%M:%S' > $smarty.now|date_format:'%Y-%m-%d %H:%M:%S')} {* 3 - Call the CSS and main JS file *} <link rel="stylesheet" type="text/css" href="{$base_dir}css/jquery.countdown.css" /> {* 4 - Apply the JS and the correct JS language file for the countdown *} {if $lang_iso == 'en'} <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown.js"></script> {else} <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown.js"></script> <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown-{$lang_iso}.js"></script> {/if} {* 5 - Display the counter in the frontoffice *} <br><div align="left"><b>{l s='Discount price until'} :</b></div><br> <div id="reductioncountdown" style="overflow:auto;"></div> <script type="text/javascript"> $("#reductioncountdown").countdown({ldelim}until: new Date('{$month_counter}{$product->specificPrice.to|date_format:' %e, %Y %H:%M:%S'}'){rdelim}); {* 6 - End of the script *} </script> {/if} {* ------------------------ MOD PROMOTION COUNTDOWN END ------------------------ *} Enregistrez le document. 4. Traduction de langue : Rendez vous dans l'administration / Outils / Traduction. Dans "Traduction du Front Office" Cliquez sur le drapeau de votre langue. Traduisez les expression nécessaires (Famille: Product Expression). 5. Votre compteur est actif si dans l'administration du produit / prix vous opérer à un discount. SPECIAL REQUEST Je souhaite faire afficher le compteur dans product-list.tpl est ce que quelqu'un pourrait participer avec moi à cette evolution ? Idem pour l'affichage du compteur dans le bloc Promotion. Je recherche un module PAYBOX gratuit et sécurisé, votre aide sera la bienvenue en remerciement de ce petit MOD En esperant que ce MOD vous apportera toute l'aide nécessaire. Bonne continuation. Fabian Osmond Reduction_price_countdown_product.txt Edited July 2, 2012 by FABIAN (see edit history) 1 Link to comment Share on other sites More sharing options...
pdriss Posted July 2, 2012 Share Posted July 2, 2012 Salut, Merci pour le partage, ça à l'air sympa mais ça ne fonctionne pas sur presta 1.5 RC1. @+ pdriss Link to comment Share on other sites More sharing options...
FABIAN Posted July 2, 2012 Author Share Posted July 2, 2012 @pdriss : Normalement la version v0.0.4 devrait fonctionner Peux tu tester svp ? Link to comment Share on other sites More sharing options...
pdriss Posted July 2, 2012 Share Posted July 2, 2012 (edited) Je viens de tester, marche pas il est tard je regarde mieux demain... @+ pdriss j'ai une erreur dans firbug "$("#reductioncountdown").countdown is not a function" Edited July 3, 2012 by pdriss (see edit history) Link to comment Share on other sites More sharing options...
pdriss Posted July 3, 2012 Share Posted July 3, 2012 J'ai un doute... tu fait tes tests en local ? parce que chez moi la démo du site http://keith-wood.name/countdown.html ne fonctionne pas en local, mais fonctionne en ligne. Link to comment Share on other sites More sharing options...
gilou66 Posted July 21, 2012 Share Posted July 21, 2012 Bonjour Fabian, Un grand merci pour ce travail bien sympa. J'ai toutefois constaté un petit bug. Faisant des essais avec la date limite au mois d'août, ça ne fonctionnait pas...ce qui m'a fait cogiter un petit moment...jusqu'à ce que j'essaye avec les mois suivants. Et là miracle, ça fonctionne nickel ! donc le problème venait du mois d'août, qui s'écrit avec un accent circonflexe. Il faut donc ajouter cet accent sur la ligne {elseif ($product->specificPrice.to|date_format:'%B')=='aout'} Voilà pour ma petite contribution à cette super amélioration pour mon site Note : je suis en version 1.4 de prestashop, donc pour ceux qui voudrait en profiter avec cette version, ça fonctionne Link to comment Share on other sites More sharing options...
SCAMPAI Posted August 19, 2012 Share Posted August 19, 2012 Bonjour, Test sur la 1.5.0.15, fonctionne très bien. J'ai copié les fichiers jquery.countdown-*.js dans js/jquery. Pour le module Paybox, à part celui que l'on peut trouver sur le forum, ici, rien en vue pour le moment. Merci pour ce mod. Cdlt, Philippe Link to comment Share on other sites More sharing options...
vpresta Posted October 13, 2012 Share Posted October 13, 2012 MOD Version : V.0.0.3 / Compatible 1.5RC MOD Version : V.0.0.4 / Fix erreur dans l'attribution du mois. Bonjour à tous, Après quelques heures de travail et de recherche je suis heureux de vous faire profiter des fruits de mes résultats LES ETAPES Modification du mois serveur Français (ou autre) en anglais. (comme ci dessous exemple pour un seul mois). Ceçi est à l'origine de l'erreur NaN. {if ($product->specificPrice.to|date_format:'%B') == 'janvier' or ($product->specificPrice.to|date_format:'%B') == 'januar'} {assign var="month_counter" value="january"} {/if} Vérification que la promotion est toujours en cours à la seconde prête. Entre l'heure de paramétrage et l'heure serveur. {if ($product->specificPrice.reduction) AND ($product->specificPrice.to|date_format:'%Y-%m-%d %H:%M:%S' >= $smarty.now|date_format:'%Y-%m-%d %H:%M:%S')} ........ {/if} Paramétrage de l'affichage en correspondance avec la langue ISO utilisée par l'utilisateur lors de sa navigation. {if $lang_iso == 'en'} <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown.js"></script> {else} <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown.js"></script> <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown-{$lang_iso}.js"></script> {/if} LE RESULTAT Un compteur fonctionnel sur la dernière version de PRESTASHOP. La gestion multilingue (serveur & user). Un fonctionnement simple et automatique (pas de gestion d'un module tiers pour gérer les promotions, exploite les fonctionnalités natives de prestashop). >> VOIR LA PIECE JOINTE (capture.jpg) << 1. Les pré-requis : Package Jquery.Countdown : http://keith-wood.name/countdown.html Un accès FTP à votre domaine. Un éditeur de texte. 2. Copie des fichiers Jquery sur le serveur www : Copier les fichiers présents dans le package Jquery.Countdown comme ci dessous. *.css dans /prestashop/css/ *.js dans /prestashop/js/jquery/ 3. Edition du fichier product.tpl et ajout du MOD : Editer le fichier /prestashop/theme/$$Votre_Theme$$/product.tpl Rechercher la ligne : <p class="prodAttr">{l s='Reduced price!'}</p> <br class="clear" /> {/if} et la ligne : {if $packItems|@count} <p class="pack_price">{l s='instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p> <br class="clear" /> {/if} Ajouter le code suivant entre : {* ----------------------- MOD PROMOTION COUNTDOWN START ----------------------- *} {* Author : Fabian Osmond - [email protected] *} {* Date : July 2nd 2012 *} {* Enjoy this MOD for your favorite e-commerce script *} {* MOD Version : V.0.0.4 *} {* ----------------------------------------------------------------------------- *} {* Download the Jquery.Countdown : http://keith-wood.name/countdown.html *} {* ----------------------------------------------------------------------------- *} {* Tested on : PrestaShop V.1.4.8 *} {* Inspired modified and enhaced from : *} {* http://www.prestashop.com/forums/topic/62399-mod-reduction-price-countdown *} {* ----------------------------------------------------------------------------- *} {* 1 - Format local server time to english month. You can put additional language like spanish or italian etc.. *} {if ($product->specificPrice.to|date_format:'%B') == 'janvier' or ($product->specificPrice.to|date_format:'%B') == 'januar'} {assign var="month_counter" value="january"} {elseif ($product->specificPrice.to|date_format:'%B') == 'fevrier' or ($product->specificPrice.to|date_format:'%B') == 'februar'} {assign var="month_counter" value="february"} {elseif ($product->specificPrice.to|date_format:'%B') == 'mars' or ($product->specificPrice.to|date_format:'%B') == 'marz'} {assign var="month_counter" value="march"} {elseif ($product->specificPrice.to|date_format:'%B') == 'avril'} {assign var="month_counter" value="april"} {elseif ($product->specificPrice.to|date_format:'%B') == 'mai'} {assign var="month_counter" value="may"} {elseif ($product->specificPrice.to|date_format:'%B') == 'juin' or ($product->specificPrice.to|date_format:'%B') == 'juni'} {assign var="month_counter" value="june"} {elseif ($product->specificPrice.to|date_format:'%B') == 'juillet' or ($product->specificPrice.to|date_format:'%B') == 'juli'} {assign var="month_counter" value="july"} {elseif ($product->specificPrice.to|date_format:'%B') == 'aout'} {assign var="month_counter" value="august"} {elseif ($product->specificPrice.to|date_format:'%B') == 'septembre'} {assign var="month_counter" value="september"} {elseif ($product->specificPrice.to|date_format:'%B') == 'octobre' or ($product->specificPrice.to|date_format:'%B') == 'oktober'} {assign var="month_counter" value="october"} {elseif ($product->specificPrice.to|date_format:'%B') == 'novembre'} {assign var="month_counter" value="november"} {elseif ($product->specificPrice.to|date_format:'%B') == 'decembre' or ($product->specificPrice.to|date_format:'%B') == 'dezember'} {assign var="month_counter" value="december"} {else} {assign var="month_counter" value="{$product->specificPrice.to|date_format:'%B'}"} {/if} {* 2 - Check if product is right now in promotion *} {if ($product->specificPrice.reduction) AND ($product->specificPrice.to|date_format:'%Y-%m-%d %H:%M:%S' > $smarty.now|date_format:'%Y-%m-%d %H:%M:%S')} {* 3 - Call the CSS and main JS file *} <link rel="stylesheet" type="text/css" href="{$base_dir}css/jquery.countdown.css" /> {* 4 - Apply the JS and the correct JS language file for the countdown *} {if $lang_iso == 'en'} <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown.js"></script> {else} <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown.js"></script> <script type="text/javascript" src="{$base_dir}js/jquery/jquery.countdown-{$lang_iso}.js"></script> {/if} {* 5 - Display the counter in the frontoffice *} <br><div align="left"><b>{l s='Discount price until'} :</b></div><br> <div id="reductioncountdown" style="overflow:auto;"></div> <script type="text/javascript"> $("#reductioncountdown").countdown({ldelim}until: new Date('{$month_counter}{$product->specificPrice.to|date_format:' %e, %Y %H:%M:%S'}'){rdelim}); {* 6 - End of the script *} </script> {/if} {* ------------------------ MOD PROMOTION COUNTDOWN END ------------------------ *} Enregistrez le document. 4. Traduction de langue : Rendez vous dans l'administration / Outils / Traduction. Dans "Traduction du Front Office" Cliquez sur le drapeau de votre langue. Traduisez les expression nécessaires (Famille: Product Expression). 5. Votre compteur est actif si dans l'administration du produit / prix vous opérer à un discount. SPECIAL REQUEST Je souhaite faire afficher le compteur dans product-list.tpl est ce que quelqu'un pourrait participer avec moi à cette evolution ? Idem pour l'affichage du compteur dans le bloc Promotion. Je recherche un module PAYBOX gratuit et sécurisé, votre aide sera la bienvenue en remerciement de ce petit MOD En esperant que ce MOD vous apportera toute l'aide nécessaire. Bonne continuation. Fabian Osmond Hi, do you have the instruction in English? Sorry I can't read and understand France's language. Where can I download MOD V.0.0.4? Thank you! Link to comment Share on other sites More sharing options...
stephanie34 Posted October 17, 2012 Share Posted October 17, 2012 (edited) Je vais tester, et viendrais donner mes impressions merci Edited October 17, 2012 by stephanie34 (see edit history) Link to comment Share on other sites More sharing options...
stephanie34 Posted October 17, 2012 Share Posted October 17, 2012 Super cela fonctionne ! l'installation est rapide et claire. par contre je ne vois pas ou modifier les textes ? Je n'ai pas activé le multilingue, je voudrais juste changer la phrase "Discount price until" merci pour tout Link to comment Share on other sites More sharing options...
stephanie34 Posted October 19, 2012 Share Posted October 19, 2012 c'est bon j'ai trouvé ! pour info a la ligne 477 de product.tpl <br><div align="left"><b>{l s='Temps restant avant la fin de la vente'} :</b></div><br> Link to comment Share on other sites More sharing options...
miiidooo-19 Posted November 20, 2012 Share Posted November 20, 2012 Setepanie34 tu as essayé sur quel version ? y a quelqu'un qui a essayer sur la version 1.4.9 ? parce que moi j'ai essayé et ça marche pas aidez moi svp Link to comment Share on other sites More sharing options...
miiidooo-19 Posted December 4, 2012 Share Posted December 4, 2012 alors finalement ça marche pour moi, depuis novembre trankil sauf que là depuis decembre j'ai une erreur Nan ça vien de cette ligne {elseif ($product->specificPrice.to|date_format:'%B') == 'decembre' or ($product->specificPrice.to|date_format:'%B') == 'dezember'} {assign var="month_counter" value="december"} il trouve que la condition n'est pas correct du coup quand je fait un {($product->specificPrice.to|date_format:'%B')} pour afficher le résultat il m'affiche décembre ce qui est logique j'ai donc modifié la condition {elseif ($product->specificPrice.to|date_format:'%B') == 'décembre' or ($product->specificPrice.to|date_format:'%B') == 'dezember'} {assign var="month_counter" value="december"} mais toujour ça marche pas :s du coup j'ai utilisé le systme D pour ce mois j'ai assigné cache la valeur decembre à la variable month_counter sans passer par les conditions pour le moment ça marche mais une fois janvier est là faut que je remet tous comme avant quelqu'un a une solution plus propore a ce problème? {assign var="month_counter" value="december"} 1 Link to comment Share on other sites More sharing options...
stephanie34 Posted December 4, 2012 Share Posted December 4, 2012 j'ai la même erreur ! Link to comment Share on other sites More sharing options...
stephanie34 Posted December 4, 2012 Share Posted December 4, 2012 Tu dis que c'est la ligne {elseif ($product->specificPrice.to|date_format:'%B') == 'decembre' or ($product->specificPrice.to|date_format:'%B') == 'dezember'} {assign var="month_counter" value="december"} qui est en erreur, elle provient de quel fichier que je regarde de mon côté aussi, merci ! Link to comment Share on other sites More sharing options...
Cyrius91 Posted December 5, 2012 Share Posted December 5, 2012 Merci pour ce compte a rebour bien pratique. En 1.4.9 j'ai egalement le probleme d'affichage pour decembre qui affiche NaN pour l'heure minutes et secondes. La methode de contournement donné par est miiidooo-19 est fonctionnelle chez moi, merci aussi pour ton astuce Link to comment Share on other sites More sharing options...
Cyrius91 Posted December 5, 2012 Share Posted December 5, 2012 (edited) Chez moi ça marche en mettant ce code: {elseif ($product->specificPrice.to|date_format:'%B') == 'décembre' or ($product->specificPrice.to|date_format:'%B') == 'dezember'} {assign var="month_counter" value="december"} J'espere que ça sera de meme pour vous et merci a vous tous pour cet entraide. Edited December 5, 2012 by Cyrius91 (see edit history) Link to comment Share on other sites More sharing options...
loulou66 Posted January 31, 2013 Share Posted January 31, 2013 (edited) coucou j'ai résolu le problème en améliorant un module existant mais je déclare $month_counter dans le fichier php au lieu du tpl et je recupère le date format "%m" au lieu de date_format "%B" ce qui me donne le numéro du mois 1/2/3/.../12 ce qui est plus pratique car Multilingue apres j'assigne $month_counter suivant le numero 1=Jaunary 2=February etc... plus de problème avec les accents le module est la : http://www.prestasho...ost__p__1090423 @++ loulou66 Edited February 11, 2013 by loulou66 (see edit history) 1 Link to comment Share on other sites More sharing options...
nico476 Posted February 10, 2013 Share Posted February 10, 2013 Slt est ce que sa marche sur la 1.5.3? Link to comment Share on other sites More sharing options...
loulou66 Posted February 11, 2013 Share Posted February 11, 2013 coucou @ nico476 oui ça fonctionne en 1.5 tu peut soit prendre le module (voir post #18) ou adapter le 1er post avec les recommandations post #18 @++ loulou66 Link to comment Share on other sites More sharing options...
Recommended Posts