'); $("head").append( '' ); $("head").append( '' ); }; this.loadStyleBoxes = () => { $("head").append(''); }; this.npShortcode = () => { var pattern = /\[npProducts[^\]]*\]/g; // Wyrażenie regularne do wyszukiwania shortcode'ów "npProducts" z zmiennymi var html = document.documentElement.outerHTML; var wyniki = []; var dopasowanie; while ((dopasowanie = pattern.exec(html)) !== null) { var shortcode = dopasowanie[0]; var zmienne = {}; // Dodatkowe przetwarzanie, aby wyodrębnić zmienne z shortcode'a var zmiennaPattern = /(\w+)="([^"]*)"/g; var zmiennaDopasowanie; while ((zmiennaDopasowanie = zmiennaPattern.exec(shortcode)) !== null) { zmienne[zmiennaDopasowanie[1]] = zmiennaDopasowanie[2]; } wyniki.push(zmienne); } return wyniki; }; this.getProductsFromApi = () => { this.boxes.forEach((item, index) => { if (item?.ids !== undefined) { item.ids = item.ids.split(",").map((item) => { return parseInt(item, 10); }); } else { console.log("Nie zostało podane zadne ID do pobrania"); return false; } if (item?.elements !== undefined) { item.elements = item.elements.split(","); } else { console.log( "Nie zostało podane elementy do wyświetlenia w boxie #" + item.wrapper + ". Zostanie uzyty domyslny wyglad." ); } if (item.content == "products") { frontAPI.getProducts( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, ids: item.ids, } ); } else if (item.content == "categories") { frontAPI.getProductsFromCategory( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, id: item.ids, } ); } else if (item.content == "collection") { frontAPI.getProductsFromCollection( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, id: item.ids, } ); } else if (item.content == "loyalty_products") { frontAPI.getLoyaltyProducts( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, } ); } else if (item.content == "user_loyalty_products") { frontAPI.getLoyaltyProductsAvailableForUser( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, ids: item.ids, } ); } else { frontAPI.getProducts( (response) => { item.products = response.list; t.renderProducts(item); }, { urlParams: "?limit=" + this.productsLimit, ids: item.ids, } ); } }); }; this.generateGridProductMarkup = (product, settings) => { let productImage = true, productName = true, productPreview = true, productProducer = false, productDescription = false, priceString = "", price = true, priceNetto = false, promoTag = "", newTag = ""; if ( settings?.elements !== undefined && settings.elements.indexOf("image") > -1 ) { productImage = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("image") === -1 ) { productImage = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("name") > -1 ) { productName = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("name") === -1 ) { productName = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("preview") > -1 ) { productPreview = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("preview") === -1 ) { productPreview = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("producer") > -1 ) { productProducer = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("producer") === -1 ) { productProducer = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("description") > -1 ) { productDescription = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("description") === -1 ) { productDescription = false; } if (settings?.pricestring !== undefined) { priceString = settings.pricestring; } else if (settings?.elements === undefined) { priceString = ""; } if ( settings?.elements !== undefined && settings.elements.indexOf("netto") > -1 ) { priceNetto = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("netto") === -1 ) { priceNetto = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("price") > -1 ) { price = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("price") === -1 ) { price = false; } if (product.newProduct) { newTag = '
  • nowość
  • '; } if (product.price.gross.promo_float) { let discount = ((product.price.gross.base_float - product.price.gross.promo_float) / product.price.gross.base_float) * 100; discount = discount.toFixed(0); promoTag = '
  • rabat -' + discount + "%
  • "; } let productMarkup = $(`
    ${ productImage ? ` ${
					  product.name
					} ` : `` } ${ productName ? ` $ ` : `` } ${ productProducer && product.producer ? `
    Producent: $
    ` : `` } ${ productDescription && product.shortDescription ? `
    $

    ` : `` }
    ${ price ? `
    Cena$:

    $

    ${ product.price?.gross.promo_float ? `

    Cena regularna$: $

    Najniższa cena$: $
    ` : `` } ${ priceNetto ? `

    Cena netto$: $

    ` : `` }
    ` : `` } ${ product?.can_buy ? `
    szt.
    ${ productPreview ? ` zobacz więcej ` : `` }
    ` : `
    ${ productPreview ? ` zobacz więcej ` : `` }
    ` }
    ${newTag || promoTag ? `` : ``}
    `); return productMarkup; }; this.generateSliderProductMarkup = (product, settings) => { let productImage = true, productName = true, productPreview = true, productProducer = false, priceNetto = false, productDescription = false, priceString = "", price = true, promoTag = "", newTag = ""; if ( settings?.elements !== undefined && settings.elements.indexOf("image") > -1 ) { productImage = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("image") === -1 ) { productImage = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("name") > -1 ) { productName = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("name") === -1 ) { productName = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("preview") > -1 ) { productPreview = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("preview") === -1 ) { productPreview = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("producer") > -1 ) { productProducer = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("producer") === -1 ) { productProducer = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("netto") > -1 ) { priceNetto = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("netto") === -1 ) { priceNetto = false; } if ( settings?.elements !== undefined && settings.elements.indexOf("price") > -1 ) { price = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("price") === -1 ) { price = false; } if (product.newProduct) { newTag = '
  • nowość
  • '; } if ( settings?.elements !== undefined && settings.elements.indexOf("description") > -1 ) { productDescription = true; } else if ( settings?.elements !== undefined && settings.elements.indexOf("description") === -1 ) { productDescription = false; } if (settings?.pricestring !== undefined) { priceString = settings.pricestring; } else if (settings?.pricestring === undefined) { priceString = ""; } if (product.price.gross.promo_float) { let discount = ((product.price.gross.base_float - product.price.gross.promo_float) / product.price.gross.base_float) * 100; discount = discount.toFixed(0); promoTag = '
  • rabat -' + discount + "%
  • "; } let productMarkup = $(`
    ${ productImage ? ` ${
				  product.name
				} ` : `` } ${ productName ? `
    $
    ` : `` } ${ productProducer && product.producer ? `
    Producent: $
    ` : `` } ${ productDescription && product.shortDescription ? `
    $

    ` : `` }
    ${ price ? `

    $${ product.price.gross.final }

    ${ product.price?.gross.promo_float ? `

    Cena regularna$: $

    Najniższa cena$: $
    ` : `` } ${ priceNetto ? `

    $$

    Cena regularna$: $

    Najniższa cena$: $
    ` : `` } ` : `` }
    ${ product.can_buy ? `
    szt.
    ` : `
    ` } ${ productPreview ? ` zobacz więcej ` : `` } ${ newTag || promoTag ? `` : `` }
    `); return productMarkup; }; this.renderProducts = (item) => { let wrapperItem = $("#" + item.wrapper); wrapperItem.empty().addClass("loading").removeClass("resetcss"); if (!wrapperItem.hasClass("box")) { wrapperItem.addClass("box"); } if (!wrapperItem.hasClass("box_custom")) { wrapperItem.addClass("box_custom"); } if (item?.name !== undefined) { const newHeader = $(`
    $
    `); wrapperItem.append(newHeader); } if (item?.view == "grid") { let newGridInnerbox = $(`
    `); wrapperItem.addClass("np-products").addClass("np-grid-products"); item.products.forEach((product, index) => { newGridInnerbox.append(t.generateSliderProductMarkup(product, item)); }); wrapperItem.append(newGridInnerbox); } else if (item?.view == "slider") { let newSliderInnerbox = $(`
    `); let newSliderWrapper = $(` `); wrapperItem.addClass("np-products"); item.products.forEach((product, index) => { newSliderWrapper.append(t.generateSliderProductMarkup(product, item)); }); newSliderInnerbox.append(newSliderWrapper); wrapperItem.append(newSliderInnerbox); } else { let newGridInnerbox = $(`
    `); wrapperItem.addClass("np-products").addClass("np-grid-products"); item.products.forEach((product, index) => { newGridInnerbox.append(t.generateSliderProductMarkup(product, item)); }); wrapperItem.append(newGridInnerbox); } wrapperItem.removeClass("loading"); if (item?.view == "slider") { let responsiveSlider = {}; if ($("#" + item.wrapper).closest(".s-grid-12").length > 0) { responsiveSlider = { 480: { items: 2, }, 768: { items: 3, }, 989: { items: 4, }, }; } else if ($("#" + item.wrapper).closest(".s-grid-9").length > 0) { responsiveSlider = { 480: { items: 2, }, 768: { items: 2, }, 989: { items: 3, }, }; } else if ($("#" + item.wrapper).closest(".s-grid-6").length > 0) { responsiveSlider = { 480: { items: 2, }, 768: { items: 2, }, 989: { items: 2, }, }; } else if ($("#" + item.wrapper).closest(".s-grid-3").length > 0) { esponsiveSlider = { 480: { items: 1, }, 768: { items: 1, }, 989: { items: 1, }, }; } else { responsiveSlider = { 480: { items: 2, }, 768: { items: 3, }, 989: { items: 4, }, }; } if (typeof $().owlCarousel !== 'function') { window._$npProductBoxTimeout = window._$npProductBoxTimeout ? window._$npProductBoxTimeout+1 : 1 if (window._$npProductBoxTimeout > 5) { return; } setTimeout(()=>{ this.renderProducts(item) },300) return; } window._$npProductBoxTimeout = 0; $("#" + item.wrapper + " .owl-carousel").owlCarousel({ loop: true, items: 1, dots: false, nav: true, margin: 5, responsive: responsiveSlider, }); } Shop.AddToCart.include({ options: { selectors: { form: "#" + item.wrapper + " .basket form[action], #" + item.wrapper + " form.basket[action]", }, }, }); var addtobasket = new Shop.AddToCart(); var availability = new Shop.ProductAvailability(); if (item.elements == undefined || item.elements?.indexOf("preview") > -1) { Shop.QuickView.include({ options: { selectors: { button: "#" + item.wrapper + " .quickview", }, }, }); var quickview = new Shop.QuickView(); } }; this.npFindShortcodes(); } document.addEventListener("DOMContentLoaded", function () { const npProductsBox = new npProductBox(); });
    Foo 0
    Foo

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Komentarze do wpisu (0)

    do góry
    Sklep jest w trybie podglądu
    Pokaż pełną wersję strony
    Sklep internetowy Shoper.pl