{"id":2,"date":"2026-04-11T21:16:16","date_gmt":"2026-04-11T21:16:16","guid":{"rendered":"http:\/\/domekszkieletowy.pl\/?page_id=2"},"modified":"2026-04-12T08:03:09","modified_gmt":"2026-04-12T08:03:09","slug":"sample-page","status":"publish","type":"page","link":"https:\/\/domekszkieletowy.pl\/?page_id=2","title":{"rendered":"Domena na sprzeda\u017c"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Idealna pod firm\u0119 zajmuj\u0105c\u0105 si\u0119 budow\u0105 dom\u00f3w szkieletowych. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">KONFIGURATOR 3D domu:<\/p>\n\n\n\n<script type=\"module\" src=\"https:\/\/ajax.googleapis.com\/ajax\/libs\/model-viewer\/3.5.0\/model-viewer.min.js\"><\/script>\n\n<div style=\"width: 100%; height: 600px; position: relative; background: #000; border-radius: 20px; overflow: hidden; border: 1px solid #333;\">\n    <model-viewer id=\"gtr-final-fix\" \n        src=\"http:\/\/domekszkieletowy.pl\/wp-content\/uploads\/2026\/04\/uploads_files_6833695_gtrr35.glb\" \n        camera-controls auto-rotate shadow-intensity=\"2\" exposure=\"1.2\"\n        style=\"width: 100%; height: 100%;\">\n    <\/model-viewer>\n\n    <div style=\"position: absolute; top: 20px; left: 20px; background: rgba(0,0,0,0.9); padding: 20px; border-radius: 15px; color: white; font-family: sans-serif; border: 1px solid #444; width: 210px; z-index: 100;\">\n        \n        <div style=\"margin-bottom: 20px;\">\n            <label style=\"display: block; font-size: 10px; color: #777; text-transform: uppercase; margin-bottom: 10px;\">Kolor Karoserii<\/label>\n            <div style=\"display: flex; gap: 8px;\">\n                <button onclick=\"updateGTR('body', '#333333')\" style=\"background: #333; width: 30px; height: 30px; border-radius: 50%; border: 2px solid #555; cursor: pointer;\"><\/button>\n                <button onclick=\"updateGTR('body', '#aa0000')\" style=\"background: #a00; width: 30px; height: 30px; border-radius: 50%; border: 2px solid #555; cursor: pointer;\"><\/button>\n                <button onclick=\"updateGTR('body', '#0044ff')\" style=\"background: #04f; width: 30px; height: 30px; border-radius: 50%; border: 2px solid #555; cursor: pointer;\"><\/button>\n            <\/div>\n        <\/div>\n\n        <div style=\"margin-bottom: 20px;\">\n            <label style=\"display: block; font-size: 10px; color: #777; text-transform: uppercase; margin-bottom: 10px;\">Kolor Felg<\/label>\n            <div style=\"display: flex; gap: 8px;\">\n                <button onclick=\"updateGTR('rim', '#000000')\" style=\"background: #000; width: 30px; height: 30px; border-radius: 6px; border: 1px solid #555; cursor: pointer;\"><\/button>\n                <button onclick=\"updateGTR('rim', '#ffd700')\" style=\"background: #ffd700; width: 30px; height: 30px; border-radius: 6px; border: none; cursor: pointer;\"><\/button>\n            <\/div>\n        <\/div>\n\n        <div>\n            <label id=\"lbl-status\" style=\"display: block; font-size: 10px; color: #777; text-transform: uppercase; margin-bottom: 10px;\">Rozmiar k\u00f3\u0142: 100%<\/label>\n            <input type=\"range\" min=\"0.8\" max=\"1.5\" step=\"0.01\" value=\"1\" id=\"slider-wheels\" style=\"width: 100%; cursor: pointer;\">\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n(function() {\n    const mv = document.querySelector('#gtr-final-fix');\n    const slider = document.querySelector('#slider-wheels');\n    const label = document.querySelector('#lbl-status');\n\n    \/\/ Funkcja do kolorowania\n    window.updateGTR = function(type, colorHex) {\n        if (!mv.model) return;\n        const r = parseInt(colorHex.slice(1, 3), 16) \/ 255;\n        const g = parseInt(colorHex.slice(3, 5), 16) \/ 255;\n        const b = parseInt(colorHex.slice(5, 7), 16) \/ 255;\n        const rgba = [r, g, b, 1.0];\n\n        mv.model.materials.forEach((m) => {\n            const n = m.name.toLowerCase();\n            if (type === 'body' && (n.includes('carpaint') || n.includes('body'))) {\n                m.pbrMetallicRoughness.setBaseColorFactor(rgba);\n            } else if (type === 'rim' && (n.includes('tire') || n.includes('rim') || n.includes('disc'))) {\n                m.pbrMetallicRoughness.setBaseColorFactor(rgba);\n            }\n        });\n    };\n\n    \/\/ --- NAPRAWA SUWAKA ---\n    slider.addEventListener('input', (e) => {\n        const val = e.target.value;\n        label.innerText = `Rozmiar k\u00f3\u0142: ${Math.round(val * 100)}%`;\n\n        \/\/ Kluczowe zabezpieczenie: je\u015bli model nie jest gotowy, nic nie r\u00f3b\n        if (!mv.model || !mv.model.nodes) {\n            console.log(\"Czekam na za\u0142adowanie cz\u0119\u015bci modelu...\");\n            return;\n        }\n\n        \/\/ Niekt\u00f3re modele trzymaj\u0105 cz\u0119\u015bci w \"nodes\", inne w \"symbols\"\n        \/\/ U\u017cywamy bezpiecznej p\u0119tli, kt\u00f3ra nie wywala b\u0142\u0119du\n        try {\n            mv.model.nodes.forEach((node) => {\n                const name = node.name.toLowerCase();\n                if (name.includes('wheel') || name.includes('rim') || name.includes('tire') || name.includes('disc')) {\n                    node.scale.setAll(val);\n                }\n            });\n        } catch (err) {\n            console.warn(\"Ten model nie pozwala na skalowanie cz\u0119\u015bci w ten spos\u00f3b.\");\n        }\n    });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Idealna pod firm\u0119 zajmuj\u0105c\u0105 si\u0119 budow\u0105 dom\u00f3w szkieletowych. KONFIGURATOR 3D domu: Kolor Karoserii Kolor Felg Rozmiar k\u00f3\u0142: 100%<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/domekszkieletowy.pl\/index.php?rest_route=\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/domekszkieletowy.pl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/domekszkieletowy.pl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/domekszkieletowy.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/domekszkieletowy.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2"}],"version-history":[{"count":9,"href":"https:\/\/domekszkieletowy.pl\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":19,"href":"https:\/\/domekszkieletowy.pl\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions\/19"}],"wp:attachment":[{"href":"https:\/\/domekszkieletowy.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}