logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll

Hoe jQuery Cookie en de core/js-cookie-bibliotheek in Drupal te herschrijven met de js_cookie‑module

02/03/2026, by Ivan

Waarom deze wijziging?

  • In Drupal 9 werd jQuery Cookie uit de core verwijderd en vervangen door de js-cookie-bibliotheek. Tijdens Drupal 9 bestond er een BC‑shim (core/jquery.cookie), maar deze werd verwijderd voor Drupal 10.
    https://www.drupal.org/node/3104677
  • In Drupal 10.1 werd de core/js-cookie-assetbibliotheek zelf als verouderd aangemerkt en gepland voor verwijdering in Drupal 11, omdat de core deze niet langer gebruikte. De changerecord raadt aan om over te stappen op de bijgedragen module JS Cookie.
    https://www.drupal.org/node/3322720
    https://www.drupal.org/project/drupal/issues/3296086
  • De bijgedragen module JS Cookie (drupal/js_cookie) biedt een definitie van een assetbibliotheek voor js-cookie, zodat modules en thema’s cookies kunnen blijven gebruiken in Drupal 10 en 11. https://www.drupal.org/project/js_cookie

Overzicht van het migratiepad

1) Drupal 8 → 9: jQuery Cookie → core/js-cookie

Historische context: Drupal 9 verving jQuery Cookie door js-cookie en gaf voorbeelden van code‑ en bibliotheekmapping. https://www.drupal.org/node/3104677

# VOOR (Drupal 8 / vroege 9)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/jquery
    - core/jquery.cookie
    - core/drupal

// VOOR (jQuery Cookie API)
(($, Drupal) => {
  Drupal.behaviors.myModule = {
    attach: () => {
      $.cookie('cutest', 'red panda');
      const myCookieValue = $.cookie('cutest');
      $.removeCookie('cutest');

      $.cookie.json = true;
      $.cookie('cutest', { animal: 'red panda' });
    },
  };
})(jQuery, Drupal);

Na (Drupal 9) was je afhankelijk van core/js-cookie en gebruikte je de Cookies.*-API: https://www.drupal.org/node/3104677

# NA (Drupal 9)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - core/js-cookie

// NA (Drupal 9, js-cookie API)
((Drupal, Cookies) => {
  Drupal.behaviors.myModule = {
    attach: () => {
      Cookies.set('cutest', 'red panda');
      const myCookieValue = Cookies.get('cutest');
      Cookies.remove('cutest');

      Cookies.set('cutest', JSON.stringify({ animal: 'red panda' }));
      const cutest = JSON.parse(Cookies.get('cutest') || 'null');
    },
  };
})(Drupal, window.Cookies);

2) Drupal 10.1+ en 11: core/js-cookie → bijgedragen js_cookie

Omdat Drupal core core/js-cookie in 10.1 heeft afgeschreven en in 11 heeft verwijderd, moet je deze vervangen door de bibliotheek van de bijgedragen module JS Cookie: js_cookie/js-cookie. https://www.drupal.org/node/3322720

Composer

composer require drupal/js_cookie

Dit installeert de module die een Drupal‑assetbibliotheek aanbiedt voor het upstream‑pakket js-cookie. https://www.drupal.org/project/js_cookie

Een module‑ of thema‑afhankelijkheid definiëren (voor contrib/custom projecten)

# my_module.info.yml (of het .info.yml-bestand van je thema)
name: My Module
type: module
core_version_requirement: ^10 || ^11
dependencies:
  - js_cookie:js_cookie

De projectpagina vermeldt expliciet dat contrib‑modules js_cookie:js_cookie als afhankelijkheid moeten toevoegen (en drupal/js_cookie moeten vereisen via composer als je module een eigen composer.json bevat). https://www.drupal.org/project/js_cookie

Wijzig de assetbibliotheek‑afhankelijkheid

# Vervang dit (verouderd in 10.1, verwijderd in 11)
# - core/js-cookie

# Door dit (geleverd door de contrib‑module)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - js_cookie/js-cookie

Deze exacte vervanging wordt aanbevolen in de changerecord die de afschrijving aankondigde. https://www.drupal.org/node/3322720

JavaScript‑code

Je JS‑code hoeft niet gewijzigd te worden als je al de Cookies-API van js-cookie gebruikte—alleen de bibliotheekafhankelijkheid verandert. https://www.drupal.org/node/3322720

((Drupal, Cookies) => {
  Drupal.behaviors.myModule = {
    attach: () => {
      // Een cookie instellen.
      Cookies.set('cutest', 'red panda', { path: '/', sameSite: 'Lax' });

      // Een cookie ophalen.
      const myCookieValue = Cookies.get('cutest');

      // Een cookie verwijderen.
      Cookies.remove('cutest', { path: '/' });

      // JSON veilig opslaan/ophalen.
      Cookies.set('cutest', JSON.stringify({ animal: 'red panda' }));
      const cutestRaw = Cookies.get('cutest');
      const cutest = cutestRaw ? JSON.parse(cutestRaw) : null;
    },
  };
})(Drupal, window.Cookies);

Tip: js-cookie is RFC 6265‑compatibel en codeert waarden anders dan de oude jQuery Cookie‑plugin, vooral voor JSON. De changerecord van Drupal 9 beschrijft deze gedragsverschillen. https://www.drupal.org/node/3104677

Voorbeelden uit het ecosysteem

Stapsgewijze upgrade‑instructies

A) Van jQuery Cookie direct naar js_cookie/js-cookie (Drupal 10+)

  1. Verwijder core/jquery en core/jquery.cookie uit de afhankelijkheden in .libraries.yml. https://www.drupal.org/node/3104677
  2. Voeg js_cookie:js_cookie toe aan .info.yml als afhankelijkheid (voor contrib/custom). https://www.drupal.org/project/js_cookie
  3. Wijzig je bibliotheekafhankelijkheid naar js_cookie/js-cookie. https://www.drupal.org/project/js_cookie
  4. Herschrijf JS van $.cookie naar Cookies.* zoals hierboven getoond. https://www.drupal.org/node/3104677

B) Van core/js-cookie naar js_cookie/js-cookie (Drupal 10.1 → 11)

  1. Installeer de module: composer require drupal/js_cookie. https://www.drupal.org/project/js_cookie
  2. (Contrib) Voeg js_cookie:js_cookie toe aan .info.yml; op sites hoeft de module alleen geactiveerd te worden. https://www.drupal.org/project/js_cookie
  3. Vervang in .libraries.yml core/js-cookie door js_cookie/js-cookie. https://www.drupal.org/node/3322720
  4. Behoud je bestaande JS‑code met Cookies.*. Functioneel verandert er niets. https://www.drupal.org/node/3322720

Valkuilen en best practices