Dedra Posted January 4, 2013 Share Posted January 4, 2013 (edited) Bonjour à tous, Je suis en plein développement d'un module qui permet l'ajout de produit dans le panier. Cependant si on tente d'ajouter une quantité invalide (plus en stock, quantité minimal non respectée..) une alert javascript prévient l'utilisateur du problème. Serait-il possible de récupérer cette alert javascript pour afficher le message de celle-ci dans un encadré de type <div class=error></div> (comme lors de l’inscription d’un utilisateur) merci à vous. ps:j'ai remarqué que l'ajout d'un produit hors stock à partir du catalogue d'un prestashop non modifié lance un alert javascript également... quelqu'un aurait-il réussi à capter ces alert, pour les remplacer par un message plus "propre"... Edited January 16, 2013 by Dedra (see edit history) Link to comment Share on other sites More sharing options...
Dedra Posted January 7, 2013 Author Share Posted January 7, 2013 je cherche, mais ne trouve pas de solution. Personne n'a une idée ou piste? Link to comment Share on other sites More sharing options...
Dedra Posted January 16, 2013 Author Share Posted January 16, 2013 (edited) J'ai résolu, ce petit probleme: dans ajax-cart.js: ajoutez: if (jsonData.hasError) { var errors = ''; for(error in jsonData.errors) //IE6 bug fix if(error != 'indexOf') errors += jsonData.errors[error] + "\n"; if (addedFromProductPage) $('body#product p#add_to_cart input').removeAttr('disabled').addClass('exclusive').removeClass('exclusive_disabled'); else $('.ajax_add_to_cart_button').removeAttr('disabled'); $('#'+idProduct).show(); $('#'+idProduct).html('<div class="arrow"><div class="arrow_overlay"></div></div>'+errors); $('#'+idProduct).css( 'cursor', 'pointer' ); setTimeout(function() { $('#'+idProduct).html(''); $('#'+idProduct).hide(); },5000); $('#'+idProduct).click(function(){ $(this).hide(); }); } aprés la ligne (+- 227): // Check if the block cart is activated for the animation if (cartBlockOffset != undefined && $picture.size()) { resultat: ... // Check if the block cart is activated for the animation if (cartBlockOffset != undefined && $picture.size()) { if (jsonData.hasError) { var errors = ''; for(error in jsonData.errors) //IE6 bug fix if(error != 'indexOf') errors += jsonData.errors[error] + "\n"; if (addedFromProductPage) $('body#product p#add_to_cart input').removeAttr('disabled').addClass('exclusive').removeClass('exclusive_disabled'); else $('.ajax_add_to_cart_button').removeAttr('disabled'); $('#'+idProduct).show(); $('#'+idProduct).html('<div class="arrow"><div class="arrow_overlay"></div></div>'+errors); $('#'+idProduct).css( 'cursor', 'pointer' ); setTimeout(function() { $('#'+idProduct).html(''); $('#'+idProduct).hide(); },5000); $('#'+idProduct).click(function(){ $(this).hide(); }); } else { $picture.appendTo('body'); $picture.css({ 'position': 'absolute', 'top': $picture.css('top'), 'left': $picture.css('left'), 'z-index': 4242 }) .animate({ 'width': $element.attr('width')*0.66, 'height': $element.attr('height')*0.66, 'opacity': 0.2, 'top': cartBlockOffset.top + 30, 'left': cartBlockOffset.left + 15 }, 1000) .fadeOut(100, function() { ajaxCart.updateCartInformation(jsonData, addedFromProductPage); }); } } else ajaxCart.updateCartInformation(jsonData, addedFromProductPage); ... Dans votre page tpl (product-list.tpl ici) ajoutez: <div class="alert"id="{$product.id_product|escape:'htmlall':'UTF-8'}"></div> ajoutez la div ou vous voulez que l'erreur apparaisse.. pour finir un peu de css pour mettre en forme l'erreur (à modifier pour adapter à votre site): .alert{ width:137px; display:none; position:absolute; padding:10px; border:1px solid #990000; background:#ffcccc; color: #645343; font-size: 12px; font-weight: 700; line-height: 16px; bottom:317px; filter: alpha(opacity=80); -moz-opacity: 0.8; -khtml-opacity: 0.8; opacity: 0.8; } .arrow { position: absolute; width: 0px; height: 0px; bottom: -15px; right: 42px; border-top: 15px solid #990000; border-right: 15px solid transparent; border-left: 15px solid transparent; } .arrow_overlay { top: -15px; left: -13px; border-top: 13px solid #ffcccc; border-right: 13px solid transparent; border-left: 13px solid transparent; position:absolute; } Le resultat (ci-joint) de ces modifs va afficher une boite de dialoque rouge transparente (durant 4 secondes ou jusqu'a ce qu'on clique sur celle-ci) au dessu du champ contenant la quantité du produit à ajouter au panier. j'éspere que ca aidera certains! ps: la modif peut fonctionner sur toutes les pages utilisant le ajax-cart, il faudra cependant effectuer quelques modifications. Edited January 16, 2013 by Dedra (see edit history) 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