ब्लॉक में कॉन्फ़िगरेशन फ़ॉर्म सबमिट करना
HelloBlock
क्लास में निम्नलिखित मेथड जोड़ें। इस उदाहरण में, यह src/Plugin/Block/HelloBlock.php
फ़ाइल में स्थित है, लेकिन जैसे ही आप अधिक OOP-उन्मुख तरीके से सोचना शुरू करते हैं, फाइल स्ट्रक्चर में इसका भौतिक स्थान नामस्थान (namespace) की तुलना में कम महत्वपूर्ण होता है। यदि आप एक अनुभवी OO प्रोग्रामर हैं, तो आप दोनों को बहुत निकटता से संरेखित रखेंगे। लेकिन एहतियात के तौर पर, नामस्थान—जो मॉड्यूल के फोल्डर नाम और मशीन नाम से बहुत मिलता-जुलता है, जैसा कि हमने पहले मॉड्यूल की चर्चा में किया था—बाद में महत्वपूर्ण होगा जब आप प्रोग्रामेटिक रूप से अपने मॉड्यूल के कोड के साथ इंटरैक्ट करना चाहेंगे।
/** * {@inheritdoc} */ public function blockSubmit($form, FormStateInterface $form_state) { $this->configuration['hello_block_name'] = $form_state->getValue('hello_block_name'); }
यदि आपके पास फ़ॉर्म एलिमेंट्स के चारों ओर fieldset
रैपर है, तो आपको केवल फ़ील्ड नाम पास करने के बजाय getValue()
फ़ंक्शन को एक array पास करना चाहिए। यहाँ, myfieldset
वह fieldset है जो hello_block_name
फ़ील्ड को रैप करता है।
$this->configuration['hello_block_name'] = $form_state->getValue(['myfieldset', 'hello_block_name']);
यह कोड जोड़ने का मतलब है कि फ़ॉर्म प्रोसेस किया जाएगा और फ़ॉर्म इनपुट इस विशेष ब्लॉक इंस्टेंस की कॉन्फ़िगरेशन में सेव हो जाएगा, अन्य ब्लॉक इंस्टेंस से स्वतंत्र रूप से। हालांकि, ब्लॉक अभी भी अपडेटेड कॉन्फ़िगरेशन परिणाम का उपयोग नहीं करता है। यह किताब के अगले पेज पर है।