{"id":53,"date":"2023-11-20T08:10:34","date_gmt":"2023-11-20T08:10:34","guid":{"rendered":"https:\/\/ncdconnect.org\/?page_id=53"},"modified":"2026-09-20T19:54:31","modified_gmt":"2026-09-20T19:54:31","slug":"news","status":"publish","type":"page","link":"https:\/\/ncdconnect.org\/en\/news\/","title":{"rendered":"News"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;none&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#001A70&#8243; header_text_color=&#8221;#001A70&#8243; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>News<\/h1>\n<p>[\/et_pb_text][et_pb_blog fullwidth=&#8221;off&#8221; posts_number=&#8221;9&#8243; include_categories=&#8221;29&#8243; use_manual_excerpt=&#8221;off&#8221; show_more=&#8221;on&#8221; show_author=&#8221;off&#8221; show_excerpt=&#8221;off&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; read_more_font=&#8221;|||on|||||&#8221; read_more_text_color=&#8221;#4F9AB0&#8243; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_blog][et_pb_code _builder_version=&#8221;4.27.9&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;]<\/p>\n<style><!-- [et_pb_line_break_holder] -->  .ncd-inf{<!-- [et_pb_line_break_holder] -->    \/* clear:both is essential \u2014 Divi's blog grid lays its columns out with<!-- [et_pb_line_break_holder] -->       floats, so without it this block is squeezed to 0px wide against the<!-- [et_pb_line_break_holder] -->       right edge. Divi's own pagination carried .clearfix for the same reason. *\/<!-- [et_pb_line_break_holder] -->    clear:both;width:100%;<!-- [et_pb_line_break_holder] -->    display:flex;flex-direction:column;align-items:center;gap:12px;<!-- [et_pb_line_break_holder] -->    padding:28px 0 8px;text-align:center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .ncd-inf__btn{<!-- [et_pb_line_break_holder] -->    font-family:inherit;font-size:16px;line-height:1.2;font-weight:600;<!-- [et_pb_line_break_holder] -->    color:#ffffff;background:#001A70;border:2px solid #001A70;<!-- [et_pb_line_break_holder] -->    padding:14px 30px;border-radius:3px;cursor:pointer;<!-- [et_pb_line_break_holder] -->    min-height:48px;             \/* comfortable tap target on phones *\/<!-- [et_pb_line_break_holder] -->    transition:background-color .15s ease,color .15s ease;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .ncd-inf__btn:hover:not(:disabled){background:#ffffff;color:#001A70;}<!-- [et_pb_line_break_holder] -->  .ncd-inf__btn:focus-visible{outline:3px solid #4F9AB0;outline-offset:2px;}<!-- [et_pb_line_break_holder] -->  .ncd-inf__btn:disabled{opacity:.6;cursor:default;}<!-- [et_pb_line_break_holder] -->  .ncd-inf__status{<!-- [et_pb_line_break_holder] -->    margin:0;font-size:14px;line-height:1.5;color:#5b6472;min-height:1.5em;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .ncd-inf.is-error .ncd-inf__status{color:#9E2B18;}<!-- [et_pb_line_break_holder] -->  .ncd-inf.is-done .ncd-inf__status{color:#5b6472;}<!-- [et_pb_line_break_holder] -->  @media (prefers-reduced-motion: reduce){<!-- [et_pb_line_break_holder] -->    .ncd-inf__btn{transition:none;}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function () {<!-- [et_pb_line_break_holder] -->  'use strict';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Labels. Text injected by JavaScript is NOT picked up by<!-- [et_pb_line_break_holder] -->     TranslatePress, so the French strings live here. *\/<!-- [et_pb_line_break_holder] -->  var STRINGS = {<!-- [et_pb_line_break_holder] -->    en: {<!-- [et_pb_line_break_holder] -->      more:    'Load more articles',<!-- [et_pb_line_break_holder] -->      loading: 'Loading\u2026',<!-- [et_pb_line_break_holder] -->      retry:   'Try again',<!-- [et_pb_line_break_holder] -->      added:   function (n) { return n + ' more articles loaded.'; },<!-- [et_pb_line_break_holder] -->      done:    function (n) { return 'End of the list \u2014 all ' + n + ' articles are shown.'; },<!-- [et_pb_line_break_holder] -->      failed:  'Could not load more articles. Check your connection and try again.'<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    fr: {<!-- [et_pb_line_break_holder] -->      more:    'Afficher plus d\u2019articles',<!-- [et_pb_line_break_holder] -->      loading: 'Chargement\u2026',<!-- [et_pb_line_break_holder] -->      retry:   'R\u00e9essayer',<!-- [et_pb_line_break_holder] -->      added:   function (n) { return n + ' articles suppl\u00e9mentaires charg\u00e9s.'; },<!-- [et_pb_line_break_holder] -->      done:    function (n) { return 'Fin de la liste \u2014 les ' + n + ' articles sont affich\u00e9s.'; },<!-- [et_pb_line_break_holder] -->      failed:  'Impossible de charger d\u2019autres articles. V\u00e9rifiez votre connexion et r\u00e9essayez.'<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function labels() {<!-- [et_pb_line_break_holder] -->    var lang = (document.documentElement.getAttribute('lang') || 'en').slice(0, 2).toLowerCase();<!-- [et_pb_line_break_holder] -->    return STRINGS[lang] || STRINGS.en;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Divi puts \"\u00ab Older Entries\" in .alignleft and \"Next Entries \u00bb\" in .alignright.<!-- [et_pb_line_break_holder] -->     Older = further back in time = the next page to append. *\/<!-- [et_pb_line_break_holder] -->  function nextPageUrl(scope) {<!-- [et_pb_line_break_holder] -->    if (!scope) return null;<!-- [et_pb_line_break_holder] -->    var a = scope.querySelector('.pagination .alignleft a[href]');<!-- [et_pb_line_break_holder] -->    return a ? a.href : null;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function init() {<!-- [et_pb_line_break_holder] -->    var module = document.querySelector('.et_pb_blog_grid_wrapper');<!-- [et_pb_line_break_holder] -->    if (!module) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var grid     = module.querySelector('.et_pb_salvattore_content');<!-- [et_pb_line_break_holder] -->    var pagerBox = module.querySelector('.et_pb_ajax_pagination_container');<!-- [et_pb_line_break_holder] -->    if (!grid || !pagerBox) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var nextUrl = nextPageUrl(pagerBox);<!-- [et_pb_line_break_holder] -->    if (!nextUrl) return;   \/\/ only one page of results \u2014 leave the page alone<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Match the same module in the fetched documents, in case a page ever<!-- [et_pb_line_break_holder] -->       carries more than one Blog module. *\/<!-- [et_pb_line_break_holder] -->    var idMatch  = String(module.className).match(\/et_pb_blog_\\d+\/);<!-- [et_pb_line_break_holder] -->    var moduleSel = idMatch ? '.' + idMatch[0] : '.et_pb_blog_grid_wrapper';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var t = labels();<!-- [et_pb_line_break_holder] -->    var total = grid.querySelectorAll('.et_pb_post').length;<!-- [et_pb_line_break_holder] -->    var busy = false;<!-- [et_pb_line_break_holder] -->    var observer = null;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Divi's own pagination handler replaces the posts instead of appending,<!-- [et_pb_line_break_holder] -->       so take its links out of the document entirely. *\/<!-- [et_pb_line_break_holder] -->    var diviPager = pagerBox.querySelector('.pagination');<!-- [et_pb_line_break_holder] -->    if (diviPager) diviPager.parentNode.removeChild(diviPager);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var ui = document.createElement('div');<!-- [et_pb_line_break_holder] -->    ui.className = 'ncd-inf';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var btn = document.createElement('button');<!-- [et_pb_line_break_holder] -->    btn.type = 'button';<!-- [et_pb_line_break_holder] -->    btn.className = 'ncd-inf__btn';<!-- [et_pb_line_break_holder] -->    btn.textContent = t.more;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var status = document.createElement('p');<!-- [et_pb_line_break_holder] -->    status.className = 'ncd-inf__status';<!-- [et_pb_line_break_holder] -->    status.setAttribute('role', 'status');<!-- [et_pb_line_break_holder] -->    status.setAttribute('aria-live', 'polite');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    ui.appendChild(btn);<!-- [et_pb_line_break_holder] -->    ui.appendChild(status);<!-- [et_pb_line_break_holder] -->    pagerBox.appendChild(ui);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function stop(message) {<!-- [et_pb_line_break_holder] -->      busy = false;<!-- [et_pb_line_break_holder] -->      if (observer) { observer.disconnect(); observer = null; }<!-- [et_pb_line_break_holder] -->      if (btn.parentNode) btn.parentNode.removeChild(btn);<!-- [et_pb_line_break_holder] -->      ui.classList.remove('is-error');<!-- [et_pb_line_break_holder] -->      ui.classList.add('is-done');<!-- [et_pb_line_break_holder] -->      status.textContent = message;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function load() {<!-- [et_pb_line_break_holder] -->      if (busy || !nextUrl) return;<!-- [et_pb_line_break_holder] -->      busy = true;<!-- [et_pb_line_break_holder] -->      ui.classList.remove('is-error');<!-- [et_pb_line_break_holder] -->      btn.disabled = true;<!-- [et_pb_line_break_holder] -->      btn.textContent = t.loading;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      fetch(nextUrl, {<!-- [et_pb_line_break_holder] -->        credentials: 'same-origin',<!-- [et_pb_line_break_holder] -->        headers: { 'X-Requested-With': 'XMLHttpRequest' }<!-- [et_pb_line_break_holder] -->      })<!-- [et_pb_line_break_holder] -->        .then(function (res) {<!-- [et_pb_line_break_holder] -->          if (!res.ok) throw new Error('HTTP ' + res.status);<!-- [et_pb_line_break_holder] -->          return res.text();<!-- [et_pb_line_break_holder] -->        })<!-- [et_pb_line_break_holder] -->        .then(function (html) {<!-- [et_pb_line_break_holder] -->          var doc  = new DOMParser().parseFromString(html, 'text\/html');<!-- [et_pb_line_break_holder] -->          var fresh = doc.querySelector(moduleSel) || doc.body;<!-- [et_pb_line_break_holder] -->          var posts = Array.prototype.slice.call(fresh.querySelectorAll('.et_pb_post'));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          if (!posts.length) { stop(t.done(total)); return; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          posts = posts.map(function (p) { return document.importNode(p, true); });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          if (window.salvattore && typeof window.salvattore.appendElements === 'function') {<!-- [et_pb_line_break_holder] -->            \/* The grid is a salvattore masonry grid. This distributes the new<!-- [et_pb_line_break_holder] -->               posts across the current columns and makes them visible. *\/<!-- [et_pb_line_break_holder] -->            window.salvattore.appendElements(grid, posts);<!-- [et_pb_line_break_holder] -->          } else {<!-- [et_pb_line_break_holder] -->            \/* Fallback: salvattore missing. Append into the last column and<!-- [et_pb_line_break_holder] -->               undo Divi's opacity:0 by hand. *\/<!-- [et_pb_line_break_holder] -->            var col = grid.querySelector('.column') || grid;<!-- [et_pb_line_break_holder] -->            posts.forEach(function (p) { p.style.opacity = '1'; col.appendChild(p); });<!-- [et_pb_line_break_holder] -->          }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          total += posts.length;<!-- [et_pb_line_break_holder] -->          nextUrl = nextPageUrl(fresh);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          if (nextUrl) {<!-- [et_pb_line_break_holder] -->            busy = false;<!-- [et_pb_line_break_holder] -->            btn.disabled = false;<!-- [et_pb_line_break_holder] -->            btn.textContent = t.more;<!-- [et_pb_line_break_holder] -->            status.textContent = t.added(posts.length);<!-- [et_pb_line_break_holder] -->            \/* An IntersectionObserver only reports CHANGES. A fast flick, or a<!-- [et_pb_line_break_holder] -->               jump straight to the bottom, can skip the intersecting frame<!-- [et_pb_line_break_holder] -->               entirely and loading would stall. So after every append, check<!-- [et_pb_line_break_holder] -->               the trigger zone explicitly instead of waiting for an edge. *\/<!-- [et_pb_line_break_holder] -->            window.requestAnimationFrame(maybeLoadMore);<!-- [et_pb_line_break_holder] -->          } else {<!-- [et_pb_line_break_holder] -->            stop(t.done(total));<!-- [et_pb_line_break_holder] -->          }<!-- [et_pb_line_break_holder] -->        })<!-- [et_pb_line_break_holder] -->        .catch(function () {<!-- [et_pb_line_break_holder] -->          busy = false;<!-- [et_pb_line_break_holder] -->          btn.disabled = false;<!-- [et_pb_line_break_holder] -->          btn.textContent = t.retry;<!-- [et_pb_line_break_holder] -->          ui.classList.add('is-error');<!-- [et_pb_line_break_holder] -->          status.textContent = t.failed;<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* True when the controls are within 600px of the viewport, i.e. the reader<!-- [et_pb_line_break_holder] -->       is close enough to the end that the next page should already be coming. *\/<!-- [et_pb_line_break_holder] -->    function inTriggerZone() {<!-- [et_pb_line_break_holder] -->      var rect = ui.getBoundingClientRect();<!-- [et_pb_line_break_holder] -->      return rect.top < window.innerHeight + 600 &#038;&#038; rect.bottom > -600;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    function maybeLoadMore() {<!-- [et_pb_line_break_holder] -->      if (observer && nextUrl && !busy && inTriggerZone()) load();<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    btn.addEventListener('click', load);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Auto-load as an enhancement on top of the button. Respect reduced motion:<!-- [et_pb_line_break_holder] -->       people who ask for less movement get the button and nothing else. *\/<!-- [et_pb_line_break_holder] -->    var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;<!-- [et_pb_line_break_holder] -->    if ('IntersectionObserver' in window && !reduce) {<!-- [et_pb_line_break_holder] -->      observer = new IntersectionObserver(function (entries) {<!-- [et_pb_line_break_holder] -->        if (entries[0].isIntersecting) load();<!-- [et_pb_line_break_holder] -->      }, { rootMargin: '600px 0px' });<!-- [et_pb_line_break_holder] -->      observer.observe(ui);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (document.readyState === 'loading') {<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', init);<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    init();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>News<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:divi\/placeholder \/-->","_et_gb_content_width":"","_uag_custom_page_level_css":"","footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-53","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"et-pb-post-main-image":false,"et-pb-post-main-image-fullwidth":false,"et-pb-portfolio-image":false,"et-pb-portfolio-module-image":false,"et-pb-portfolio-image-single":false,"et-pb-gallery-module-image-portrait":false,"et-pb-post-main-image-fullwidth-large":false,"et-pb-image--responsive--desktop":false,"et-pb-image--responsive--tablet":false,"et-pb-image--responsive--phone":false},"uagb_author_info":{"display_name":"Stephan Lust","author_link":"https:\/\/ncdconnect.org\/en\/author\/stephan-lust\/"},"uagb_comment_info":0,"uagb_excerpt":"News","_links":{"self":[{"href":"https:\/\/ncdconnect.org\/en\/wp-json\/wp\/v2\/pages\/53","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ncdconnect.org\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ncdconnect.org\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ncdconnect.org\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/ncdconnect.org\/en\/wp-json\/wp\/v2\/comments?post=53"}],"version-history":[{"count":13,"href":"https:\/\/ncdconnect.org\/en\/wp-json\/wp\/v2\/pages\/53\/revisions"}],"predecessor-version":[{"id":2743,"href":"https:\/\/ncdconnect.org\/en\/wp-json\/wp\/v2\/pages\/53\/revisions\/2743"}],"wp:attachment":[{"href":"https:\/\/ncdconnect.org\/en\/wp-json\/wp\/v2\/media?parent=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}