translations not found
Array
(
    [id] => 21
    [short] => lwi
    [languages] => Array
        (
            [0] => fr
            [1] => nl
            [2] => en
            [3] => de
            [4] => it
            [5] => es
        )

    [canonical] => https://www.laurentwillen.be/sitemap.xml/
    [images] => https://images.laurentwillen.be
    [language] => fr
)
Array
(
    [country] => US
    [city] => Santa Paula
    [ip] => 216.73.216.104
    [ua] => Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
    [domain] => central.laurentwillen.be
    [short_domain] => laurentwillen
    [tld] => be
    [uri] => /sitemap.xml/
)
Array
(
    [templates] => header_html,header_css,header_jsonld,header_js,title,content,footer
    [modules] => Array
        (
            [home] => header,navigation,footer
            [category] => header
            [post] => header
        )

    [loader] => /svg/load.svg
)
Array
(
    [href_lang] => Array
        (
        )

)

function deferLoading(data, element) { const submitData = { ...data, language: "", resolution: `${window.screen.width * window.devicePixelRatio}x${window.screen.height * window.devicePixelRatio}`, useragent: navigator.userAgent, page: window.location.href, product: "", regex: "", ads_id: "" }; // Support for element being an array if (Array.isArray(element)) { element = element[0]; } const el = document.getElementById(element); if (el?.dataset?.device) { submitData.device = el.dataset.device; } fetch(`/api/api_generic.php?action=${data.action}&random=${Math.random()}`, { method: 'POST', headers: new Headers(), body: JSON.stringify({ data: submitData }) }) .then(resp => resp.json()) .then(response => { if (response.success !== 1) { if (response.validate?.failed === 1) { alert(""); } return; } if (element === "alert" || response.alert) { alert(response.html); } else if (submitData.overlay) { const overlay = document.getElementById("overlay_foreground"); if (overlay) overlay.innerHTML += response.html; } else if (el) { el.style.display = "block"; el.innerHTML = response.html; el.dataset.done = 1; } if (response.lib) { switch (response.lib) { case "GoogleCharts": loadJS("https://www.gstatic.com/charts/loader.js"); const prices1 = JSON.parse(response.prices); setTimeout(() => { google.charts.load('current', { packages: ['corechart'] }); google.charts.setOnLoadCallback(() => drawGoogleChart(prices1)); }, 1000); break; case "GoogleChartsScreens": loadJS("https://www.gstatic.com/charts/loader.js"); const prices2 = JSON.parse(response.prices); setTimeout(() => { google.charts.load('current', { packages: ['corechart'] }); google.charts.setOnLoadCallback(() => drawGoogleChartScreens(prices2, element)); }, 1000); break; } } // Execute inline scripts if (el) { const scripts = el.querySelectorAll("script"); scripts.forEach(script => { if (script.innerText) eval(script.innerText); }); } }) .catch(err => console.error("Fetch error:", err)); } function drawGoogleChart(prices) { const data = new google.visualization.DataTable(); data.addColumn('string', 'Date'); data.addColumn('number', 'Price'); data.addRows(prices); const options = { curveType: 'function', width: '100%', height: 300, chartArea: { width: '100%', height: '80%' }, legend: { position: 'none' } }; const charts = [ { id: 'chart_div', container: 'notifications_overlay' }, { id: 'chart_div_notif', container: null }, { id: 'chart_div_prices', container: null } ]; charts.forEach(chart => { const chartEl = document.getElementById(chart.id); if (chart.container) document.getElementById(chart.container).style.display = "block"; if (chartEl) new google.visualization.LineChart(chartEl).draw(data, options); if (chart.container) document.getElementById(chart.container).style.display = "none"; }); } function drawGoogleChartScreens(prices, element) { const data = google.visualization.arrayToDataTable(prices); const options = { seriesType: 'bars', width: '100%', height: 500, chartArea: { width: '90%', height: '80%' }, legend: { position: 'bottom', maxLines: 4 } }; const chartLocation = document.getElementById(element)?.dataset?.device; if (chartLocation) { console.log('chart location: ' + chartLocation); const chart = new google.visualization.ComboChart(document.getElementById(`${chartLocation}_chart`)); chart.draw(data, options); } } page_type = ''; var observer = new IntersectionObserver( (entries, observer) => { entries.forEach(entry => { let data = {}; if (entry.intersectionRatio > 0.0) { switch (entry.target.className) { case "defer_loading": case "similar": prepDefer(entry.target.id); break; case "gallery-wrapper": done = entry.target.dataset.done; small = entry.target.dataset.small.split(","); big = entry.target.dataset.big.split(","); if (done==0) { for (var a=0;a"; // document.getElementById(entry.target.id).innerHTML += "thumb_full"; } document.getElementById(entry.target.id).dataset.done = 1; } break; } } }); }) for (let gallery of document.getElementsByClassName('gallery-wrapper')) { observer.observe(gallery); } for (let defer_loading of document.getElementsByClassName('defer_loading')) { observer.observe(defer_loading); } function prepDefer(element) { element = element.split(","); for (e=0;e