logo

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

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

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

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

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

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

GLightbox is a pure javascript lightbox (Colorbox alternative without jQuery)❗

It can display images, iframes, inline content and videos with optional autoplay for YouTube, Vimeo and even self-hosted videos.

Demo GLightbox Download GLightbox

स्क्रॉल

उन्नत थीम सेटिंग्स बनाना

01/10/2025, by Ivan

Menu

Drupal प्रशासन अनुभाग में, प्रत्येक थीम की अपनी सेटिंग्स पेज होती है, जो admin/Appeance/Settings/themeName पर उपलब्ध है। इस पेज में एक फ़ॉर्म होता है जिसमें मानक सेटिंग्स होती हैं, जैसे «लोगो इमेज सेटिंग्स» और «फ़ेविकॉन सेटिंग्स»।

Drupal 8 में थीम्स पूरी थीम सेटिंग्स फ़ॉर्म को बदल सकती हैं, PHP फ़ंक्शन को या तो THEMENAME.theme फ़ाइल में जोड़कर या theme-settings.php फ़ाइल में जोड़कर। इन फ़ाइलों में से किसी एक में थीम को THEMENAME_form_system_theme_settings_alter(&$form, $form_state) हुक का उपयोग करना होगा। देखें «Drupal 8 में फ़ॉर्म API» और फ़ॉर्म और रेंडर एलिमेंट्स की पूरी सूची, साथ ही hook_form_FORM_ID_alter() डॉक्यूमेंटेशन, ताकि आप फ़ॉर्म API की पूरी लचीलापन (flexibility) को समझ सकें।

यहाँ एक उदाहरण है, यदि आपके पास «foo» नामक थीम है और आप एक टेक्स्ट फ़ील्ड जोड़ना चाहते हैं जिसका डिफ़ॉल्ट मान «blue bikeshed» है। फ़ाइल foo/foo.theme या foo/theme-settings.php में निम्नलिखित जोड़ें:

function foo_form_system_theme_settings_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id = NULL) {
  // Work-around for a core bug affecting admin themes. See issue #943212.
  if (isset($form_id)) {
    return;
  }

  $form['foo_example'] = array(
    '#type'          => 'textfield',
    '#title'         => t('Widget'),
    '#default_value' => theme_get_setting('foo_example'),
    '#description'   => t("Place this text in the widget spot on your site."),
  );
}

किसी भी जोड़े गए फ़ॉर्म एलिमेंट के लिए डिफ़ॉल्ट मान सेट करने हेतु, आपको config/install/THEME.settings.yml फ़ाइल में एक साधारण लाइन जोड़नी होगी: SETTING_NAME: DEFAULT_VALUE। हमारी foo थीम के लिए, आपको फ़ाइल foo/config/install/foo.settings.yml को एडिट करके यह लाइन जोड़नी होगी:

foo_example: blue bikeshed

अपनी थीम की किसी भी PHP फ़ाइल में आप यूज़र द्वारा सेट किया गया मान इस प्रकार प्राप्त कर सकते हैं:

$foo_example = theme_get_setting('foo_example');

ध्यान दें कि थीम लेखक उन्नत फ़ॉर्म API का उपयोग करके जटिल डायनेमिक फ़ॉर्म बना सकते हैं (जैसे ऑटोकम्प्लीट, collapsible fieldsets)।

अपनी थीम फ़ाइलों में सेटिंग मान प्राप्त करना

Twig फ़ाइल में पैरामीटर का उपयोग करने के लिए, आपको THEMENAME.theme फ़ाइल में प्रीप्रोसेस फ़ंक्शन का उपयोग करके Twig फ़ाइल में एक नया वेरिएबल जोड़ना होगा। 

$variables['varname'] = theme_get_setting('varname')

उदाहरण के लिए, हमारे foo_example पैरामीटर को node.html.twig फ़ाइल में जोड़ने के लिए, इसे foo.theme फ़ाइल में जोड़ें:

<?php
function foo_preprocess_node(&$variables) {
  $variables['foo_example'] = theme_get_setting('foo_example');
}

फिर node.html.twig फ़ाइल में आप foo_example को किसी भी सामान्य Twig वेरिएबल की तरह एक्सेस कर सकते हैं:

{{foo_example}}

अधिक जानकारी

Drupal 8 के लिए चेंज रिकॉर्ड देखें: https://www.drupal.org/node/2382645