Jump to content

javascript theme child 1.7


Recommended Posts

Bonjour,

je voudrais surcharger le javascript de la page product (les deux petits boutons, bootstrap-touchspin-up et bootstrap-touchspin-down)

Autant sur la version 1.6, je voyais où chercher, autant là, comment savoir quel script est appelé, et comment modifier ce dernier avec un theme enfant ?

 

merci d'avance de votre aide.

Link to comment
Share on other sites

Bonjour,

J'ai modifier les fichiers ainsi pour augmenter la quantité en fonction du "pas" et du "max" :

Product.js :

prestashop.on('updatedProduct', function (event) {
        createInputFile();
        createToolTip();
        coverImage();
        if (event && event.product_minimal_quantity) {
            const minimalProductQuantity = parseInt(event.product_minimal_quantity, 10);
            const quantityInputSelector = '#quantity_wanted';
            let quantityInput = $(quantityInputSelector);
            let quantityMax = document.getElementById('Pmax').value;

            // @see http://www.virtuosoft.eu/code/bootstrap-touchspin/ about Bootstrap TouchSpin
            quantityInput.trigger('touchspin.updatesettings', {min: minimalProductQuantity,step: minimalProductQuantity,max: quantityMax});
          
          function createProductSpin() {
        let quantityInput = $('#quantity_wanted');
        quantityInput.TouchSpin({
            verticalbuttons: true,
            verticalupclass: 'fa fa-angle-up touchspin-up',
            verticaldownclass: 'fa fa-angle-down touchspin-down',
            buttondown_class: 'btn btn-touchspin js-touchspin',
            buttonup_class: 'btn btn-touchspin js-touchspin',
            min: parseInt(quantityInput.attr('min'), 10),
            max: parseInt(quantityInput.attr('max'), 10),
            step: parseInt(quantityInput.attr('step'), 10)
        });

 

product-add-to-cart.tpl

<div class="qty">
                        <input
                                type="text"
                                name="qty"
                                id="quantity_wanted"
                                value="{$product.quantity_wanted}"
                                class="input-group"
                                min="{$product.minimal_quantity}"
                                step="{$product.minimal_quantity}"
                                max="{$product.quantity}"
                        >
                    </div>

 Sur la page produit, ca marche.

Maintenant, je veux aussi que ca fonctionne tout autant dans le panier :

Cart.js :

function createSpin()
{
  $.each($(spinnerSelector), function (index, spinner) {
     $(spinner).TouchSpin({
       verticalbuttons: true,
       verticalupclass: 'fa fa-angle-up touchspin-up',
       verticaldownclass: 'fa fa-angle-down touchspin-down',
       buttondown_class: 'btn btn-touchspin  js-touchspin js-increase-product-quantity',
       buttonup_class: 'btn btn-touchspin js-decrease-product-quantity',
       min: parseInt($(spinner).attr('min'), 10),
       max: parseInt($(spinner).attr('max'), 10),
       step: parseInt($(spinner).attr('step'), 10)
    });
  });

  CheckUpdateQuantityOperations.switchErrorStat();
}

et cart-detailled-product-line.tpl :

<div class="col col-auto col-md qty">
                {if isset($product.is_gift) && $product.is_gift}
                    <span class="gift-quantity">{$product.quantity}</span>
                {else}
                    <input
                            class="js-cart-line-product-quantity"
                            data-down-url="{$product.down_quantity_url}"
                            data-up-url="{$product.up_quantity_url}"
                            data-update-url="{$product.update_quantity_url}"
                            data-product-id="{$product.id_product}"
                            type="text"
                            value="{$product.quantity}"
                            name="product-quantity-spin"
                            min="{$product.minimal_quantity}"
                            step="{$product.minimal_quantity}"
                            max="{$product.quantity_available}"
                    />
                {/if}
            </div>

 Mais là il y a de l'ajax qui passe par là et qui semble surcharger le spin et qui ajoute +1 tout simplement, mais je n'arrive pas à trouver ...:/

Merci d'avance de votre aide.

Link to comment
Share on other sites

  • 1 year later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...