logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

Drupal में jQuery Cookie और core/js-cookie लाइब्रेरी को js_cookie मॉड्यूल के साथ कैसे पुनर्लेखित करें

02/03/2026, by Ivan

यह परिवर्तन क्यों?

  • Drupal 9 में, jQuery Cookie को कोर से हटाकर js-cookie लाइब्रेरी से बदल दिया गया। Drupal 9 के दौरान एक BC shim (core/jquery.cookie) मौजूद था, लेकिन Drupal 10 में इसे हटा दिया गया।
    https://www.drupal.org/node/3104677
  • Drupal 10.1 में, core/js-cookie एसेट लाइब्रेरी को स्वयं ही डिप्रिकेट कर दिया गया और Drupal 11 में हटाने के लिए अनुसूचित किया गया, क्योंकि कोर अब इसे उपयोग नहीं करता था। परिवर्तन रिकॉर्ड में योगदान किए गए JS Cookie मॉड्यूल पर स्विच करने की अनुशंसा की गई है।
    https://www.drupal.org/node/3322720
    https://www.drupal.org/project/drupal/issues/3296086
  • योगदान किया गया JS Cookie मॉड्यूल (drupal/js_cookie) js-cookie के लिए एक एसेट लाइब्रेरी परिभाषा प्रदान करता है ताकि मॉड्यूल/थीम Drupal 10 और 11 में कुकीज़ का उपयोग जारी रख सकें। https://www.drupal.org/project/js_cookie

माइग्रेशन पथ का अवलोकन

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

ऐतिहासिक संदर्भ: Drupal 9 ने jQuery Cookie को js-cookie से बदल दिया और कोड तथा लाइब्रेरी मैपिंग के उदाहरण प्रदान किए। https://www.drupal.org/node/3104677

# पहले (Drupal 8 / शुरुआती 9)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/jquery
    - core/jquery.cookie
    - core/drupal

// पहले (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);

बाद में (Drupal 9) आपको core/js-cookie पर निर्भर रहना पड़ता था और आप Cookies.* API का उपयोग करते थे: https://www.drupal.org/node/3104677

# बाद में (Drupal 9)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - core/js-cookie

// बाद में (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+ और 11: core/js-cookie → योगदान किया गया js_cookie

क्योंकि Drupal कोर ने 10.1 में core/js-cookie को डिप्रिकेट कर दिया और 11 में पूरी तरह हटा दिया, इसलिए आपको इसे योगदान किए गए JS Cookie मॉड्यूल की लाइब्रेरी js_cookie/js-cookie से बदलना होगा। https://www.drupal.org/node/3322720

Composer

composer require drupal/js_cookie

यह मॉड्यूल स्थापित करता है जो अपस्ट्रीम js-cookie पैकेज के लिए एक Drupal एसेट लाइब्रेरी प्रदान करता है। https://www.drupal.org/project/js_cookie

मॉड्यूल/थीम निर्भरता घोषित करें (contrib/custom के लिए)

# my_module.info.yml (या आपके थीम का .info.yml)
name: My Module
type: module
core_version_requirement: ^10 || ^11
dependencies:
  - js_cookie:js_cookie

प्रोजेक्ट पेज स्पष्ट रूप से बताता है कि contrib मॉड्यूल्स को js_cookie:js_cookie को निर्भरता के रूप में जोड़ना चाहिए (और यदि आपके मॉड्यूल में composer.json है तो drupal/js_cookie को composer में require करना चाहिए)। https://www.drupal.org/project/js_cookie

अपनी एसेट लाइब्रेरी निर्भरता बदलें

# इसे बदलें (10.1 में डिप्रिकेटेड, 11 में हटाया गया)
# - core/js-cookie

# इसके साथ (contrib मॉड्यूल द्वारा प्रदान किया गया)
my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - js_cookie/js-cookie

यह प्रतिस्थापन वही है जो डिप्रिकेशन को घोषित करने वाली core change रिकॉर्ड में सुझाया गया है। https://www.drupal.org/node/3322720

JavaScript कोड

यदि आप पहले से js-cookie की Cookies API का उपयोग कर रहे थे, तो आपके JS कोड में कोई बदलाव आवश्यक नहीं—केवल लाइब्रेरी निर्भरता बदलती है। https://www.drupal.org/node/3322720

((Drupal, Cookies) => {
  Drupal.behaviors.myModule = {
    attach: () => {
      // एक कुकी सेट करें।
      Cookies.set('cutest', 'red panda', { path: '/', sameSite: 'Lax' });

      // एक कुकी प्राप्त करें।
      const myCookieValue = Cookies.get('cutest');

      // कुकी हटाएँ।
      Cookies.remove('cutest', { path: '/' });

      // JSON सुरक्षित रूप से स्टोर/रीड करें।
      Cookies.set('cutest', JSON.stringify({ animal: 'red panda' }));
      const cutestRaw = Cookies.get('cutest');
      const cutest = cutestRaw ? JSON.parse(cutestRaw) : null;
    },
  };
})(Drupal, window.Cookies);

टिप: js-cookie RFC 6265–अनुपालन है और पुराने jQuery Cookie की तुलना में मानों को अलग ढंग से एनकोड करता है, खासकर JSON के लिए। Drupal 9 का परिवर्तन रिकॉर्ड इन व्यवहारिक अंतर को बताता है। https://www.drupal.org/node/3104677

इकोसिस्टम से उदाहरण

स्टेप‑बाय‑स्टेप अपग्रेड रेसिपीज़

A) jQuery Cookie से सीधे js_cookie/js-cookie पर जाएँ (Drupal 10+)

  1. .libraries.yml से core/jquery और core/jquery.cookie निर्भरताएँ हटाएँ। https://www.drupal.org/node/3104677
  2. contrib/custom मॉड्यूल और थीम के लिए .info.yml में js_cookie:js_cookie जोड़ें। https://www.drupal.org/project/js_cookie
  3. अपनी लाइब्रेरी निर्भरता को js_cookie/js-cookie में बदलें। https://www.drupal.org/project/js_cookie
  4. $.cookie से Cookies.* में अपने JS को फिर से लिखें, जैसा ऊपर दिखाया गया है। https://www.drupal.org/node/3104677

B) core/js-cookie से js_cookie/js-cookie पर जाएँ (Drupal 10.1 → 11)

  1. मॉड्यूल स्थापित करें: composer require drupal/js_cookie. https://www.drupal.org/project/js_cookie
  2. (Contrib) .info.yml में js_cookie:js_cookie जोड़ें; साइटों पर केवल मॉड्यूल सक्षम करना होगा। https://www.drupal.org/project/js_cookie
  3. .libraries.yml में core/js-cookie को js_cookie/js-cookie से बदलें। https://www.drupal.org/node/3322720
  4. अपने मौजूदा Cookies.* JS कोड को वैसा ही रखें — किसी बदलाव की आवश्यकता नहीं। https://www.drupal.org/node/3322720

ध्यान देने योग्य बातें और सर्वोत्तम प्रथाएँ

  • Drupal 11 तैयारी: core/js-cookie Drupal 11 में हटा दिया गया है — सुनिश्चित करें कि सभी निर्भरताएँ js_cookie/js-cookie की ओर संकेत कर रही हों। https://www.drupal.org/node/3322720
  • गोपनीयता/CDN: js_cookie प्रोजेक्ट पेज बताता है कि js-cookie को CDN से लोड होने से कैसे रोका जाए (डेटा सुरक्षा कारणों से)। स्थानीय एसेट्स को प्राथमिकता दें। https://www.drupal.org/project/js_cookie
  • एन्कोडिंग और JSON: निहित JSON व्यवहार पर निर्भर न रहें। JSON.stringify और JSON.parse का स्पष्ट उपयोग करें। https://www.drupal.org/node/3104677
  • वास्तविक दुनिया के पैच: अपडेट करते समय पैटर्न देखने के लिए issue queues की समीक्षा करें (उदा. EU Cookie Compliance)। https://www.drupal.org/project/eu_cookie_compliance/issues/3380490