guillaumeg33 Posted July 16, 2010 Share Posted July 16, 2010 Bonjour,J'aimerais rajouter une case "Je certifie avoir plus de 16ans" qui aurais le même comportement que la case "J'ai lu les conditions générales..." et qui empêche de passer a l'étape suivante sans quelle soi cocher.J'ai déjà tenté de modifier le fichier "order-carrier.tpl" sans succès.Merci de votre aide par avance. Link to comment Share on other sites More sharing options...
eltitos Posted July 16, 2010 Share Posted July 16, 2010 Voici une modif possible, les deux checkbox ont le meme message d'avertissement ( modifiable) ajouter au order-carrier.tpl apres le premier {if $conditions} {if $conditions} {l s='Texte Verification age..en anglais'} <input type="checkbox" name="age" id="age" value="1" {if $checkedTOS}checked="checked"{/if} /> {l s='Texte de l'age minimum...en anglais'} {/if} fichier conditions.js : function acceptCGV(msg) { if ($('#cgv').length && !$('input#cgv:checked').length) { alert(msg); return false; } else if ($('#age').length && !$('input#age:checked').length) { alert(msg); return false; } else return true; } Pour modifier le message d'avertissement et traduire les nouvelles phrases, il faut aller dans le back office-> translation -> Front office , Section order-carrier. Link to comment Share on other sites More sharing options...
guillaumeg33 Posted July 16, 2010 Author Share Posted July 16, 2010 En faite en allant dans traduction j'ai trouver les conditions de vente et j'ai ajouter "J'ai lu les conditions générales de vente, j'y adhère sans réserves et je certifie avoir 16 ans ou plus." Mais merci quand même parce que c'est en me parlant de traduction que j'y est penser et comme ça il y a qu'une seul case a cocher. Mais bon ça pourra servir a d'autres ou pour moi a autre chose. ;-) Link to comment Share on other sites More sharing options...
MonVinDirect Posted November 26, 2013 Share Posted November 26, 2013 (edited) Pratique et simple à mettre en place. Merci Eltitos Pour version 1.5, il n'existe plus de fichier conditions.js Il suffit de modifier directement le script à l'intérieur du template: order-carrier.tpl order-carrier.tpl (thême de base) var msg = "{l s='You must agree to the terms of service before continuing.' js=1}"; var msg2 = "{l s='La vente de nos produits est interdite aux mineurs.' js=1}"; {literal} function acceptCGV() { if ($('#cgv').length && !$('input#cgv:checked').length) { alert(msg); return false; } else if ($('#major').length && !$('input#major:checked').length) { alert(msg2); return false; } else return true; } {/literal} order-carrier.tpl (thême de base) <p class="checkbox"> <input type="checkbox" name="major" id="major" value="1" {if $checkedTOS}checked="checked"{/if} autocomplete="off"/> <label for="major">{l s='Je certifie être agé de plus de 18 ans.'}</label> </p> Edited November 26, 2013 by MonVinDirect (see edit history) Link to comment Share on other sites More sharing options...
zone-S Posted September 1, 2015 Share Posted September 1, 2015 Bonjour Désolé de relancer le sujet mais j'ai effectué la modification pour la 1.6 la checkbox apparaît bien mais qu'on la coche ou pas on peut passer commande pouvez-vous faire la mise à jour pour la 1.6 ? Merci d'avance Link to comment Share on other sites More sharing options...
laurent54 Posted September 1, 2015 Share Posted September 1, 2015 Bonsoir, Pour la 1.6 le fichier est dans order-carrier.js (JS du thème) Par contre une simple vérif en JS est toujours contournable C'est d'ailleurs prévu côté serveur aussi sur le orderController donc à adapter aussi if ($is_advanced_payment_api === false && Configuration::get('PS_CONDITIONS') && (!Validate::isBool($cgv) || $cgv == false)) Tools::redirect('index.php?controller=order&step=2'); Link to comment Share on other sites More sharing options...
zone-S Posted December 21, 2015 Share Posted December 21, 2015 Désolé pour ma réponse un peu tardive je tiens d’abord à vous remercier pour votre réponse par contre je n'ai pas tout compris (je nage un peu dans les scripts ) j'utilise cette fonction pour mes départs en vacances afin d'informer mes clients de la date de reprise des expeditions je suis sur une version 1.6.1.0 voila ce que j'ai modifié: dans le fichier (order-carrier.tpl) lignes à modifier {if isset($override_tos_display) && $override_tos_display} {$override_tos_display} {else} <div class="box"> <p class="checkbox"> <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|escape:'html':'UTF-8'}" class="iframe" rel="nofollow">{l s='(Read the Terms of Service)'}</a> </p> </div> {/if} {if $conditions} {addJsDefL name=msg_order_carrier}{l s='You must agree to the terms of service before continuing.' js=1}{/addJsDefL} {/if} Ce que j'ai modifié: {if isset($override_tos_display) && $override_tos_display} {$override_tos_display} {else} <div class="box"> <p class="checkbox"> <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|escape:'html':'UTF-8'}" class="iframe" rel="nofollow">{l s='(Read the Terms of Service)'}</a> </p> </br> <p class="checkbox"> <input type="checkbox" name="perso" id="perso" value="1" {if $checkedTOS}checked="checked"{/if} /> <label for="perso">{l s='Ma Condition à cliquer'}</label> </p> </div> {/if} {if $conditions} {addJsDefL name=msg_order_carrier}{l s='You must agree to the terms of service before continuing.' js=1}{/addJsDefL} {addJsDefL name=msg_perso}{l s='Mon Alerte Personnalisée.' js=1}{/addJsDefL} {/if} Et pour le fichier order-carrier.js Lignes à modifier: function acceptCGV() { if (typeof msg_order_carrier != 'undefined' && $('#cgv').length && !$('input#cgv:checked').length) { if (!!$.prototype.fancybox) $.fancybox.open([ { type: 'inline', autoScale: true, minHeight: 30, content: '<p class="fancybox-error">' + msg_order_carrier + '</p>' }], { padding: 0 }); else alert(msg_order_carrier); } else return true; return false; } Ce que j'ai modifié: function acceptCGV() { if (typeof msg_order_carrier != 'undefined' && $('#cgv').length && !$('input#cgv:checked').length) { if (!!$.prototype.fancybox) $.fancybox.open([ { type: 'inline', autoScale: true, minHeight: 30, content: '<p class="fancybox-error">' + msg_order_carrier + '</p>' }], { padding: 0 }); else alert(msg_order_carrier); } else if (typeof msg_order_carrier != 'undefined' && $('#perso').length && !$('input#perso:checked').length) { if (!!$.prototype.fancybox) $.fancybox.open([ { type: 'inline', autoScale: true, minHeight: 30, content: '<p class="fancybox-error">' + msg_perso + '</p>' }], { padding: 0 }); else alert(msg_perso); } else return true; return false; } Voila toute à l'air de fonctionner correctement cependant je ne suis pas certain que la modification du code order-carrier.js soit correcte pouvez-vous me confirmer cela Merci Christophe 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