• Fotobatohy
  • Need Help?
    +420 228 811 811
    Mo-Fri: 9AM – 5PM CET
  • My account
  • is empty
    for 0 Kč
 Filtry
  • Price
    0,-
      
    0,-
  • Manufacturer
Platba
Přeprava
  • Jak vybrat fotobatohJak vybrat fotobatoh
  • Kufry a placovkyKufry a placovky
  • Jak vybrat PolaroidJak vybrat Polaroid
  • Zimní výbavaZimní výbava

Optické vybavení

Sort
     
    We use cookies for the proper functioning of our website and its functions. With the help of cookies, we also, for example, remember your preferred language, increase the relevance of the displayed ads for you, calculate the number of visits to the site and remember your settings made on the site.
    function syncPiecesAndDeliveryToPava(scope) { // scope = dokument / konkrétní produkt / konkrétní karta const containers = scope.querySelectorAll('#product_list > li.p_cart_block, .p_detail_right, body'); // Helper: vytáhni datum z .delivery-estimate (např. "Obdržíte do 20.01") function extractDateText(deliveryEl) { if (!deliveryEl) return ''; const t = (deliveryEl.textContent || '').trim(); const m = t.match(/(\d{2}\.\d{2})/); return m ? m[1] : ''; } // Helper: vytáhni kusy z textu dostupnosti ("Skladem 1 ks" / "Centrální sklad 8 ks") function extractPiecesFromAvailabilityText(text) { const t = (text || '').replace(/\s+/g, ' ').trim(); const m = t.match(/(\d+)\s*ks/i); return m ? m[1] : ''; } // Pro každý produkt/kartu zkus najít zdroje a cíle uvnitř const productRoots = scope.querySelectorAll('#product_list > li.p_cart_block, .p_detail_right'); productRoots.forEach(root => { const delivery = root.querySelector('.delivery-estimate'); const deliveryDDMM = extractDateText(delivery); if (!deliveryDDMM) return; // když není datum, nic neduplikuj // Zdroje dostupnosti (detail i výpis) const availabilityEl = root.querySelector('.p_detail_availability [data-variant="availability"]') || root.querySelector('.p_block .p_g.p_action') || root.querySelector('.p_g[data-variant="availability"]') || root.querySelector('.p_g.p_action'); const pieces = extractPiecesFromAvailabilityText(availabilityEl ? availabilityEl.textContent : ''); // Cíl: modul p_ava (může být div nebo span, proto obecně) const pava = root.querySelector('div.p_ava.p_g.p_action') || root.querySelector('span.p_ava.p_g.p_action') || root.querySelector('.p_ava.p_g.p_action'); if (!pava) return; // Sestav text: zachovej původní text a jen doplň ks + datum do druhého řádku // 1) doplnění ks (pokud máš) const baseText = (pava.textContent || '').trim() || (availabilityEl ? availabilityEl.textContent.trim() : ''); const baseNoPieces = baseText.replace(/\s*\d+\s*ks\b/ig, '').trim(); const piecesPart = pieces ? ` ${pieces} ks` : ''; const line1 = `${baseNoPieces}${piecesPart}`.trim(); // 2) datum na nový řádek (stejný pattern jako u detailu) const line2 = `Obdržíte do ${deliveryDDMM}`; // aby se to neduplikovalo opakovaně: // držíme si vlastní span uvnitř pava let extra = pava.querySelector('.pava-extra'); if (!extra) { extra = document.createElement('span'); extra.className = 'pava-extra'; extra.style.display = 'block'; // jen layout, bez stylování barvy apod. pava.appendChild(extra); } // nastav texty pava.childNodes.forEach(n => { // necháme jen text node prvního řádku + extra span // (jednoduše: přepíšeme obsah bezpečně) }); // bezpečný přepis: nejdřív vyčisti pava, pak vlož 1. řádek + extra pava.textContent = line1; pava.appendChild(extra); extra.textContent = line2; }); } // zavolej po tvém hlavním výpočtu / vložení .delivery-estimate syncPiecesAndDeliveryToPavaModule(); function syncPiecesAndDeliveryToPavaModule(){ syncPiecesAndDeliveryToPava(document); }