logo

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

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

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

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

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

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

स्क्रॉल
04/10/2025, by Ivan

Menu

भाग IV: Drupal 8 के बेसिक मॉड्यूल बनाने के लिए व्यावहारिक गाइड
.info से लेकर टेस्ट तक, केवल बुनियादी बातें

अब तक सब कुछ काफ़ी साफ-सुथरा है, लेकिन हम जो देख रहे हैं उसे कैसे बदल सकते हैं? कुछ फ़ॉर्म्स के साथ, ज़ाहिर है।

सरल उपयोग परिदृश्यों के लिए देखें «साइट सेटिंग्स और लेबल्स»।

/src/Form/LoremIpsumForm.php

<?php

namespace Drupal\loremipsum\Form;

use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;

class LoremIpsumForm extends ConfigFormBase {

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'loremipsum_form';
  }

हम अपनी सेटिंग्स फ़ाइल की शुरुआत ConfigFormBase को एक्सटेंड करके करते हैं। LoremIpsumForm क्लास वह है, जिसे routing.yml फ़ाइल में निर्दिष्ट किया गया है।

इसके बाद वह मेथड आता है, जो वास्तव में सेटिंग्स फ़ॉर्म का निर्माण करता है:

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    // Form constructor.
    $form = parent::buildForm($form, $form_state);
    // Default settings.
    $config = $this->config('loremipsum.settings');

वेरिएबल $config वह जगह है, जहाँ हम अपनी मौजूदा सेटिंग्स को स्टोर करते हैं।

इसके बाद हम अपने फ़ॉर्म फ़ील्ड्स को परिभाषित करते हैं और फ़ॉर्म को रिटर्न करते हैं:

    // Page title field.
    $form['page_title'] = array(
      '#type' => 'textfield',
      '#title' => $this->t('Lorem ipsum generator page title:'),
      '#default_value' => $config->get('loremipsum.page_title'),
      '#description' => $this->t('Give your lorem ipsum generator page a title.'),
    );
    // Source text field.
    $form['source_text'] = array(
      '#type' => 'textarea',
      '#title' => $this->t('Source text for lorem ipsum generation:'),
      '#default_value' => $config->get('loremipsum.source_text'),
      '#description' => $this->t('Write one sentence per line. Those sentences will be used to generate random text.'),
    );

    return $form;
  }

हमें मेथड्स validateForm(), submitForm() और getEditableConfigNames() को भी डिक्लेयर करना होगा, भले ही हम उनका इस्तेमाल न करें:

  /**
   * {@inheritdoc}
   */
  public function validateForm(array &$form, FormStateInterface $form_state) {

  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $config = $this->config('loremipsum.settings');
    $config->set('loremipsum.source_text', $form_state->getValue('source_text'));
    $config->set('loremipsum.page_title', $form_state->getValue('page_title'));
    $config->save();
    return parent::submitForm($form, $form_state);
  }

  /**
   * {@inheritdoc}
   */
  protected function getEditableConfigNames() {
    return [
      'loremipsum.settings',
    ];
  }

}