{"id":596,"date":"2026-08-22T19:19:54","date_gmt":"2026-08-22T19:19:54","guid":{"rendered":"https:\/\/www.foto-laccer.cz\/?page_id=596"},"modified":"2026-08-25T15:32:58","modified_gmt":"2026-08-25T15:32:58","slug":"fotosberna","status":"publish","type":"page","link":"https:\/\/www.foto-laccer.cz\/?page_id=596","title":{"rendered":"Fotosb\u011brna"},"content":{"rendered":"<div id=\"flfs\" class=\"flfs\">\n<h2>Fotosb\u011brna<\/h2>\n<p class=\"flfs-intro\">Nahrajte fotografie a v dal\u0161\u00edm kroku si naklikejte po\u017eadovan\u00e9 form\u00e1ty. Lesk i mat jsou za stejnou cenu.<\/p>\n<div class=\"flfs-box\">\n<h3>1. Nahrajte fotografie<\/h3>\n<label class=\"flfs-upload\"><input id=\"flfs-files\" type=\"file\" multiple accept=\".jpg,.jpeg,.png,image\/jpeg,image\/png\"><b>\uff0b Vybrat fotografie (lze p\u0159id\u00e1vat i postupn\u011b)<\/b><small>JPG, JPEG nebo PNG \u00b7 max. 100 fotografi\u00ed celkem \u00b7 20 MB\/fotografii<\/small><\/label>\n<div id=\"flfs-file-info\" style=\"margin-top:10px; font-weight:bold;\"><\/div><div id=\"flfs-preview\" class=\"flfs-preview\"><\/div>\n<\/div>\n<div class=\"flfs-box\">\n<h3>2. Nastaven\u00ed tisku<\/h3>\n<p>Zde m\u016f\u017eete specifikovat r\u016fzn\u00e9 form\u00e1ty, po\u010dty kus\u016f a k nim p\u0159i\u0159adit nahran\u00e9 fotky pouh\u00fdm kliknut\u00edm na miniatury.<\/p>\n<div id=\"flfs-items\"><\/div>\n<button type=\"button\" id=\"flfs-add\">\uff0b P\u0159idat dal\u0161\u00ed form\u00e1t (blok)<\/button>\n<\/div>\n<div class=\"flfs-box\"><h3>3. Va\u0161e \u00fadaje<\/h3><div class=\"flfs-grid\">\n<label>Jm\u00e9no a p\u0159\u00edjmen\u00ed *<input id=\"flfs-name\" type=\"text\"><\/label>\n<label>Telefon *<input id=\"flfs-phone\" type=\"tel\"><\/label>\n<label>E-mail *<input id=\"flfs-email\" type=\"email\"><\/label>\n<label class=\"full\">Pozn\u00e1mka<textarea id=\"flfs-note\" rows=\"4\"><\/textarea><\/label>\n<\/div><\/div>\n<div class=\"flfs-summary\"><div><span>Vyti\u0161t\u011bn\u00fdch kus\u016f<\/span><b id=\"flfs-count\">0<\/b><\/div><div id=\"flfs-summary-items\"><\/div><div class=\"total\"><span>Celkem<\/span><strong id=\"flfs-total\">0,00 K\u010d<\/strong><\/div><\/div>\n<label class=\"flfs-consent\"><input id=\"flfs-consent\" type=\"checkbox\"> Souhlas\u00edm se zpracov\u00e1n\u00edm \u00fadaj\u016f za \u00fa\u010delem vy\u0159\u00edzen\u00ed objedn\u00e1vky. *<\/label>\n<button id=\"flfs-submit\" type=\"button\">ODESLAT OBJEDN\u00c1VKU<\/button><div id=\"flfs-message\" class=\"msg\" hidden><\/div>\n<input type=\"hidden\" id=\"flfs-nonce\" value=\"3526e574f0\">\n<\/div>\n<style>\n.flfs{max-width:900px;margin:30px auto;padding:0 16px}.flfs h2{text-align:center;font-size:34px}.flfs-intro{text-align:center}.flfs-box{border:1px solid #ddd;border-radius:14px;padding:22px;margin:18px 0;background:#fff}.flfs-upload{min-height:130px;border:2px dashed #aaa;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-align:center}.flfs-upload input{display:none}.flfs-upload small{color:#777}\n.flfs-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-top:14px}\n.flfs-thumb{position:relative;aspect-ratio:1;border-radius:7px;overflow:hidden;background:#eee;border:2px solid transparent;transition:all 0.2s}\n.flfs-thumb img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}\n.flfs-thumb .del{position:absolute;top:3px;right:3px;background:rgba(0,0,0,0.6);color:#fff;border:0;border-radius:50%;width:24px;height:24px;font-size:16px;line-height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:0.2s}\n.flfs-thumb .del:hover{background:#d32f2f}\n.flfs-item{border:1px solid #ddd;border-radius:10px;padding:15px;margin:10px 0}\n.flfs-item-grid{display:grid;grid-template-columns:1.2fr 1fr 1.3fr 1fr 90px auto;gap:10px;align-items:end;margin-bottom:12px}\n.flfs-item label{font-weight:600}\n.flfs-item select, .flfs-item input[type=\"number\"]{width:100%;box-sizing:border-box;padding:9px;margin-top:5px}\n.flfs-item input[type=\"number\"]{text-align:center; font-weight:bold; font-size:16px;}\n.flfs-btn-small {background:#eee; border:1px solid #ccc; padding:6px 10px; border-radius:6px; cursor:pointer; font-size:13px; font-weight:600; color:#333; transition:0.2s;}\n.flfs-btn-small:hover {background:#e0e0e0;}\n.flfs-item-photos{display:flex;flex-wrap:wrap;gap:6px;max-height:250px;overflow-y:auto;padding:8px;border:1px solid #ddd;border-radius:8px;background:#fafafa}\n.flfs-item-photos .flfs-thumb{width:65px;height:65px;cursor:pointer;opacity:0.4;border:3px solid transparent}\n.flfs-item-photos .flfs-thumb:hover{opacity:0.8}\n.flfs-item-photos .flfs-thumb.selected{border-color:#007cba;opacity:1}\n.flfs-remove{border:0;background:#eee;padding:10px;border-radius:7px;cursor:pointer}\n.flfs-warning{padding:9px;margin-top:8px;background:#fff3cd;border-radius:7px;font-size:13px}\n.flfs-express-info{padding:9px;margin-top:8px;background:#f5f5f5;border-radius:7px;font-size:13px}\n.flfs-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.flfs-grid label{font-weight:600}.flfs-grid input,.flfs-grid textarea{width:100%;box-sizing:border-box;margin-top:5px;padding:10px}.flfs-grid .full{grid-column:1\/-1}\n.flfs-summary{background:#f7f7f7;border-radius:14px;padding:18px}.flfs-summary>div{display:flex;justify-content:space-between;padding:5px 0}.flfs-summary .line{display:block}.flfs-summary .line div{display:flex;justify-content:space-between}.flfs-summary .total{border-top:1px solid #ddd;margin-top:10px;padding-top:14px;font-size:22px}\n.flfs button#flfs-submit{width:100%;padding:15px;background:#111;color:#fff;border:0;border-radius:8px;font-weight:700;margin-top:15px;cursor:pointer}\n.msg{margin-top:15px;padding:14px;border-radius:8px}.msg.ok{background:#e5f5e5}.msg.err{background:#fce5e5}\n@media(max-width:850px){\n    .flfs-item-grid,.flfs-grid{grid-template-columns:1fr}\n    .flfs-grid .full{grid-column:auto}\n    .flfs-item-grid label{margin-bottom:6px}\n}\n<\/style>\n<script>\ndocument.addEventListener('DOMContentLoaded',function(){\n    const root=document.getElementById('flfs');if(!root)return;\n    const prices={\"9x13\":{\"label\":\"9 \\u00d7 13 cm\",\"normal\":5.5,\"express\":7.9000000000000003552713678800500929355621337890625,\"min_w\":900,\"min_h\":1300},\"10x15\":{\"label\":\"10 \\u00d7 15 cm\",\"normal\":6.9000000000000003552713678800500929355621337890625,\"express\":9.5,\"min_w\":1050,\"min_h\":1500},\"13x18\":{\"label\":\"13 \\u00d7 18 cm\",\"normal\":9.9000000000000003552713678800500929355621337890625,\"express\":13.9000000000000003552713678800500929355621337890625,\"min_w\":1350,\"min_h\":1800},\"15x21\":{\"label\":\"15 \\u00d7 21 cm (A5)\",\"normal\":18,\"express\":25,\"min_w\":1750,\"min_h\":2500},\"21x29_7\":{\"label\":\"21 \\u00d7 29,7 cm (A4)\",\"normal\":49,\"express\":59,\"min_w\":2480,\"min_h\":3500},\"25x38\":{\"label\":\"25 \\u00d7 38 cm\",\"normal\":85,\"express\":109,\"min_w\":2950,\"min_h\":4480}}, filesInput=root.querySelector('#flfs-files'), preview=root.querySelector('#flfs-preview'), itemsEl=root.querySelector('#flfs-items');\n    \n    let photoPool=[]; \n    let photoCounter=0;\n    let items=[{ids:[],format:'10x15',surface:'Lesk',crop:'orez',speed:'normal',qty:1}];\n\n    function money(n){return n.toLocaleString('cs-CZ',{minimumFractionDigits:2,maximumFractionDigits:2})+' K\u010d'}\n    function esc(s){return String(s).replace(\/[&<>\"']\/g,m=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#039;'}[m]))}\n    function options(selected){return Object.entries(prices).map(([k,v])=>'<option value=\"'+k+'\" '+(k===selected?'selected':'')+'>'+esc(v.label)+'<\/option>').join('')}\n    \n    function renderPool(){\n        preview.innerHTML='';\n        photoPool.forEach((p,i)=>{\n            const d=document.createElement('div');d.className='flfs-thumb';\n            d.innerHTML='<img decoding=\"async\" src=\"'+p.url+'\" alt=\"\"><button class=\"del\" type=\"button\" title=\"Odebrat z nahr\u00e1v\u00e1n\u00ed\">\u00d7<\/button>';\n            d.querySelector('.del').addEventListener('click',()=>{\n                URL.revokeObjectURL(p.url);\n                photoPool.splice(i,1);\n                items.forEach(it=>{ it.ids = it.ids.filter(id=>id!==p.id); });\n                renderPool();renderItems();updateSummary();\n            });\n            preview.appendChild(d);\n        });\n        root.querySelector('#flfs-file-info').textContent=photoPool.length>0 ? photoPool.length+' nahran\u00fdch fotografi\u00ed' : '';\n    }\n\n    function renderItems(){\n        itemsEl.innerHTML='';\n        items.forEach((it,idx)=>{\n            const div=document.createElement('div');div.className='flfs-item';\n            let photosHtml = photoPool.map(p=>`\n                <div class=\"flfs-thumb ${it.ids.includes(p.id)?'selected':''}\" data-id=\"${p.id}\">\n                    <img decoding=\"async\" src=\"${p.url}\">\n                <\/div>\n            `).join('');\n\n            div.innerHTML=`\n                <div class=\"flfs-item-grid\">\n                    <label>Form\u00e1t<select class=\"format\">${options(it.format)}<\/select><\/label>\n                    <label>Povrch<select class=\"surface\"><option ${it.surface==='Lesk'?'selected':''}>Lesk<\/option><option ${it.surface==='Mat'?'selected':''}>Mat<\/option><\/select><\/label>\n                    <label>O\u0159ez<select class=\"crop\"><option value=\"orez\" ${it.crop==='orez'?'selected':''}>S o\u0159ezem<\/option><option value=\"bez_orezu\" ${it.crop==='bez_orezu'?'selected':''}>Bez o\u0159ezu (b\u00edl\u00e9 okraje)<\/option><\/select><\/label>\n                    <label>Zpracov\u00e1n\u00ed<select class=\"speed\"><option value=\"normal\" ${it.speed==='normal'?'selected':''}>Norm\u00e1l<\/option><option value=\"express\" ${it.speed==='express'?'selected':''}>Express<\/option><\/select><\/label>\n                    <label>Kus\u016f<input type=\"number\" class=\"qty\" min=\"1\" value=\"${it.qty}\"><\/label>\n                    <button type=\"button\" class=\"flfs-remove\" title=\"Odebrat tento form\u00e1t\">\u00d7<\/button>\n                <\/div>\n                \n                <div style=\"display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:8px;\">\n                    <label style=\"font-size:14px;color:#444;margin:0;\">Kliknut\u00edm na miniatury vyberte fotografie pro tento blok tisku:<\/label>\n                    <div style=\"display:flex; gap:8px;\">\n                        <button type=\"button\" class=\"flfs-btn-small btn-sel-all\">Ozna\u010dit v\u0161e<\/button>\n                        <button type=\"button\" class=\"flfs-btn-small btn-desel-all\">Zru\u0161it v\u00fdb\u011br<\/button>\n                    <\/div>\n                <\/div>\n\n                <div class=\"flfs-item-photos\">${photosHtml || '<span style=\"color:#777;font-size:13px;padding:10px;\">Zat\u00edm nejsou nahr\u00e1ny \u017e\u00e1dn\u00e9 fotografie.<\/span>'}<\/div>\n                <div class=\"flfs-warning\"><\/div>\n                <div class=\"flfs-express-info\"><\/div>\n            `;\n            \n            div.querySelector('.format').addEventListener('change',e=>{it.format=e.target.value;updateWarnings();updateSummary()});\n            div.querySelector('.surface').addEventListener('change',e=>{it.surface=e.target.value;updateSummary()});\n            div.querySelector('.crop').addEventListener('change',e=>{it.crop=e.target.value;updateSummary()});\n            div.querySelector('.speed').addEventListener('change',e=>{it.speed=e.target.value;updateWarnings();updateSummary()});\n            \n            const qtyInput = div.querySelector('.qty');\n            qtyInput.addEventListener('input', e => {\n                let val = parseInt(e.target.value);\n                if (!isNaN(val) && val > 0) {\n                    it.qty = val;\n                    updateSummary();\n                }\n            });\n            qtyInput.addEventListener('blur', e => {\n                let val = parseInt(e.target.value);\n                if (isNaN(val) || val < 1) {\n                    it.qty = 1;\n                    e.target.value = 1;\n                } else {\n                    it.qty = val;\n                    e.target.value = val;\n                }\n                updateSummary();\n            });\n\n            div.querySelector('.flfs-remove').addEventListener('click',()=>{\n                if(items.length>1){items.splice(idx,1);renderItems();updateSummary()}\n                else{show('Mus\u00ed z\u016fstat alespo\u0148 jeden form\u00e1t.','err')}\n            });\n\n            div.querySelector('.btn-sel-all').addEventListener('click', () => {\n                it.ids = photoPool.map(p => p.id);\n                renderItems();\n                updateWarnings();\n                updateSummary();\n            });\n\n            div.querySelector('.btn-desel-all').addEventListener('click', () => {\n                it.ids = [];\n                renderItems();\n                updateWarnings();\n                updateSummary();\n            });\n\n            div.querySelectorAll('.flfs-item-photos .flfs-thumb').forEach(thumb=>{\n                thumb.addEventListener('click',()=>{\n                    const pid=parseInt(thumb.getAttribute('data-id'));\n                    const pos=it.ids.indexOf(pid);\n                    if(pos>-1){\n                        it.ids.splice(pos,1);\n                        thumb.classList.remove('selected');\n                    }else{\n                        it.ids.push(pid);\n                        thumb.classList.add('selected');\n                    }\n                    updateWarnings();updateSummary();\n                });\n            });\n            itemsEl.appendChild(div);\n        });\n        updateWarnings();\n    }\n\n    function updateWarnings(){\n        Array.from(itemsEl.querySelectorAll('.flfs-item')).forEach((el,idx)=>{\n            const it=items[idx],p=prices[it.format],warnings=[];\n            let hasLowRes=false;\n            it.ids.forEach(id=>{\n                const f=photoPool.find(x=>x.id===id);\n                if(f&&f.width&&f.height){\n                    const short=Math.min(f.width,f.height),long=Math.max(f.width,f.height),rs=Math.min(p.min_w,p.min_h),rl=Math.max(p.min_w,p.min_h);\n                    if(short<rs||long<rl) hasLowRes=true;\n                }\n            });\n            if(hasLowRes) warnings.push('<b>Upozorn\u011bn\u00ed:<\/b> Jedna nebo v\u00edce vybran\u00fdch fotografi\u00ed m\u00e1 n\u00edzk\u00e9 rozli\u0161en\u00ed pro '+esc(p.label)+'. M\u016f\u017ee b\u00fdt m\u00e9n\u011b ostr\u00e1.');\n            el.querySelector('.flfs-warning').innerHTML=warnings.join('<br>');\n            el.querySelector('.flfs-express-info').innerHTML=it.speed==='express'?'<b>Express:<\/b> objedn\u00e1vky do 16:00 v pracovn\u00ed den jsou p\u0159ipraven\u00e9 dnes. Po 16:00, o v\u00edkendu nebo ve sv\u00e1tek se term\u00edn posune na nejbli\u017e\u0161\u00ed pracovn\u00ed den.':'';\n        });\n    }\n\n    function updateSummary(){\n        let total=0,count=0;const sum=root.querySelector('#flfs-summary-items');sum.innerHTML='';\n        items.forEach(it=>{\n            const p=prices[it.format],unit=it.speed==='express'?p.express:p.normal;\n            const c=it.ids.length*it.qty;\n            if(c>0){\n                count+=c;total+=c*unit;\n                const cropLabel = it.crop === 'orez' ? 'S o\u0159ezem' : 'Bez o\u0159ezu';\n                sum.innerHTML+='<div class=\"line\"><div><span>'+it.ids.length+' fotek \u00d7 '+it.qty+' ks = '+c+'\u00d7 '+esc(p.label)+' \u00b7 '+esc(it.surface)+' \u00b7 '+cropLabel+' \u00b7 '+(it.speed==='express'?'Express':'Norm\u00e1l')+'<\/span><b>'+money(c*unit)+'<\/b><\/div><\/div>';\n            }\n        });\n        root.querySelector('#flfs-count').textContent=count;root.querySelector('#flfs-total').textContent=money(total);\n    }\n\n    filesInput.addEventListener('change',async e=>{\n        const newFiles=Array.from(e.target.files);\n        for(let f of newFiles){\n            if(photoPool.length>=100) break;\n            if(!f.type.match(\/^image\\\/(jpeg|png)$\/)) continue;\n            let u=URL.createObjectURL(f);\n            let p={id:photoCounter++,file:f,url:u,width:0,height:0};\n            await new Promise(r=>{\n                let im=new Image();\n                im.onload=()=>{p.width=im.naturalWidth;p.height=im.naturalHeight;r()};\n                im.onerror=r;im.src=u;\n            });\n            photoPool.push(p);\n        }\n        filesInput.value='';\n        renderPool();renderItems();updateSummary();\n    });\n\n    root.querySelector('#flfs-add').addEventListener('click',()=>{items.push({ids:[],format:'10x15',surface:'Lesk',crop:'orez',speed:'normal',qty:1});renderItems()});\n\n    root.querySelector('#flfs-submit').addEventListener('click',async()=>{\n        const msg=root.querySelector('#flfs-message');msg.hidden=true;\n        const name=root.querySelector('#flfs-name').value.trim(),phone=root.querySelector('#flfs-phone').value.trim(),email=root.querySelector('#flfs-email').value.trim(),note=root.querySelector('#flfs-note').value.trim();\n        \n        if(!photoPool.length) return show('Nahrajte pros\u00edm fotografie.','err');\n        if(!name||!phone||!email) return show('Vypl\u0148te pros\u00edm jm\u00e9no, telefon a e-mail.','err');\n        if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)) return show('Zadejte platn\u00fd e-mail.','err');\n        if(!root.querySelector('#flfs-consent').checked) return show('Potvr\u010fte pros\u00edm souhlas se zpracov\u00e1n\u00edm \u00fadaj\u016f.','err');\n        \n        let assignedIds = new Set();\n        for(const it of items){\n            if(!it.ids.length) return show('Ka\u017ed\u00fd blok tisku mus\u00ed m\u00edt vybran\u00e9 fotografie, nebo blok odstra\u0148te.','err');\n            it.ids.forEach(id=>assignedIds.add(id));\n        }\n        if(assignedIds.size !== photoPool.length) return show('N\u011bkter\u00e9 nahran\u00e9 fotografie nemaj\u00ed vybran\u00fd form\u00e1t k tisku. Odstra\u0148te je naho\u0159e k\u0159\u00ed\u017ekem, nebo je p\u0159i\u0159a\u010fte k form\u00e1tu.','err');\n\n        const fd=new FormData();\n        fd.append('action','flfs_submit');fd.append('nonce',root.querySelector('#flfs-nonce').value);\n        fd.append('customer_name',name);fd.append('customer_phone',phone);fd.append('customer_email',email);fd.append('customer_note',note);\n        \n        let idMap={};\n        photoPool.forEach((p,idx)=>{\n            idMap[p.id]=idx;\n            fd.append('photos[]',p.file,p.file.name);\n        });\n        \n        let itemsToSend=items.map(it=>({\n            format:it.format, surface:it.surface, crop:it.crop, speed:it.speed, qty:it.qty,\n            ids:it.ids.map(id=>idMap[id])\n        }));\n        fd.append('items',JSON.stringify(itemsToSend));\n\n        const btn=root.querySelector('#flfs-submit');btn.disabled=true;btn.textContent='ODES\u00cdL\u00c1N\u00cd\u2026';\n        try{\n            const r=await fetch('https:\/\/www.foto-laccer.cz\/wp-admin\/admin-ajax.php',{method:'POST',body:fd}),d=await r.json();\n            if(!d.success) throw new Error(d.data?.message||'Objedn\u00e1vku se nepoda\u0159ilo odeslat.');\n            show(d.data.message,'ok');\n            \n            photoPool.forEach(p=>URL.revokeObjectURL(p.url));\n            photoPool=[];\n            items=[{ids:[],format:'10x15',surface:'Lesk',crop:'orez',speed:'normal',qty:1}];\n            filesInput.value='';\n            renderPool();renderItems();updateSummary();\n            root.querySelector('#flfs-name').value='';root.querySelector('#flfs-phone').value='';root.querySelector('#flfs-email').value='';root.querySelector('#flfs-note').value='';root.querySelector('#flfs-consent').checked=false;\n        }catch(e){show(e.message,'err')}\n        btn.disabled=false;btn.textContent='ODESLAT OBJEDN\u00c1VKU';\n    });\n    \n    function show(t,c){const m=root.querySelector('#flfs-message');m.className='msg '+c;m.innerHTML=t;m.hidden=false;m.scrollIntoView({behavior:'smooth',block:'center'})}\n    renderPool();renderItems();updateSummary();\n});\n<\/script>\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-596","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.foto-laccer.cz\/index.php?rest_route=\/wp\/v2\/pages\/596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.foto-laccer.cz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.foto-laccer.cz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.foto-laccer.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.foto-laccer.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=596"}],"version-history":[{"count":3,"href":"https:\/\/www.foto-laccer.cz\/index.php?rest_route=\/wp\/v2\/pages\/596\/revisions"}],"predecessor-version":[{"id":618,"href":"https:\/\/www.foto-laccer.cz\/index.php?rest_route=\/wp\/v2\/pages\/596\/revisions\/618"}],"wp:attachment":[{"href":"https:\/\/www.foto-laccer.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}