{"id":545,"date":"2026-08-08T19:54:49","date_gmt":"2026-08-08T17:54:49","guid":{"rendered":"https:\/\/www.dr-reinigingstechniek.eu\/telechargements\/"},"modified":"2026-10-31T20:43:10","modified_gmt":"2026-10-31T19:43:10","slug":"telechargements","status":"publish","type":"page","link":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/telechargements\/","title":{"rendered":"T\u00e9l\u00e9chargements"},"content":{"rendered":"\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dr-reinigingstechniek.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Downloads\",\"item\":\"https:\/\/dr-reinigingstechniek.eu\/downloads\"}]}<\/script>\n<div id=\"main-content\">\n<div id=\"downloads-content\"><section class=\"machines-page-hero downloads-hero\" aria-labelledby=\"downloads-title\"><div class=\"machines-page-hero-image downloads-hero-image service-category-visual-downloads\" role=\"img\" aria-label=\"Documentation technique, manuels et t\u00e9l\u00e9chargements de DR Reinigingstechniek\"><\/div><div class=\"shell machines-page-hero-inner\"><div class=\"machines-page-hero-copy\"><div class=\"eyebrow\"><span><\/span> Centre de documentation<\/div><h1 id=\"downloads-title\">T\u00e9l\u00e9chargements &amp; documentation<\/h1><p>Trouvez les informations produit publiques et, apr\u00e8s authentification, la documentation technique destin\u00e9e aux revendeurs agr\u00e9\u00e9s.<\/p><div class=\"page-breadcrumb\"><a href=\"\/fr\/\">Accueil<\/a><span>\/<\/span><strong>T\u00e9l\u00e9chargements<\/strong><\/div><\/div><\/div><\/section><section class=\"downloads-section downloads-public-section\" aria-labelledby=\"public-downloads-title\"><div class=\"shell\"><div class=\"catalog-heading downloads-heading\"><div><div class=\"eyebrow\"><span><\/span> T\u00e9l\u00e9chargements publics<\/div><h2 id=\"public-downloads-title\">Documents pour clients et utilisateurs<\/h2><\/div><p>Manuels, brochures et informations produit publiques pourront \u00eatre charg\u00e9s dynamiquement dans cette section ult\u00e9rieurement.<\/p><\/div><div id=\"downloads-filter-tabs\" class=\"filter-tabs\" role=\"tablist\" aria-label=\"Filtrer par machine\"><\/div><div id=\"downloads-list\" class=\"downloads-grid\" role=\"list\" aria-live=\"polite\" aria-busy=\"false\"><\/div><p id=\"downloads-status\" class=\"downloads-status\" role=\"status\" aria-live=\"polite\"><\/p><\/div><\/section><section class=\"downloads-section downloads-dealer-section\" aria-labelledby=\"dealer-downloads-title\"><div class=\"shell\"><div class=\"dealer-downloads-panel\"><div class=\"dealer-downloads-intro\"><div class=\"dealer-lock-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"10\" width=\"14\" height=\"11\" rx=\"2\"><\/rect><path d=\"M8 10V7a4 4 0 0 1 8 0v3M12 14v3\"><\/path><\/svg><\/div><div><div class=\"eyebrow\"><span><\/span> Espace revendeur prot\u00e9g\u00e9<\/div><h2 id=\"dealer-downloads-title\">Documentation technique revendeurs<\/h2><p>Apr\u00e8s authentification valide en tant que revendeur, le portail peut charger manuels de service, documentation de diagnostic et fichiers techniques via JavaScript dans le conteneur revendeur vide.<\/p><\/div><a href=\"\/fr\/mon-compte\/\" class=\"button button-primary\">Se connecter en tant que revendeur <span class=\"arrow arrow-short\" aria-hidden=\"true\">\u2192<\/span><\/a><\/div><div id=\"dealer-downloads-list\" class=\"downloads-grid dealer-downloads-grid\" role=\"list\" aria-live=\"polite\" aria-busy=\"false\" data-access=\"dealer\"><\/div><p id=\"dealer-downloads-status\" class=\"downloads-status dealer-downloads-status\" role=\"status\" aria-live=\"polite\"><\/p><\/div><\/div><\/section><section class=\"downloads-help-section\" aria-labelledby=\"downloads-help-title\"><div class=\"shell downloads-help-panel\"><div><div class=\"eyebrow\"><span><\/span> Document introuvable ?<\/div><h2 id=\"downloads-help-title\">Demandez-nous le bon fichier<\/h2><p>Indiquez le mod\u00e8le de machine, de robot ou de pi\u00e8ce et de pr\u00e9f\u00e9rence le num\u00e9ro de s\u00e9rie. Nous pourrons ainsi vous fournir la bonne version du document.<\/p><\/div><a href=\"mailto:info@reinigingstechniek.eu?subject=Aanvraag%20documentatie\" class=\"button button-primary\">Demander la documentation <span class=\"arrow arrow-short\" aria-hidden=\"true\">\u2192<\/span><\/a><\/div><\/section><section class=\"trust-strip\" aria-label=\"Nos atouts\"><div class=\"shell trust-grid\"><div class=\"trust-item\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z\"><\/path><path d=\"m9 12 2 2 4-5\"><\/path><\/svg><div><strong>26 ans d\u2019exp\u00e9rience<\/strong><span>Entreprise familiale experte<\/span><\/div><\/div><div class=\"trust-item\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M14.7 6.3a4 4 0 0 0-5-5l2.1 2.1-2.4 2.4-2.1-2.1a4 4 0 0 0 5 5L5 16l-2 4 4-2 7.7-7.7Z\"><\/path><\/svg><div><strong>Service dans notre propre atelier<\/strong><span>M\u00e9canique, \u00e9lectronique et R&amp;D<\/span><\/div><\/div><div class=\"trust-item\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m21 8-9 5-9-5 9-5 9 5Z\"><\/path><path d=\"m3 8 9 5 9-5v9l-9 5-9-5V8Z\"><\/path><path d=\"M12 13v9\"><\/path><\/svg><div><strong>Disponible imm\u00e9diatement<\/strong><span>Machines neuves et remises \u00e0 neuf en stock<\/span><\/div><\/div><\/div><\/section><\/div>\n<\/div>\n<script>\n(() => {\n  'use strict';\n  const SITE_ORIGIN = 'https:\/\/dr-reinigingstechniek.eu';\n  const targets = {\n    public: { list: 'downloads-list', status: 'downloads-status' },\n    dealer: { list: 'dealer-downloads-list', status: 'dealer-downloads-status' }\n  };\n\n  const allowedUrl = (value) => {\n    if (typeof value !== 'string' || !value.trim()) return false;\n    if (value.startsWith('\/')) return true;\n    try { return new URL(value).origin === SITE_ORIGIN; } catch { return false; }\n  };\n\n  const text = (value, fallback = '') => typeof value === 'string' && value.trim() ? value.trim() : fallback;\n\n  const createCard = (item) => {\n    if (!item || !allowedUrl(item.url)) return null;\n    const card = document.createElement('article');\n    card.className = 'download-card';\n    card.setAttribute('role', 'listitem');\n\n    const type = document.createElement('span');\n    type.className = 'download-card-type';\n    type.textContent = text(item.type, 'Document');\n\n    const heading = document.createElement('h3');\n    heading.textContent = text(item.title, 'Document');\n\n    const description = document.createElement('p');\n    description.textContent = text(item.description, 'Open het document voor meer informatie.');\n\n    const meta = document.createElement('div');\n    meta.className = 'download-card-meta';\n    meta.textContent = [text(item.language), text(item.version), text(item.size)].filter(Boolean).join(' \u00b7 ');\n    meta.hidden = !meta.textContent;\n\n    const link = document.createElement('a');\n    link.className = 'download-card-link';\n    link.href = item.url;\n    link.target = '_top';\n    link.rel = 'noopener';\n    link.textContent = text(item.linkLabel, 'Download document \u2192');\n    if (item.download === true) link.setAttribute('download', '');\n\n    card.append(type, heading, description, meta, link);\n    return card;\n  };\n\n  const render = (scope, items, options = {}) => {\n    const target = targets[scope];\n    if (!target) throw new Error('Onbekende downloadsectie.');\n    const list = document.getElementById(target.list);\n    const status = document.getElementById(target.status);\n    if (!list || !status) throw new Error('Downloadcontainer ontbreekt.');\n    list.replaceChildren();\n    list.setAttribute('aria-busy', 'false');\n    const collection = Array.isArray(items) ? items : [];\n    const fragment = document.createDocumentFragment();\n    let rendered = 0;\n    collection.forEach((item) => {\n      const card = createCard(item);\n      if (card) { fragment.append(card); rendered += 1; }\n    });\n    list.append(fragment);\n    status.textContent = rendered ? text(options.successMessage, rendered + (rendered === 1 ? ' document beschikbaar.' : ' documenten beschikbaar.')) : text(options.emptyMessage, 'Er zijn momenteel geen documenten beschikbaar.');\n    return rendered;\n  };\n\n  const load = async (scope, endpoint, options = {}) => {\n    if (!allowedUrl(endpoint)) throw new Error('Alleen interne .eu-downloadbronnen zijn toegestaan.');\n    const target = targets[scope];\n    if (!target) throw new Error('Onbekende downloadsectie.');\n    const list = document.getElementById(target.list);\n    const status = document.getElementById(target.status);\n    list.setAttribute('aria-busy', 'true');\n    status.textContent = text(options.loadingMessage, 'Documenten worden geladen\u2026');\n    try {\n      const response = await fetch(endpoint, { credentials: 'same-origin', headers: { Accept: 'application\/json' } });\n      if (!response.ok) throw new Error('Downloadbron antwoordde met status ' + response.status + '.');\n      const payload = await response.json();\n      const items = Array.isArray(payload) ? payload : payload.items;\n      return render(scope, items, options);\n    } catch (error) {\n      list.replaceChildren();\n      list.setAttribute('aria-busy', 'false');\n      status.textContent = text(options.errorMessage, 'De documenten konden niet worden geladen.');\n      throw error;\n    }\n  };\n\n  window.DRDownloads = Object.freeze({\n    renderPublic: (items, options) => render('public', items, options),\n    renderDealer: (items, options) => render('dealer', items, options),\n    loadPublic: (endpoint, options) => load('public', endpoint, options),\n    loadDealer: (endpoint, options) => load('dealer', endpoint, options),\n    clear: () => { render('public', [], { emptyMessage: '' }); render('dealer', [], { emptyMessage: '' }); }\n  });\n})();\n<\/script>\n<script>\n(() => {\n  const ALL_LABEL = 'Alles';\n\n  const text = (value, fallback = '') => typeof value === 'string' && value.trim() ? value.trim() : fallback;\n\n  const allowedUrl = (value) => {\n    if (typeof value !== 'string' || !value.trim()) return false;\n    if (value.startsWith('\/')) return true;\n    try { return new URL(value).origin === window.location.origin; } catch { return false; }\n  };\n\n  const createCard = (item) => {\n    if (!item || !allowedUrl(item.url)) return null;\n    const card = document.createElement('article');\n    card.className = 'download-card';\n    card.setAttribute('role', 'listitem');\n    card.dataset.category = text(item.category, 'Overig');\n\n    const type = document.createElement('span');\n    type.className = 'download-card-type';\n    type.textContent = text(item.type, 'Document');\n\n    const heading = document.createElement('h3');\n    heading.textContent = text(item.title, 'Document');\n\n    const description = document.createElement('p');\n    description.textContent = text(item.description, 'Open het document voor meer informatie.');\n\n    const meta = document.createElement('div');\n    meta.className = 'download-card-meta';\n    meta.textContent = [text(item.language), text(item.version), text(item.size)].filter(Boolean).join(' \u00b7 ');\n    meta.hidden = !meta.textContent;\n\n    const link = document.createElement('a');\n    link.className = 'download-card-link';\n    link.href = item.url;\n    link.target = '_top';\n    link.rel = 'noopener';\n    link.textContent = text(item.linkLabel, 'Download document \u2192');\n    if (item.download === true) link.setAttribute('download', '');\n\n    card.append(type, heading, description, meta, link);\n    return card;\n  };\n\n  const buildTabs = (tabsEl, categories, onSelect) => {\n    tabsEl.replaceChildren();\n    const allBtn = document.createElement('button');\n    allBtn.type = 'button';\n    allBtn.textContent = ALL_LABEL;\n    allBtn.className = 'active';\n    allBtn.setAttribute('aria-pressed', 'true');\n    allBtn.addEventListener('click', () => onSelect(null, allBtn));\n    tabsEl.append(allBtn);\n\n    categories.forEach((cat) => {\n      const btn = document.createElement('button');\n      btn.type = 'button';\n      btn.textContent = cat;\n      btn.setAttribute('aria-pressed', 'false');\n      btn.addEventListener('click', () => onSelect(cat, btn));\n      tabsEl.append(btn);\n    });\n  };\n\n  const loadCategorized = async (endpoint, listId, statusId, tabsId, options = {}) => {\n    const list = document.getElementById(listId);\n    const status = document.getElementById(statusId);\n    const tabsEl = tabsId ? document.getElementById(tabsId) : null;\n    if (!list || !status) return;\n\n    list.setAttribute('aria-busy', 'true');\n    status.textContent = text(options.loadingMessage, 'Documenten worden geladen\u2026');\n\n    try {\n      const response = await fetch(endpoint, { credentials: 'same-origin', headers: { Accept: 'application\/json' } });\n      if (!response.ok) throw new Error('Downloadbron antwoordde met status ' + response.status + '.');\n      const payload = await response.json();\n      const items = Array.isArray(payload) ? payload : payload.items || [];\n\n      list.replaceChildren();\n      list.setAttribute('aria-busy', 'false');\n\n      if (!items.length) {\n        status.textContent = text(options.emptyMessage, 'Er zijn momenteel geen documenten beschikbaar.');\n        if (tabsEl) tabsEl.hidden = true;\n        return;\n      }\n\n      const fragment = document.createDocumentFragment();\n      items.forEach((item) => {\n        const card = createCard(item);\n        if (card) fragment.append(card);\n      });\n      list.append(fragment);\n      status.textContent = text(options.successMessage, items.length + (items.length === 1 ? ' document beschikbaar.' : ' documenten beschikbaar.'));\n\n      if (tabsEl) {\n        const categories = [...new Set(items.map((item) => text(item.category, 'Overig')))];\n        if (categories.length > 1) {\n          tabsEl.hidden = false;\n          buildTabs(tabsEl, categories, (category, activeBtn) => {\n            tabsEl.querySelectorAll('button').forEach((btn) => {\n              btn.classList.toggle('active', btn === activeBtn);\n              btn.setAttribute('aria-pressed', btn === activeBtn ? 'true' : 'false');\n            });\n            list.querySelectorAll('.download-card').forEach((card) => {\n              card.hidden = category !== null && card.dataset.category !== category;\n            });\n          });\n        } else {\n          tabsEl.hidden = true;\n        }\n      }\n    } catch (error) {\n      list.replaceChildren();\n      list.setAttribute('aria-busy', 'false');\n      status.textContent = text(options.errorMessage, 'De documenten konden niet worden geladen.');\n      if (tabsEl) tabsEl.hidden = true;\n    }\n  };\n\n  loadCategorized(\n    '\/wp-content\/uploads\/pages\/downloads-data-public.json',\n    'downloads-list', 'downloads-status', 'downloads-filter-tabs',\n    { emptyMessage: 'Er zijn momenteel nog geen publieke documenten beschikbaar. Neem contact op voor specifieke documentatie.' }\n  );\n  loadCategorized(\n    '\/wp-content\/uploads\/pages\/downloads-data-dealer.json',\n    'dealer-downloads-list', 'dealer-downloads-status', null,\n    { emptyMessage: 'Log in als dealer om technische documentatie te bekijken.' }\n  );\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Centre de documentation T\u00e9l\u00e9chargements &amp; documentation Trouvez les informations produit publiques et, apr\u00e8s authentification, la documentation technique destin\u00e9e aux revendeurs agr\u00e9\u00e9s. Accueil\/T\u00e9l\u00e9chargements T\u00e9l\u00e9chargements publics Documents pour clients et utilisateurs Manuels, brochures et informations produit publiques pourront \u00eatre charg\u00e9s dynamiquement dans cette section ult\u00e9rieurement. Espace revendeur prot\u00e9g\u00e9 Documentation technique revendeurs Apr\u00e8s authentification valide en tant que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"blank-page","meta":{"_dr_native":"1","_dr_lang":"fr","_dr_translations":"{\"nl\":123}","footnotes":""},"class_list":["post-545","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/wp-json\/wp\/v2\/pages\/545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/wp-json\/wp\/v2\/comments?post=545"}],"version-history":[{"count":1,"href":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/wp-json\/wp\/v2\/pages\/545\/revisions"}],"predecessor-version":[{"id":546,"href":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/wp-json\/wp\/v2\/pages\/545\/revisions\/546"}],"wp:attachment":[{"href":"https:\/\/www.dr-reinigingstechniek.eu\/fr\/wp-json\/wp\/v2\/media?parent=545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}