mjan Posted December 11, 2014 Share Posted December 11, 2014 (edited) Bonjour, Je souhaite avoir votre avis. Dans le post suivant http://www.prestashop.com/forums/topic/243693-age-verification-in-checkout/ L'auteur donne une solution pour la vérification de l'âge dans le tunnel de commande. Cela fonctionne bien qu'il y ait un petit bug, mais ce que je souhaite savoir, c'est comment rendre le fait de cocher obligatoire car dans sa solution, la personne peut passer à l'étape suivante sans cocher. Merci pour votre aide Edited December 15, 2014 by mjan (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted December 11, 2014 Share Posted December 11, 2014 Oui et c'est normal car il fait une grossière erreur. On ne doit pas donner les mêmes identifiants à des checkboxes différents. Du coup le js qui vérifie si la checkbox cgv est cochée donnera toujours vrai dès que l'une des 2 est cochée. Il faut donc donner un id différent à cette checkbox : {if $conditions AND $cms_id} <h3 class="condition_title">{l s='Terms of service & Age verification'}</h3> <p class="checkbox"> <input type="checkbox" name="age" id="age" value="1" /> <label for="age">{l s='I confirm that I am aged 18 or over.'}</label></br> <input type="checkbox" name="cgv" id="cgv" value="1" {if $checkedTOS}checked="checked"{/if} /> <label for="cgv">{l s='I agree to the Terms of Service and will adhere to them unconditionally.'}</label> <a href="{$link_conditions}" class="iframe">{l s='(Read Terms of Service)'}</a> </p> <script type="text/javascript">$('a.iframe').fancybox();</script> {/if} et modifier le order-opc.js en conséquence function updatePaymentMethodsDisplay() { var checked = ''; if ($('#cgv:checked').length !== 0 && $('#age:checked').length !== 0) checked = 1; else checked = 0; Si vraiment vous voulez pousser le truc (au cas où un petit malin aurait désactivé js) il faut éditer orderController.php et orderOpcController.php Link to comment Share on other sites More sharing options...
mjan Posted December 11, 2014 Author Share Posted December 11, 2014 Merci. Cela bug plus mais la case à cocher : <label for="age">{l s='I confirm that I am aged 18 or over.'}</label></br> n'est toujours pas obligatoire pourtant j'ai modifié order-carrier.tpl et order-opc.js comme indiqué. en tout cas merci de votre aide précieuse. Link to comment Share on other sites More sharing options...
Eolia Posted December 11, 2014 Share Posted December 11, 2014 Vous êtes en processus 1 ou 5 étapes ? Link to comment Share on other sites More sharing options...
mjan Posted December 11, 2014 Author Share Posted December 11, 2014 (edited) en processus 4 en 5 étapes Edited December 11, 2014 by mjan (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted December 11, 2014 Share Posted December 11, 2014 (edited) alors remplacez tout le bloc ci-dessus dans order-carrier.tpl par: {if $conditions AND $cms_id} <h3 class="condition_title">{l s='Terms of service'}</h3> <p class="checkbox"> <input type="checkbox" name="age" id="age" value="1" /> <label for="age">{l s='I confirm that I am aged 18 or over.'}</label></br> <input type="checkbox" name="cgv" id="cgv" value="1" {if $checkedTOS}checked="checked"{/if} autocomplete="off"/> <label for="cgv">{l s='I agree to the terms of service and will adhere to them unconditionally.'}</label> <a href="{$link_conditions}" class="iframe">{l s='(Read the Terms of Service)'}</a> </p> <script type="text/javascript"> $(document).ready(function() { $("input[name = 'processCarrier']").click(function(){ if($('#age:checked').length == 0) alert("{l s='You must check age validation first.' js=1}"); }); $("a.iframe").fancybox({ 'type' : 'iframe', 'width':600, 'height':600 }); }); </script> {/if} Et videz votre cache navigateur (ctrl+f5) Et si vous voulez activer la vérification en processus 1 étape remplacez le bloc vers la ligne 746 de order-opc.js par: // Term Of Service (TOS) $('#cgv').click(function() { if($('#age:checked').length !== 0) updatePaymentMethodsDisplay(); else alert('Veuillez valider votre majorité.'); }); Edited December 11, 2014 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
mjan Posted December 11, 2014 Author Share Posted December 11, 2014 Merci cela fonctionne parfaitement. Une dernière faveur : comment mettre ce lien en blank page afin que cela s'ouvre sur un nouvel onglet ou une nouvelle fenêtre. Merci <a href="{$link_conditions}" class="iframe">{l s='(Read the Terms of Service)'}</a> Link to comment Share on other sites More sharing options...
Eolia Posted December 11, 2014 Share Posted December 11, 2014 <a href="{$link_conditions}" target=_blank>{l s='(Read the Terms of Service)'}</a> Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 Bonsoir, Ben au final je réouvre la post car j'ai un bug : Technical error : Details:Error thrown: [object Object]Text status: error Link to comment Share on other sites More sharing options...
Eolia Posted December 12, 2014 Share Posted December 12, 2014 C'est un peu léger comme description. Erreur à quel moment, sur quel page, en faisant quoi ? Apparemment c'est une erreur ajax, que dit la console (f12) au niveau des retours xhr ? Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 Bonsoir, Ca se complique. L'erreur provient à plusieurs moment soit en rechargeant la page, soit en cliquant sur un menu ou lorsque l'on fait appel au champ de recherche. Voici les messages de la console <script type=""text/javascript"">/* "+""+name_detail+" ajouté auVotre panier";$.ambiance({message:string_info,type:"success",title:title_add_to_cart,timeout:7});}" class="errorSourceCode "><link href="http://jcorporate.fr/themes/pt_winestore/cache/v_529_d4128086a725f5d... 8-auxey...ne.html (ligne 18, col. 16) ReferenceError: $ is not defined {IS={itemClass:$.trim(arrItem)[spam-filter]} 8-auxey...ne.html (ligne 30, col. 8) ReferenceError: jQuery is not defined (function(e){var t=window.EYE=function(){var t={init:[]};return{init:function(){... eye.min.js (ligne 1, col. 1) ReferenceError: jQuery is not defined })(jQuery); utils.js (ligne 252) ReferenceError: jQuery is not defined jQuery(document).ready(function($) { setconfig.js (ligne 68) ReferenceError: $ is not defined $.cookie("cs_mobile_detect", ""); 8-auxey...ne.html (ligne 37, col. 2) ReferenceError: $ is not defined $(window).load( </script> ReferenceError: $ is not defined ou encore ReferenceError: jQuery is not defined Link to comment Share on other sites More sharing options...
Eolia Posted December 12, 2014 Share Posted December 12, 2014 Cela veut dire que sur les pages concernées, jquery n'est pas chargé. Je ne vois pas le rapport avec les modifications qui ont été faites. Vous avez du modifier quelque chose depuis hier. Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 non, je sais pas vraiment hacker sauf avec de l'aide mais j'ai rien modifié depuis hier et j'ai suivi vos instructions. Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 En fait avec l'ancien code, cela faisait déjà ça. Si, je l'enlevais alors le message d'erreur disparaîssait. Link to comment Share on other sites More sharing options...
Eolia Posted December 12, 2014 Share Posted December 12, 2014 Il y a un truc que je ne pige pas... Les erreurs que vous me décrivez n'interviennent pas sur la page order (celle qui a été modifiée) J'ai appliqué exactement les mêmes modifs sur une 1.5 et une 1.6 sans avoir ce problème. Sur quelle version êtes-vous et à partir de quel moment ca a buggué ? (vu que cela fonctionnait hier) Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 En fait ça a bugué peu de temps après hier, après les modifications, mais je n'ai pas eu le temps de revenir sur le forum. Je suis sur 1.6.9 et j'ai rien modifié depuis. J'ai juste installé un module je l'enlève pour voir Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 par contre je viens d'essayer à l'instant, cela le fait systématiquent dans le champ de recherche ajax de la boutique Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 Comme indication que je peux donner, c'est qu'il y a une semaine j'ai modifié du code pour mettre la date de naissance obligatoire avec ce post http://www.prestashop.com/forums/topic/246936-date-de-naissance-obligatoire-a-linscription/?hl=%2Bdate+%2Bnaissance&do=findComment&comment=1566828 peut - être que cela fait conflit ? Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 (edited) C'est étrange parce que lorsque je teste sur IE le bug a priori n'apparaît pas. sur chrome à priori non plus aucun soucis Edited December 12, 2014 by mjan (see edit history) Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 (edited) non en fait ça le fait toujours Edited December 12, 2014 by mjan (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted December 12, 2014 Share Posted December 12, 2014 Si ca ne le fait pas sur d'autres navigateurs cela ressemble à un problème de cache navigateur Faites un ctrl + f5 et retentez Link to comment Share on other sites More sharing options...
mjan Posted December 12, 2014 Author Share Posted December 12, 2014 je l'ai fait et c'est très aléatoire. Ca part et ca revient Link to comment Share on other sites More sharing options...
mjan Posted December 15, 2014 Author Share Posted December 15, 2014 Résolu, en fait je viens de contacter le fabricant du template qui me dit que c'est le module ajax de recherche : qu'il bug pas mais lorsque l'on écrit trop vite dans le champ de recherche alors il y a ce message d'erreur car le module n'a pas le temps de chercher. Bizarre mais bon Link to comment Share on other sites More sharing options...
Eolia Posted December 15, 2014 Share Posted December 15, 2014 ca se modifie ça^^, il a dû mettre un event sur le onkeyup ou un truc du genre... Soit ajouter une tempo, soit modifier les conditions avant l'envoi de la requête. Link to comment Share on other sites More sharing options...
mjan Posted December 15, 2014 Author Share Posted December 15, 2014 Je vais voir car là cela ne le fait plus, peut-être a-t-il modifié quelqu chose sinon je m'en retournerai vers lui. Merci encore de toute ton aide. 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