logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

Kako prepisati jQuery Cookie i biblioteku core/js-cookie u Drupalu koristeći modul js_cookie

02/03/2026, by Ivan

Zašto ova promena?

Pregled putanje migracije

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

Istorijski kontekst: Drupal 9 je zamenio jQuery Cookie sa js-cookie i obezbedio primere mapiranja koda i biblioteka. https://www.drupal.org/node/3104677

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

// PRE (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);

Posle (Drupal 9) zavisili ste od core/js-cookie i koristili Cookies.* API: https://www.drupal.org/node/3104677

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

// POSLE (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+ i 11: core/js-cookie → contrib js_cookie

Pošto je Drupal core označio core/js-cookie kao zastarelu u verziji 10.1 i uklonio je u verziji 11, morate je zameniti bibliotekom iz contrib modula JS Cookie: js_cookie/js-cookie. https://www.drupal.org/node/3322720

Composer

composer require drupal/js_cookie

Ovo instalira modul koji izlaže Drupal asset biblioteku za upstream paket js-cookie. https://www.drupal.org/project/js_cookie

Prijavljivanje zavisnosti modula/teme (za contrib/custom projekte)

# my_module.info.yml (ili .info.yml vaše teme)
name: My Module
type: module
core_version_requirement: ^10 || ^11
dependencies:
  - js_cookie:js_cookie

Na stranici projekta eksplicitno je navedeno da se js_cookie:js_cookie doda kao zavisnost za contrib module (i da se zahteva drupal/js_cookie u composer-u ako modul ima sopstveni composer.json). [4]

Prebacivanje zavisnosti asset biblioteke

# Zamenite ovo (zastarelo u 10.1, uklonjeno u 11)
# - core/js-cookie

# Ovime (obezbeđuje contrib modul)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - js_cookie/js-cookie

Ova tačna zamena je preporučeni put u core change record-u. [2]

JavaScript kod

Vaš JS kod ne treba da se menja ako ste već koristili Cookies API iz js-cookie — menja se samo zavisnost biblioteke. [2]

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

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

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

      // Sigurno čuvanje/učitavanje JSON-a.
      Cookies.set('cutest', JSON.stringify({ animal: 'red panda' }));
      const cutestRaw = Cookies.get('cutest');
      const cutest = cutestRaw ? JSON.parse(cutestRaw) : null;
    },
  };
})(Drupal, window.Cookies);

Savet: js-cookie je u skladu sa RFC 6265 i enkodira vrednosti drugačije nego stari jQuery Cookie, posebno kada je JSON u pitanju. Change record za Drupal 9 opisuje ove razlike. https://www.drupal.org/node/3104677

Primeri iz ekosistema

Uputstva za nadogradnju korak po korak

A) Sa jQuery Cookie direktno na js_cookie/js-cookie (Drupal 10+)

  1. Uklonite core/jquery i core/jquery.cookie zavisnosti iz vašeg .libraries.yml fajla. https://www.drupal.org/node/3104677
  2. Dodajte js_cookie:js_cookie u zavisnosti vašeg .info.yml (za contrib/custom module i teme). https://www.drupal.org/project/js_cookie
  3. Promenite zavisnost biblioteke na js_cookie/js-cookie. https://www.drupal.org/project/js_cookie
  4. Prepišite JS kod sa $.cookie na Cookies.* kao što je prikazano gore. https://www.drupal.org/node/3104677

B) Sa core/js-cookie na js_cookie/js-cookie (Drupal 10.1 → 11)

  1. Instalirajte modul: composer require drupal/js_cookie. https://www.drupal.org/project/js_cookie
  2. (Contrib) Dodajte js_cookie:js_cookie u .info.yml; samo omogućite modul. https://www.drupal.org/project/js_cookie
  3. U .libraries.yml zamenite core/js-cookie sa js_cookie/js-cookie. https://www.drupal.org/node/3322720
  4. Zadržite postojeći Cookies.* JS kod. Nisu potrebne funkcionalne izmene. https://www.drupal.org/node/3322720

Potencijalne poteškoće i dobre prakse