{"id":89319,"date":"2025-02-20T10:55:58","date_gmt":"2025-02-20T10:55:58","guid":{"rendered":"https:\/\/ksa.edu.pl\/news\/"},"modified":"2026-05-07T15:33:04","modified_gmt":"2026-05-07T15:33:04","slug":"news","status":"publish","type":"page","link":"https:\/\/ksa.edu.pl\/en\/news\/","title":{"rendered":"News"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"89319\" class=\"elementor elementor-89319 elementor-369\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2de70b6 e-flex e-con-boxed e-con e-parent\" data-id=\"2de70b6\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-14e07a6 e-con-full e-flex e-con e-child\" data-id=\"14e07a6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-49afe94 elementor-widget elementor-widget-heading\" data-id=\"49afe94\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">News<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb1925b elementor-widget elementor-widget-text-editor\" data-id=\"cb1925b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Take a look behind the scenes of the events at the Krakow School of Arts. See what we do \u2014 from fashion shows and performances to workshops, open days and the first professional steps of our students. This is a space full of inspiration, emotion and the results of creative work. Check out the latest posts and see what artistic life at KSA looks like up close.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c715fbf e-con-full elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-flex e-con e-child\" data-id=\"c715fbf\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-197631d e-flex e-con-boxed e-con e-parent\" data-id=\"197631d\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-a2886b5 e-con-full e-flex e-con e-child\" data-id=\"a2886b5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2273f4c elementor-widget elementor-widget-shortcode\" data-id=\"2273f4c\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div class=\"post-filter\">\n        <a class=\"filter-btn active\" data-category=\"all\"> All<\/a>\n        <a class=\"filter-btn\" data-category=\"sapu\">Fashion<\/a><a class=\"filter-btn\" data-category=\"swp\">Interiors<\/a><a class=\"filter-btn\" data-category=\"skf\">Photography<\/a><a class=\"filter-btn\" data-category=\"svm\">Visual merchandising<\/a><a class=\"filter-btn\" data-category=\"spot\">Acting<\/a><a class=\"filter-btn\" data-category=\"sku\">Clothing construction<\/a><a class=\"filter-btn\" data-category=\"achievements\">Achievements<\/a><a class=\"filter-btn\" data-category=\"events\">Events<\/a>    <\/div>\n\n    <div id=\"filter-status-container\" style=\"display: none;\">\n        <p id=\"filter-status-text\"><\/p>\n    <\/div>\n\n    <div class=\"container-blog\" id=\"post-container\">\n        <div class=\"column\" id=\"column-0\"><\/div>\n        <div class=\"column\" id=\"column-1\"><\/div>\n        <div class=\"column\" id=\"column-2\"><\/div>\n    <\/div>\n    <a id=\"load-more\" style=\"display:none; cursor: pointer;\"> Load more<\/a>\n\n    <script>\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        \n        let page = 1;\n        let category = 'all';\n        let tag = 'all';\n        const currentLang = \"en\"; \n        const filterPrefix = \"Przegl\u0105dasz osi\u0105gni\u0119cia\";\n        \n        let loadMoreButton = document.getElementById(\"load-more\");\n        let noMorePosts = false;\n        let adminAjaxUrl = \"https:\/\/ksa.edu.pl\/wp-admin\/admin-ajax.php\";\n        \n        const loadingGif = 'data:image\/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=';\n        const columns = document.querySelectorAll(\".column\");\n        \n        \/\/ S\u0141OWNIK MAPOWANIA TAG\u00d3W NA \u0141ADNE NAZWY\n        const tagNames = {\n            'sapu': 'SAPU',\n            'skf': 'SKF',\n            'swp': 'SWP',\n            'svm': 'SVM',\n            'spot': 'SPOT',\n            'sku': 'SKU'\n        };\n\n        \/\/ --- UX FUNCTIONS ---\n\n        function updateStatusText() {\n            const container = document.getElementById(\"filter-status-container\");\n            const statusText = document.getElementById(\"filter-status-text\");\n            const decodedCat = decodeURIComponent(category).toLowerCase();\n            \n            \/\/ Pokazujemy tylko je\u015bli jeste\u015bmy w osi\u0105gni\u0119ciach i mamy tag szko\u0142y\n            if ((decodedCat.includes('osiagniecia') || decodedCat.includes('achievements')) && tag !== 'all') {\n                const displayName = tagNames[tag.toLowerCase()] || tag.toUpperCase();\n                statusText.innerText = `${filterPrefix} ${displayName}`;\n                container.style.display = \"block\";\n            } else {\n                container.style.display = \"none\";\n                statusText.innerText = '';\n            }\n        }\n\n        function addPlaceholders(count = 9) {\n            const placeholderCard = `\n                <div class=\"card placeholder-card\" style=\"opacity: 0.7; pointer-events: none;\">\n                    <div style=\"height: 200px; background: #eee url(${loadingGif}) center; background-size: cover; border-radius: 4px; margin-bottom: 10px;\"><\/div>\n                    <p style=\"height: 1.2em; width: 60%; background-color: #eee; border-radius: 4px; margin-bottom: 8px;\"><\/p>\n                    <h2 style=\"height: 2em; background-color: #eee; border-radius: 4px;\"><\/h2>\n                <\/div>\n            `;\n            for (let i = 0; i < count; i++) {\n                columns[i % columns.length].innerHTML += placeholderCard;\n            }\n            loadMoreButton.style.display = \"none\";\n        }\n        \n        function removePlaceholders() {\n            document.querySelectorAll(\".placeholder-card\").forEach(pc => pc.remove());\n        }\n\n        function updateURL(newCategory, newTag) {\n            const currentUrl = new URL(window.location.href);\n            if (newCategory === \"all\") {\n                currentUrl.hash = ''; \n            } else {\n                let hash = `#${newCategory}`;\n                if (newTag !== \"all\") hash += `#${newTag}`;\n                currentUrl.hash = hash;\n            }\n            history.pushState(null, null, currentUrl.href);\n        }\n\n        function parseURLFilters() {\n            let hash = window.location.hash.substring(1).toLowerCase(); \n            let filters = { category: 'all', tag: 'all' };\n            if (hash) {\n                let parts = hash.split('#').filter(Boolean).map(p => p.replace(\/\\\/$\/, \"\"));\n                if (parts.length >= 1) filters.category = parts[0];\n                if (parts.length >= 2) filters.tag = parts[1];\n            }\n            return filters;\n        }\n\n        function setActiveFilters() {\n            document.querySelectorAll(\".filter-btn\").forEach(b => b.classList.remove(\"active\"));\n            const decodedCategory = decodeURIComponent(category).toLowerCase();\n            let activeBtn = document.querySelector(`.filter-btn[data-category=\"${decodedCategory}\"]`);\n            if (activeBtn) {\n                activeBtn.classList.add(\"active\");\n            } else {\n                document.querySelector(`.filter-btn[data-category=\"all\"]`)?.classList.add('active');\n            }\n        }\n        \n        function loadPosts(reset = false, fallback = false) {\n            if(reset) {\n                columns.forEach(col => col.innerHTML = '');\n                noMorePosts = false;\n                addPlaceholders();\n                updateStatusText(); \/\/ Aktualizacja napisu przy resecie\n            }\n            \n            fetch(`${adminAjaxUrl}?action=load_masonry_posts&page=${page}&category=${category}&tag=${tag}&check_more=1&lang=${currentLang}`)\n                .then(response => response.json())\n                .then(data => {\n                    removePlaceholders();\n                    \n                    if (!data.html && tag !== 'all' && !fallback) {\n                        tag = 'all'; page = 1;\n                        updateURL(category, tag); \n                        setTimeout(() => {\n                             setActiveFilters(); \n                             loadPosts(true, true);\n                        }, 50); \n                        return;\n                    }\n                    \n                    setActiveFilters(); \n\n                    if (data.html) {\n                        let parser = new DOMParser();\n                        let doc = parser.parseFromString(data.html, 'text\/html');\n                        let cards = doc.querySelectorAll(\".card\");\n                        cards.forEach((card, index) => {\n                            columns[index % columns.length].appendChild(card);\n                        });\n                        page++;\n                    } else if (reset) {\n                        document.getElementById(\"post-container\").innerHTML = `<p style=\"text-align:center; width:100%;\">Brak post\u00f3w.<\/p>`;\n                    }\n\n                    if (!data.has_more_posts) {\n                        noMorePosts = true;\n                        loadMoreButton.style.display = \"none\";\n                    } else {\n                        noMorePosts = false;\n                        loadMoreButton.style.display = \"block\";\n                    }\n                })\n                .catch(error => {\n                    removePlaceholders();\n                    setActiveFilters(); \n                    console.error(\"B\u0142\u0105d \u0142adowania:\", error);\n                });\n        }\n\n        \/\/ --- INITIALIZATION ---\n        const initialFilters = parseURLFilters();\n        category = initialFilters.category;\n        tag = initialFilters.tag;\n        setActiveFilters(); \n        loadPosts(true);\n\n        \/\/ --- EVENT LISTENERS ---\n        loadMoreButton.addEventListener(\"click\", () => {\n            if (!noMorePosts) loadPosts();\n        });\n\n        document.querySelectorAll(\".filter-btn\").forEach(btn => {\n            btn.addEventListener(\"click\", function (e) {\n                e.preventDefault();\n                category = this.getAttribute(\"data-category\");\n                tag = 'all'; page = 1;\n                updateURL(category, tag);\n                loadPosts(true);\n            });\n        });\n        \n        window.addEventListener(\"popstate\", function () {\n            const filters = parseURLFilters();\n            category = filters.category; tag = filters.tag; page = 1;\n            loadPosts(true);\n        });\n    });\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>News Take a look behind the scenes of the events at the Krakow School of Arts. See what we do [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"content-type":"","site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-89319","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/ksa.edu.pl\/en\/wp-json\/wp\/v2\/pages\/89319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ksa.edu.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ksa.edu.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ksa.edu.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ksa.edu.pl\/en\/wp-json\/wp\/v2\/comments?post=89319"}],"version-history":[{"count":1,"href":"https:\/\/ksa.edu.pl\/en\/wp-json\/wp\/v2\/pages\/89319\/revisions"}],"predecessor-version":[{"id":113656,"href":"https:\/\/ksa.edu.pl\/en\/wp-json\/wp\/v2\/pages\/89319\/revisions\/113656"}],"wp:attachment":[{"href":"https:\/\/ksa.edu.pl\/en\/wp-json\/wp\/v2\/media?parent=89319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}