{"id":34239,"date":"2025-08-28T12:10:18","date_gmt":"2025-08-28T10:10:18","guid":{"rendered":"https:\/\/labs.ubn.one\/signage\/?page_id=34239"},"modified":"2026-05-15T15:46:36","modified_gmt":"2026-05-15T13:46:36","slug":"noordkop247","status":"publish","type":"page","link":"https:\/\/labs.ubn.one\/signage\/index.php\/noordkop247\/","title":{"rendered":"Noordkop247"},"content":{"rendered":"\n<!-- NKC LOGO AND BASIC CSS -->\n<style>\n\t.site-identity:after {\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\tbackground-image: none;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: contain;\n\t\twidth: 480px;\n\t\t\/* height: 304px; *\/\n\t\theight: 380px;\n\t\tmargin-top: -345px;\n\t\tz-index: 9999;\n\t}\n\tbody {\n\t\tbackground-color: white;\n\t\tfont-family: 'Montserrat','helvetica',Arial !important;\n                font-weight: 600;\n\t\tbackground-image: url(\"https:\/\/labs.ubn.one\/signage\/wp-content\/uploads\/2024\/07\/nkc_bg.png\");\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: right;\n\t}\n\n\/* NEWS SCRAPER *\/\n\t.entry-content img {\n\t  max-width: 79% !important;\n\t}\n\t.slide-entry-wrap {\n\t\tpadding-left: 73px !important;\n\t}\n\t.slide-content {\n\t\ttext-align: center;\n\t}\n\t.slide-entry-title {\n\t\tfont-size: 30px;\n\t\tcolor: #ca9215;\n\t\t\/* color: #dde007; *\/\n\t\tfont-family: 'Montserrat','helvetica',Arial;\n \t\tfont-weight: 600;\n\t\tline-height: 1.2;\n\t\tmargin-top: 5px;\n\t}\n\t.entry-content {\n\t\t\/* background-color: black; *\/\n\t}\n\thr {\n\t\tdisplay: none;\n\t}\n<\/style>\n\n\n\n<!-- LOGO DIV STYLE -->\n<style>\n.logo-div-logo {\n    display: block;\n    position: absolute;\n    background-image: url(\"https:\/\/labs.ubn.one\/signage\/wp-content\/uploads\/2025\/08\/Noordkop247-logo-transparant.png\");\n    background-repeat: no-repeat;\n    background-position: center;\n    background-size: contain;\n    width: 480px;\n    height: 380px;\n    margin-left: -624px;\n    margin-top: 177px;\n    z-index: 9999;\n}\n<\/style>\n<div class=\"logo-div-logo\"><\/div>\n\n\n\n<!-- HEADLINES TITLE -->\n<style>\n    .headlines_title {\n        width: 800px;\n        float: left;\n        margin-top: 50px;\n        margin-bottom: 30px;\n        margin-left: 73px;\n        font-family: 'Montserrat','helvetica',Arial;\n        font-weight: 600;\n        font-size: 30px;\n        color: white;\n    }\n    .headlines_sub {\n        font-size: 20px;\n\tcolor: #e6e6e6;\n        background-color: #1E1D1B;\n        padding: 5px 5px 5px 20px;\n        width: 460px;\n        border-radius: 0px;\n        position: absolute;\n        top: 568px;\n        left: 841px;\n    }\n    .headlines_sub i {\n\tcolor: #a61735;       \n    }\n<\/style>\n\n<div class=\"headlines_title\">Headlines uit de Noordkop:<\/div>\n<div class=\"headlines_sub\"><i class=\"fa-solid fa-arrow-pointer\"><\/i> Bekijk meer Nieuws op Noordkop247.nl<\/div>\n\n\n\n<style>\n\/* --- Zorg dat de plugin container geen absolute position krijgt --- *\/\n.wprss_ajax {\n    display: block !important;\n    width: auto !important;\n    position: absolute;\n    top: 109px;\n    left: 841px;\n}\n\n\/* Hoofdcontainer: vaste ruimtes zoals gevraagd *\/\n.wp_rss_retriever {\n    position: relative !important;\n    width: 965px !important;   \/* was 865 *\/\n    height: auto !important;   \/* 400px limiet verwijderd *\/\n    overflow: visible !important;\n}\n\n\/* UL reset *\/\n.wp_rss_retriever_list {\n    list-style: none !important;\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* Verberg metadata en beschrijving (zoals gewenst) *\/\n.wp_rss_retriever_container,\n.wp_rss_retriever_metadata,\n.wp_rss_retriever_date {\n    display: none !important;\n}\n\n\/* Items positie (links groot, rechts twee klein) *\/\n.wp_rss_retriever_item {\n    position: absolute !important;\n    overflow: hidden !important;\n    border-radius: 0px !important; \/* square images *\/\n}\n\n\/* Groot links *\/\n.wp_rss_retriever_item:nth-child(1) {\n    left: 0;\n    top: 0;\n    width: 660px !important;   \/* vergroot zodat rechts mooi uitkomt *\/\n    height: 440px !important;  \/* verhouding foto behouden *\/\n}\n\n\/* Rechts boven *\/\n.wp_rss_retriever_item:nth-child(2) {\n    right: 0;\n    top: 0;\n    width: 290px !important;\n    height: 215px !important;\n\n    \/* ruimte tussen boven & onder *\/\n    margin-bottom: 10px !important;\n}\n\n\/* Rechts onder *\/\n.wp_rss_retriever_item:nth-child(3) {\n    right: 0;\n    top: 225px !important;  \/* ruimte cre\u00ebren onder blok 2 *\/\n    width: 290px !important;\n    height: 215px !important;\n}\n\n\/* Afbeeldingen - forceer zichtbaarheid en cover *\/\n.wp_rss_retriever_image,\n.wp_rss_retriever_image img {\n    display: block !important;\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    border-radius: 0px !important; \/* vierkant *\/\n}\n\n\/* Soms voegt plugin inline width\/height toe op de <a> wrapper. Override *\/\n.wp_rss_retriever_item .wp_rss_retriever_image[style] {\n    width: 100% !important;\n    height: 100% !important;\n}\n\n\/* Titels *\/\n.wp_rss_retriever_title {\n    position: absolute !important;\n    left: 0 !important;\n    right: 0 !important;\n    bottom: 0 !important;\n    padding: 12px !important;\n    color: #ffffff !important;\n    font-family: 'Montserrat', Arial, sans-serif !important;\n    font-weight: 700 !important;\n    font-size: 20px !important;\n    text-decoration: none !important;\n    background: linear-gradient(transparent, rgba(0,0,0,0.65)) !important;\n    display: block !important;\n    box-sizing: border-box !important;\n    line-height: 1.15 !important;\n    overflow: hidden !important;\n    white-space: nowrap !important; \/* we will truncate with JS *\/\n    text-overflow: ellipsis;\n}\n\n\/* Optionele debug-outline (uitzetten door 'display: none' hieronder) *\/\n.rss-debug-outline { display: none; outline: 2px dashed rgba(255,0,0,0.25); }\n\n\/* OVERRULE inline width\/height van WP RSS retriever *\/\n.wp_rss_retriever_image,\n.wp_rss_retriever_image img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n}\n\n\/* De wrapper forceer je ook naar 100% hoogte *\/\n.wp_rss_retriever_item .wp_rss_retriever_image[style] {\n    width: 100% !important;\n    height: 100% !important;\n}\n\n.wp_rss_retriever_item_wrapper {\n    position: relative !important;\n    width: 100% !important;\n    height: 100% !important;\n    overflow: hidden !important;\n    border-radius: 0px !important;\n}\n\n.wp_rss_retriever_image {\n    position: absolute !important;\n    top: 0; left: 0;\n    width: 100% !important;\n    height: 100% !important;\n    z-index: 1 !important;   \/* afbeelding bovenaan *\/\n}\n\n.wp_rss_retriever_image img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n}\n\n.wp_rss_retriever_title {\n    position: absolute !important;\n    left: 0 !important;\n    right: 0 !important;\n    bottom: -10px !important;\n    padding: 14px !important;\n    font-size: 20px !important;\n    font-weight: 700 !important;\n    color: #fff !important;\n\n    \/* Zorg dat de gradient exact tot de onderrand loopt *\/\n    background: linear-gradient(\n        rgba(0,0,0,0) 0%,\n        rgba(0,0,0,0.75) 100%\n    ) !important;\n\n    z-index: 5 !important;\n    border-radius: 0px !important;\n    white-space: nowrap !important;\n    text-overflow: ellipsis;\n    overflow: hidden !important;\n}\n<\/style>\n\n\n\n<!-- RSS TITLE LIMIT -->\n<script>\n(function () {\n    \/\/ ---- Config ----\n    const MAX_TITLE_CHARS = 45; \/\/ <-- pas hier aan\n    const TITLE_SELECTOR = \".wp_rss_retriever_title\";\n    const FEED_WRAPPER_SELECTOR = \".wprss_ajax\"; \/\/ plugin wrapper waar AJAX in plaatst\n\n    \/\/ ---- Functie: Verkort teksten en voeg ellipsis toe (veilig, behoudt link) ----\n    function shortenTitles() {\n        document.querySelectorAll(TITLE_SELECTOR).forEach(function (titleEl) {\n            \/\/ bewaar originele volledige titel in data attribuut (indien nog niet gedaan)\n            if (!titleEl.dataset.fullTitle) {\n                titleEl.dataset.fullTitle = titleEl.textContent.trim();\n            }\n            const full = titleEl.dataset.fullTitle;\n            if (!full) return;\n            if (full.length > MAX_TITLE_CHARS) {\n                \/\/ gebruik substring op woordgrens als mogelijk (niet mid-word afbreken)\n                let cut = full.substring(0, MAX_TITLE_CHARS);\n                \/\/ probeer laatste spatie zoeken voor nettere afkapping\n                const lastSpace = cut.lastIndexOf(' ');\n                if (lastSpace > Math.floor(MAX_TITLE_CHARS * 0.6)) {\n                    cut = cut.substring(0, lastSpace);\n                }\n                titleEl.textContent = cut + \"\u2026\";\n                titleEl.setAttribute('title', full); \/\/ tooltip met volledige titel\n            } else {\n                titleEl.textContent = full;\n            }\n        });\n    }\n\n    \/\/ ---- Functie: Forceer afbeeldingen zichtbaar (somige plugins togglen classes) ----\n    function ensureImagesVisible() {\n        document.querySelectorAll(\".wp_rss_retriever_image, .wp_rss_retriever_image img\").forEach(function (el) {\n            el.style.display = \"block\";\n            el.style.visibility = \"visible\";\n            el.style.opacity = \"1\";\n        });\n    }\n\n    \/\/ ---- Run once at start ----\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        shortenTitles();\n        ensureImagesVisible();\n    });\n\n    \/\/ ---- Luister naar plugin custom event(s) (primaire) ----\n    \/\/ RSS Feed Retriever triggert custom events na fetch; luister daarop\n    document.addEventListener(\"wprss_fetch_done\", function () {\n        shortenTitles();\n        ensureImagesVisible();\n    });\n    \/\/ fallback alternatieve event name\n    document.addEventListener(\"wprss_loaded\", function () {\n        shortenTitles();\n        ensureImagesVisible();\n    });\n\n    \/\/ ---- jQuery AJAX complete fallback (indien jQuery beschikbaar) ----\n    if (window.jQuery) {\n        jQuery(document).ajaxComplete(function (event, xhr, settings) {\n            \/\/ kleine vertraging zodat DOM geschilderd is\n            setTimeout(function () {\n                shortenTitles();\n                ensureImagesVisible();\n            }, 50);\n        });\n    }\n\n    \/\/ ---- MutationObserver fallback: observe veranderingen in de feed wrapper ----\n    const feedWrapper = document.querySelector(FEED_WRAPPER_SELECTOR);\n    if (feedWrapper) {\n        const mo = new MutationObserver(function (mutations) {\n            \/\/ als childList verandert, run de routines\n            let changed = false;\n            for (const m of mutations) {\n                if (m.addedNodes && m.addedNodes.length) { changed = true; break; }\n                if (m.removedNodes && m.removedNodes.length) { changed = true; break; }\n            }\n            if (changed) {\n                \/\/ korte vertraging zodat images DOM attributes zijn gezet\n                setTimeout(function () {\n                    shortenTitles();\n                    ensureImagesVisible();\n                }, 60);\n            }\n        });\n        mo.observe(feedWrapper, { childList: true, subtree: true });\n    } else {\n        \/\/ als wrapper niet beschikbaar: observe document body als backup\n        const mo2 = new MutationObserver(function (mutations) {\n            let changed = false;\n            for (const m of mutations) {\n                if (m.addedNodes && m.addedNodes.length) { changed = true; break; }\n            }\n            if (changed) {\n                setTimeout(function () {\n                    shortenTitles();\n                    ensureImagesVisible();\n                }, 80);\n            }\n        });\n        mo2.observe(document.body, { childList: true, subtree: true });\n    }\n\n    \/\/ ---- Debug functie: toon outlines tijdelijk (zet 'display: block' in CSS hierboven) ----\n    window.rssDebugOutline = function () {\n        document.querySelectorAll('.wp_rss_retriever_item').forEach(i => i.classList.add('rss-debug-outline'));\n        document.querySelectorAll('.wp_rss_retriever_image').forEach(i => i.classList.add('rss-debug-outline'));\n    };\n\n})();\n<\/script>\n\n\n<div class=\"wprss_ajax\" data-id=\"rssf6df7d1c05\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/labs.ubn.one\/signage\/wp-content\/plugins\/wp-rss-retriever\/inc\/imgs\/ajax-loader.gif\" alt=\"Loading RSS Feed\" width=\"16\" height=\"16\"><\/div>\n\n\n\n<!-- RADIO BAR SONGTICKER -->\n<style>\n   .Radio_Bar {\n      width: 1806px;\n      height: 250px;\n      border: none;\n      position: absolute;\n      left: 68px;\n      top: 657px;\n      background: transparant;\n   }\n.radioPlayer_visual img{\n  min-width: 210px !important;\n  max-width: 210px !important;\n}\n\n<\/style>\n<div class=\"Radio_Bar\">    \n  <script\n    type=\"text\/javascript\"\n    src=\"https:\/\/cdr.ubn.one\/client\/nk247\/st\/nk247_songticker_js.js?alwaysDisplay=true&#038;radioStreamInteraction=true\">\n  <\/script>\n<\/div>\n\n\n\n<!-- NEWS TICKER -->\n<style>\n.ticker-wrapper {\n    width: 1690px !important;\n    border: none;\n    position: absolute;\n    left: 116px;\n    top: 903px;\n}\n<\/style>\n<link rel=\"stylesheet\" href=\"https:\/\/cdr.ubn.one\/client\/nk247\/nt\/styles\/style.css\">\n\n<div class=\"ticker-wrapper\">\n  <div class=\"ticker\">\n     <div class=\"ticker__item\">Laden&#8230;<\/div>\n  <\/div>\n<\/div>\n<script src=\"https:\/\/cdr.ubn.one\/client\/nk247\/nt\/js\/config.js\"><\/script> \n<script src=\"https:\/\/cdr.ubn.one\/client\/nk247\/nt\/js\/main.js\"><\/script>\n\n\n\n<!-- TICKER BAR -->\n<style>\n.div_iframe {\n    width: 1690px;\n    height: 58px;\n    border: none;\n    position: absolute;\n    left: 116px;\n    top: 990px;\n    margin: 0;\n    overflow: hidden;\n    z-index: 1;\n    background: linear-gradient(to right, #146089, #0f4a6a);\n    color: #fff;\n    font-family: 'Montserrat','helvetica',Arial;\n    font-weight: 600;\n    font-size: 20px;\n    padding: 0 10px;\n    box-sizing: border-box;\n}\n\n\/* Static center text *\/\n#static-info {\n    position: absolute;\n    left: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n    white-space: nowrap;\n    text-align: center;\n}\n\n\/* Date\/time on the right, ignored by center alignment *\/\n#date-time {\n    position: absolute;\n    right: 10px;\n    top: 50%;\n    transform: translateY(-50%);\n    font-size: 20px;\n    font-family: 'Montserrat','helvetica',Arial;\n    font-weight: 600;\n    white-space: nowrap;\n}\n\n.blink-colon {\n    display: inline-block;\n    transition: color 0.0s;\n}\n<\/style>\n\n<div class=\"div_iframe\">\n    <div id=\"static-info\"><i class=\"fa-brands fa-whatsapp\"><\/i> 088 5247 247 &nbsp; <i class=\"fa-brands fa-square-facebook\"><\/i>\/Noordkop247 &nbsp; <i class=\"fa-brands fa-square-threads\"><\/i> <i class=\"fa-brands fa-instagram\"><\/i>\/nk247 &nbsp; <i class=\"fa-solid fa-radio\"><\/i> 105.6 &#038; 107.7 MHz &#8211; Digitaal &#8211; Noordkop247.nl\/live<\/div>\n    <div id=\"date-time\"><\/div>\n<\/div>\n\n<script>\n\/\/ Live date\/time\nfunction updateDateTime() {\n    const dtDiv = document.getElementById('date-time');\n\n    function createTimeElements() {\n        dtDiv.innerHTML = `\n            <span id=\"date-part\"><\/span><span id=\"colon\" class=\"blink-colon\">:<\/span><span id=\"minute-part\"><\/span>\n        `;\n    }\n\n    createTimeElements();\n\n    const datePart = document.getElementById('date-part');\n    const colon = document.getElementById('colon');\n    const minutePart = document.getElementById('minute-part');\n\n    let showColon = true;\n\n    function refreshTime() {\n        const now = new Date();\n\n        const dd = String(now.getDate()).padStart(2, '0');\n        const mm = String(now.getMonth() + 1).padStart(2, '0');\n        const yyyy = now.getFullYear();\n        const hh = String(now.getHours()).padStart(2, '0');\n        const min = String(now.getMinutes()).padStart(2, '0');\n\n        datePart.textContent = `${dd}-${mm}-${yyyy} ${hh}`;\n        minutePart.textContent = min;\n\n        colon.style.color = showColon ? \"#fff\" : \"#1E1D1B\";\n        showColon = !showColon;\n    }\n\n    refreshTime();\n    setInterval(refreshTime, 1000);\n}\n\n\/\/ Initialize\nupdateDateTime();\n<\/script>\n\n\n\n<!-- PAGE RELOAD EVERY 1 HOURS -->\n<script>\n\/\/ Function to refresh the page\nfunction refreshPage() {\n    window.location.reload(true); \/\/ Reloads the current page from the server\n}\n\n\/\/ Function to calculate the time until the next 1 minute past the hour\nfunction getTimeUntilNextMinutePastHour() {\n    var now = new Date();\n    var nextMinutePastHour = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours() + 1, 1, 0, 0);\n    return nextMinutePastHour - now;\n}\n\n\/\/ Initial setup to refresh the page at the next 1 minute past the hour\nfunction setupInitialRefresh() {\n    var timeUntilNextMinutePastHour = getTimeUntilNextMinutePastHour();\n    setTimeout(function() {\n        refreshPage();\n        \/\/ After the initial refresh, set up a regular interval for future refreshes\n        setInterval(refreshPage, 3600000); \/\/ 3600000 ms = 1 hour\n    }, timeUntilNextMinutePastHour);\n}\n\n\/\/ Set up the initial refresh\nsetupInitialRefresh();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Headlines uit de Noordkop: Bekijk meer Nieuws op Noordkop247.nl Laden&#8230; 088 5247 247 &nbsp; \/Noordkop247 &nbsp; \/nk247 &nbsp; 105.6 &#038; 107.7 MHz &#8211; Digitaal &#8211;&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-34239","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/labs.ubn.one\/signage\/index.php\/wp-json\/wp\/v2\/pages\/34239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/labs.ubn.one\/signage\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/labs.ubn.one\/signage\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/labs.ubn.one\/signage\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/labs.ubn.one\/signage\/index.php\/wp-json\/wp\/v2\/comments?post=34239"}],"version-history":[{"count":242,"href":"https:\/\/labs.ubn.one\/signage\/index.php\/wp-json\/wp\/v2\/pages\/34239\/revisions"}],"predecessor-version":[{"id":37197,"href":"https:\/\/labs.ubn.one\/signage\/index.php\/wp-json\/wp\/v2\/pages\/34239\/revisions\/37197"}],"wp:attachment":[{"href":"https:\/\/labs.ubn.one\/signage\/index.php\/wp-json\/wp\/v2\/media?parent=34239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}