{"id":7598,"date":"2023-10-31T18:21:52","date_gmt":"2023-10-31T17:21:52","guid":{"rendered":"https:\/\/silkplm.com\/?page_id=7598"},"modified":"2024-07-18T12:34:20","modified_gmt":"2024-07-18T10:34:20","slug":"odsubskrybowanie","status":"publish","type":"page","link":"https:\/\/silkplm.com\/pl\/odsubskrybowanie\/","title":{"rendered":"Odsubskrybowanie"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-left:0px;--awb-margin-top:48px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:1352px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_2_5 2_5 fusion-flex-column fusion-flex-align-self-center\" style=\"--awb-padding-right-small:0px;--awb-padding-left-small:0px;--awb-bg-size:cover;--awb-width-large:40%;--awb-margin-top-large:0px;--awb-spacing-right-large:24px;--awb-margin-bottom-large:20px;--awb-spacing-left-large:24px;--awb-width-medium:40%;--awb-order-medium:0;--awb-spacing-right-medium:24px;--awb-spacing-left-medium:24px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-text-color:var(--awb-color6);--awb-margin-bottom:16px;--awb-font-size:var(--awb-typography2-font-size);\"><h2 class=\"fusion-title-heading title-heading-left sm-text-align-center\" style=\"font-family:var(--awb-typography2-font-family);font-weight:var(--awb-typography2-font-weight);font-style:var(--awb-typography2-font-style);margin:0;font-size:1em;letter-spacing:var(--awb-typography2-letter-spacing);text-transform:var(--awb-typography2-text-transform);line-height:var(--awb-typography2-line-height);\">You have been successfully unsubscribed.<\/h2><\/div><div class=\"fusion-text fusion-text-1 sm-text-align-center fusion-text-no-margin\" style=\"--awb-content-alignment:left;--awb-margin-bottom:24px;\"><p style=\"line-height: 24px;\" data-fusion-font=\"true\">Thank you for the time we spent together. <span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover); line-height: 24px;\" data-fusion-font=\"true\">Maybe we&#8217;ll meet again someday? <\/span>Why not take a moment to check out our blog for more interesting content?<\/p>\n<\/div><div class=\"sm-text-align-center\"><a class=\"fusion-button button-flat fusion-button-default-size button-custom fusion-button-default button-1 fusion-button-default-span fusion-button-default-type\" style=\"--button_accent_color:var(--awb-color8);--button_border_color:var(--awb-color8);--button_accent_hover_color:var(--awb-color8);--button_border_hover_color:var(--awb-color8);--button_border_width-top:2px;--button_border_width-right:2px;--button_border_width-bottom:2px;--button_border_width-left:2px;--button-border-radius-top-left:16px;--button-border-radius-top-right:16px;--button-border-radius-bottom-right:16px;--button-border-radius-bottom-left:16px;--button_gradient_top_color:var(--awb-custom_color_1);--button_gradient_bottom_color:var(--awb-custom_color_1);--button_gradient_top_color_hover:var(--awb-color5);--button_gradient_bottom_color_hover:var(--awb-color5);--button_padding-top:24px;--button_padding-right:40px;--button_padding-bottom:24px;--button_padding-left:40px;\" target=\"_self\" href=\"https:\/\/silkplm.com\/pl\/knowledgebase\/\" id=\"button2\"><span class=\"fusion-button-text\">See our knowledge base<\/span><i class=\"fa-angle-right fas button-icon-right\" aria-hidden=\"true\"><\/i><\/a><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_2_5 2_5 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:40%;--awb-margin-top-large:0px;--awb-spacing-right-large:4.8%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:4.8%;--awb-width-medium:40%;--awb-order-medium:0;--awb-spacing-right-medium:4.8%;--awb-spacing-left-medium:4.8%;--awb-width-small:100%;--awb-order-small:0;--awb-margin-top-small:24px;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-image-element \" style=\"text-align:center;--awb-max-width:80%;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\" fusion-imageframe imageframe-none imageframe-1 hover-type-none\"><img decoding=\"async\" width=\"1010\" height=\"885\" alt=\"Unsubscribed newsletter\" title=\"Unsubscribed\" src=\"https:\/\/silkplm.com\/wp-content\/uploads\/2023\/10\/Unsubscribed.png\" data-orig-src=\"https:\/\/silkplm.com\/wp-content\/uploads\/2023\/10\/Unsubscribed.png\" class=\"lazyload img-responsive wp-image-7594\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271010%27%20height%3D%27885%27%20viewBox%3D%270%200%201010%20885%27%3E%3Crect%20width%3D%271010%27%20height%3D%27885%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/silkplm.com\/wp-content\/uploads\/2023\/10\/Unsubscribed-200x175.png 200w, https:\/\/silkplm.com\/wp-content\/uploads\/2023\/10\/Unsubscribed-400x350.png 400w, https:\/\/silkplm.com\/wp-content\/uploads\/2023\/10\/Unsubscribed-600x526.png 600w, https:\/\/silkplm.com\/wp-content\/uploads\/2023\/10\/Unsubscribed-800x701.png 800w, https:\/\/silkplm.com\/wp-content\/uploads\/2023\/10\/Unsubscribed.png 1010w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 700px) 100vw, 600px\" \/><\/span><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1352px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@4.0.0\/dist\/css\/bootstrap.min.css\" integrity=\"sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW\/dAiS6JXm\" crossorigin=\"anonymous\">\n<style>\n        .ai-img {\n            max-width: 320px;\n        }\n    <\/style>\n<div>\n\n    <div class=\"container\">\n        <div class=\"row\" id=\"ai-gallery\">\n            <div class=\"col-12\">\n            <\/div>\n        <\/div>\n\n        <div class=\"row\">\n            <div class=\"col-12 d-none\" id=\"ai-queue-status\">\n                <div id=\"ai-queue\" class=\"d-none\">Jobs in a queue: <span id=\"ai-queue-size\">...<\/span><\/div>\n                <span id=\"ai-queue-full\" class=\"d-none\">Job queue is full, please try later<\/span>\n            <\/div>\n\n            <div class=\"col-12 d-none\" id=\"ai-task-status\">\n                <div id=\"ai-progress-bar\" class=\"progress\">\n                    <div class=\"progress-bar progress-bar-striped progress-bar-animated\" role=\"progressbar\" aria-valuenow=\"100\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 100%\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"row\" id=\"ai-prompt\">\n            <div class=\"col-12\" >\n                <div class=\"form-group\">\n                    <label for=\"ai-prompt-textarea\">Prompt<\/label>\n                    <textarea class=\"form-control\" id=\"ai-prompt-textarea\" rows=\"3\">unzipped women's hoodie, hoodie is vibrant and translucent, showcasing the playful and unique design, yellow hoodie, hoodie with polka (blue dot):200 on yellow fabric):150\n                    <\/textarea>\n                <\/div>\n                <div class=\"form-group\">\n                    <label for=\"ai-prompt-background\">Background [test only]<\/label>\n                    <input class=\"form-control\" id=\"ai-prompt-background\" value=\"background3.jpg\">\n                <\/div>\n                <div class=\"form-group\">\n                    <label for=\"ai-prompt-pose\">Pose [test only]<\/label>\n                    <input class=\"form-control\" id=\"ai-prompt-pose\" value=\"pose3.jpg\">\n                <\/div>\n            <\/div>\n            <div class=\"col-12\" >\n                <span>Generation will take about 15-45 seconds; You can generate new picture not often then every 30s<\/span>\n            <\/div>\n            <div class=\"col-12\" >\n                <button type=\"button\" class=\"btn btn-success\" id=\"ai-send\">Send<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n\n    <script>\n        const _aiDemo = function(){\n            const BACKGROUND = \"background3.jpg\";\n            const POSE = \"pose3.jpg\";\n            const GALLERY_COL_CLASSES = [\"col-12\", \"col-md-6\", \"mb-2\", \"col-lg-4\"];\n            const IMG_CLASSES = [\"ai-img\"];\n            const LOADING = \"Loading...\";\n            const GALERY_SIZE = 6;\n\n            let ENDPOINT = \"https:\/\/gpu1.consilk.com\"\n\n            if(window.location.host.includes(\"localhost\") || window.location.host.includes(\"127.0.0.1\")){\n                ENDPOINT = \"http:\/\/localhost:5300\"\n            }\n\n            console.log(\"Loading AI demo\")\n            const elGalleryDivRow = document.getElementById(\"ai-gallery\");\n            const elQueueStatusDivCol = document.getElementById(\"ai-queue-status\");\n            const elAiPromptDivRow = document.getElementById(\"ai-prompt\");\n            const elAiSendButton = document.getElementById(\"ai-send\");\n            const elPromptTextarea = document.getElementById(\"ai-prompt-textarea\");\n            const elPromptPose = document.getElementById(\"ai-prompt-pose\");\n            const elPromptBg = document.getElementById(\"ai-prompt-background\");\n            const elTaskStatusDivCol = document.getElementById(\"ai-task-status\");\n            const elProgressBar = document.getElementById(\"ai-progress-bar\");\n            const elQueueDiv = document.getElementById(\"ai-queue\");\n            const elQueueFullSpan = document.getElementById(\"ai-queue-full\");\n            const elQueueSizeSpan = document.getElementById(\"ai-queue-size\");\n\n            let galleryElements = [];\n\n            let pendingJob = null;\n            let waitingPeriod = false;\n            let qSize = 0;\n            let max = 0;\n            let requestInProgress = false;\n            let blockedFor = 0;\n            let tag = \"\"\n\n            let shownGallery = [];\n\n            function refreshVisualStatus(){\n                console.log(\"Refreshing visual state\");\n\n                \/\/ disabling button and text area when queue full or job in progress\n                if(qSize >= max || pendingJob || requestInProgress || waitingPeriod){\n                    console.log(\"Button\/TA disabled\");\n                    elAiSendButton.setAttribute(\"disabled\", \"true\");\n                    elPromptTextarea.setAttribute(\"disabled\", \"true\");\n                    elPromptPose.setAttribute(\"disabled\", \"true\");\n                    elPromptBg.setAttribute(\"disabled\", \"true\");\n                } else{\n                    console.log(\"Button\/TA enabled\");\n                    elAiSendButton.removeAttribute(\"disabled\");\n                    elPromptTextarea.removeAttribute(\"disabled\");\n                    elPromptPose.removeAttribute(\"disabled\");\n                    elPromptBg.removeAttribute(\"disabled\");\n                }\n\n                \/\/ set queue size span\n                elQueueSizeSpan.textContent = \"\" + qSize;\n\n                \/\/ if queue is full, hide size show warning\n                if(qSize >= max){\n                    console.log(\"Queue full warning enabled\");\n                    elQueueDiv.classList.add(\"d-none\");\n                    elQueueFullSpan.classList.remove(\"d-none\");\n                } else {\n                    console.log(\"Queue full warning disabled\");\n                    elQueueDiv.classList.remove(\"d-none\");\n                    elQueueStatusDivCol.classList.remove(\"d-none\");\n                    elQueueFullSpan.classList.add(\"d-none\");\n                }\n\n                \/\/ progress bar\n\n                if(pendingJob){\n                    elTaskStatusDivCol.classList.remove(\"d-none\");\n                } else {\n                    elTaskStatusDivCol.classList.add(\"d-none\");\n                }\n\n                \/\/ gallery\n                let matches = 0;\n                for(let i in galleryElements){\n                    let galElement = galleryElements[i];\n                    let galEntry = shownGallery[i]\n\n                    if(galElement.img === galEntry.img){\n                        matches++;\n                        continue;\n                    }\n                    break;\n                }\n                if(matches !== shownGallery.length){\n                    let newGalleryElements = []\n                    let newDivs = [];\n                    for(let galElement of shownGallery){\n                        let galEntry = {\n                            img: galElement.img\n                        }\n                        newGalleryElements.push(galEntry);\n\n                        let colDiv = document.createElement(\"div\");\n                        colDiv.classList.add(...GALLERY_COL_CLASSES)\n                        newDivs.push(colDiv);\n\n                        if(galElement.img) {\n                            let img = document.createElement(\"img\");\n                            img.classList.add(...IMG_CLASSES)\n                            \/\/ img.width = 892\n                            \/\/ img.height = 1152\n\n                            img.setAttribute(\"src\", ENDPOINT+ galElement.img);\n                            colDiv.append(img);\n                        } else {\n                            let spn = document.createElement(\"div\");\n                            spn.classList.add(...IMG_CLASSES)\n                            spn.textContent = LOADING\n                            colDiv.append(spn);\n                        }\n                    }\n\n                    elGalleryDivRow.replaceChildren(...newDivs);\n                    galleryElements = newGalleryElements;\n                }\n            }\n\n            elAiSendButton.addEventListener('click', function() {\n                console.log(\"AI Button clicked\")\n                requestInProgress = true;\n                refreshVisualStatus();\n\n                waitingPeriod = true;\n                setTimeout(()=>{\n                    waitingPeriod = false;\n                    refreshVisualStatus();\n                }, 30000);\n                let xhr = new XMLHttpRequest();\n                xhr.open('POST', `${ENDPOINT}\/jobs\/generate`, true);\n                xhr.setRequestHeader('Content-Type', 'application\/json;charset=UTF-8');\n\n                \/\/ Prepare JSON data to be sent\n                let jsonData = JSON.stringify({\n                    clothes_description: elPromptTextarea.value,\n                    pose_file: elPromptPose.value || POSE,\n                    background_file: elPromptBg.value || BACKGROUND,\n                    tag: tag\n                });\n\n                xhr.onload = function() {\n                    if (xhr.status >= 200 && xhr.status < 300) {\n                        let data = JSON.parse(xhr.responseText);\n                        console.log(data);\n\n                        let gal = JSON.parse(localStorage.getItem(\"ai-gallery-tasks\"));\n                        if(!gal) {\n                            gal = [];\n                        }\n                        gal.push(data['task_uuid']);\n                        localStorage.setItem(\"ai-gallery-tasks\", JSON.stringify(gal));\n                        requestInProgress = false;\n                        loadGallery();\n                    } else {\n                        console.error('Request failed with status: ' + xhr.status);\n                        requestInProgress = false;\n                        refreshVisualStatus();\n                    }\n                };\n                xhr.onerror = function(){\n                    requestInProgress = false;\n                    refreshVisualStatus();\n\n                    console.log(\"Request error\")\n                }\n                xhr.send(jsonData);\n            });\n\n\n            let loadGalTimer = null;\n            let galInProgress = false;\n            function loadGallery(){\n                if(galInProgress){\n                    return false;\n                }\n\n                loadGalTimer = null;\n                const gal = localStorage.getItem(\"ai-gallery-tasks\");\n                if(gal){\n                    let gallery = JSON.parse(gal);\n                    if(gallery.length > GALERY_SIZE){\n                        gallery = gallery.slice(-GALERY_SIZE);\n                    }\n                    let pendingJobLocal = null;\n                    let localGal = [];\n\n                    let count = 0;\n                    if(gallery.length){\n                        galInProgress = true;\n                    }\n\n                    for(let item of gallery){\n                        getStatus(item).then(status => {\n                            if(status.result.finished) {\n                                img = status.result['output_file'];\n                                localGal.push({\n                                    inProgress: false,\n                                    img\n                                })\n                            } else {\n                                pendingJobLocal = item;\n                                localGal.push({\n                                    inProgress: true,\n                                    img: null\n                                })\n                            }\n                            count++;\n                            if(count === gallery.length){\n                                \/\/ last iteration\n                                pendingJob = pendingJobLocal;\n                                shownGallery = localGal;\n                                if(pendingJob){\n                                    setTimeout(loadGallery, 2000);\n                                }\n                                refreshVisualStatus();\n                                galInProgress = false;\n                            }\n                        })\n                    }\n                }\n            }\n\n            let itemsCache = {};\n            function getStatus(item){\n                if(itemsCache[item]){\n                    return new Promise(resolve => resolve(itemsCache[item]));\n                }\n                return new Promise(resolve => {\n                    console.log(\"Refreshing status\");\n                    let xhr = new XMLHttpRequest();\n                    xhr.open('GET', `${ENDPOINT}\/jobs\/status?task_uuid=${item}`, true);\n                    xhr.onload = function() {\n                        if (xhr.status >= 200 && xhr.status < 300) {\n                            let data = JSON.parse(xhr.responseText);\n                            if(data['result']['finished']){\n                                itemsCache[item] = data;\n                            }\n                            resolve(data);\n                        } else {\n                            console.error('Request failed with status: ' + xhr.status);\n                        }\n                    };\n                    xhr.send();\n                })\n\n            }\n\n            function refreshQueueSize(){\n                console.log(\"Refreshing queue\");\n                let xhr = new XMLHttpRequest();\n                let localTag = localStorage.getItem(\"tag\");\n                if(!tag) {\n                    xhr.open('GET', `${ENDPOINT}\/jobs\/queue-size`, true);\n                } else {\n                    xhr.open('GET', `${ENDPOINT}\/jobs\/queue-size?tag=${tag}`, true);\n                }\n                xhr.onload = function() {\n                    if (xhr.status >= 200 && xhr.status < 300) {\n                        let data = JSON.parse(xhr.responseText);\n                        qSize = data['queue_size'];\n                        max = data['max'];\n                        localTag = tag = data['tag'];\n                        localStorage.setItem(\"tag\", tag);\n                        if(data['blocked_for']){\n                            blockedFor = blockedFor > data['blocked_for'] ? blockedFor : data['blocked_for']\n                        }\n\n                        refreshVisualStatus();\n\n                    } else {\n                        console.error('Request failed with status: ' + xhr.status);\n                    }\n                };\n                xhr.send();\n\n                setTimeout(refreshQueueSize, 5000);\n            }\n\n            loadGallery();\n            refreshQueueSize();\n        }\n        _aiDemo();\n\n    <\/script>\n<\/div>\n<\/div><\/div><\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":19,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7598","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Odsubskrybowanie - Silk PLM<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/silkplm.com\/pl\/odsubskrybowanie\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Odsubskrybowanie - Silk PLM\" \/>\n<meta property=\"og:url\" content=\"https:\/\/silkplm.com\/pl\/odsubskrybowanie\/\" \/>\n<meta property=\"og:site_name\" content=\"Silk PLM\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/silkplm\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-18T10:34:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/silkplm.com\/wp-content\/uploads\/2023\/09\/silkplm-presentation-video-screen.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Odsubskrybowanie - Silk PLM","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/silkplm.com\/pl\/odsubskrybowanie\/","og_locale":"pl_PL","og_type":"article","og_title":"Odsubskrybowanie - Silk PLM","og_url":"https:\/\/silkplm.com\/pl\/odsubskrybowanie\/","og_site_name":"Silk PLM","article_publisher":"https:\/\/www.facebook.com\/silkplm","article_modified_time":"2024-07-18T10:34:20+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/silkplm.com\/wp-content\/uploads\/2023\/09\/silkplm-presentation-video-screen.png","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/silkplm.com\/pl\/odsubskrybowanie\/","url":"https:\/\/silkplm.com\/pl\/odsubskrybowanie\/","name":"Odsubskrybowanie - Silk PLM","isPartOf":{"@id":"https:\/\/silkplm.com\/#website"},"datePublished":"2023-10-31T17:21:52+00:00","dateModified":"2024-07-18T10:34:20+00:00","inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/silkplm.com\/pl\/odsubskrybowanie\/"]}]},{"@type":"WebSite","@id":"https:\/\/silkplm.com\/#website","url":"https:\/\/silkplm.com\/","name":"SilkPLM","description":"Silk PLM - Product Lifecycle Management system for retail companies","publisher":{"@id":"https:\/\/silkplm.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/silkplm.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/silkplm.com\/#organization","name":"SilkPLM","url":"https:\/\/silkplm.com\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/silkplm.com\/#\/schema\/logo\/image\/","url":"","contentUrl":"","caption":"SilkPLM"},"image":{"@id":"https:\/\/silkplm.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/silkplm","https:\/\/www.linkedin.com\/company\/81696323"]}]}},"_links":{"self":[{"href":"https:\/\/silkplm.com\/pl\/wp-json\/wp\/v2\/pages\/7598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/silkplm.com\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/silkplm.com\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/silkplm.com\/pl\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/silkplm.com\/pl\/wp-json\/wp\/v2\/comments?post=7598"}],"version-history":[{"count":0,"href":"https:\/\/silkplm.com\/pl\/wp-json\/wp\/v2\/pages\/7598\/revisions"}],"wp:attachment":[{"href":"https:\/\/silkplm.com\/pl\/wp-json\/wp\/v2\/media?parent=7598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}