Drupal Forms API। भाग 2 - द्रुपाल 7 के लिए


आलेख के दूसरे भाग में संस्करण 7 के लिए Drupal Forms API के अंतर शामिल हैं। लेख का यह भाग एक खुले विषय के रूप में प्रकाशित हुआ है, जो न केवल Drupal ब्लॉग के सदस्यों को दिखाई देता है। लेकिन मैं अपने आगे के लेख (विषय बनाने पर) बंद ब्लॉग लेखों के रूप में प्रकाशित करूंगा, ताकि उन लोगों के साथ हस्तक्षेप न करें जो ड्रुपल में रुचि नहीं रखते हैं।

पिछले लेख में , हमने एक सरल मॉड्यूल की कार्यक्षमता को देखा जो AJAX (ड्रुपल 6 में "एएचएएच" के रूप में संदर्भित) के रूप में एक दर्ज नाम लौटाया। अब संस्करण 7 की बारी है।



1. Drupal API 7 में सबसे दिलचस्प बदलाव




2. प्रपत्र कोड में परिवर्तन


प्रपत्र कोड में परिवर्तन मामूली हैं। Drupal Forms API के सिद्धांत समान हैं।
/* FC Form */ //         (    , ,    ) function fc_form($form, &$form_state) { $form = array(); $form['name'] = array( '#type' => 'textfield', '#description' => 'Your name', '#size' => '15', ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Submit', //    ajax '#ajax' => array( //     callback- 'callback' => 'fastcontact_ajax', 'wrapper' => 'fc-form', ), ); return $form; } 


2. अनुरोध प्रसंस्करण कोड में परिवर्तन


 //  callback-   .        function fastcontact_ajax($form, &$form_state) { //    name   values  form_state $name=$form_state['values']['name']; //       markup   . $form['result'] = array( '#markup' => '   <b>'.$name.'</b>', ); return $form; } 


$ Form_state सरणी का मान काफी बड़ा है। यह प्रपत्र और उसकी स्थिति के बारे में सभी डेटा संग्रहीत करता है । वहाँ से हम अपने क्षेत्र के नाम का मान लेते हैं।

यदि Drupal 6 में हमने drupal_json () के माध्यम से सफल होने पर प्रदर्शित किया गया पाठ भेजा है, तो Drupal 7 में हम फॉर्म को फिर से बनाते हैं और मार्कअप तत्व को इसमें जोड़ते हैं। Html मार्कअप को फॉर्म में आउटपुट करने के लिए मार्कअप का उपयोग किया जाता है। यह तत्व द्रुपाल के संस्करण 6 में भी मौजूद था - लेकिन संस्करण 7 में इसका सिंटैक्स बदल गया है

अब, हमें फ़ॉर्म प्रदर्शित करने की आवश्यकता है। हम इसे अंतिम लेख से मानक कोड बना सकते हैं।
 function render_fc_form() { $out = '<div id="fc-form-wrapper">'; $out .= drupal_render(drupal_get_form('fc_form')); $out .= '</div><!-- /.fc-form-->'; return $out; } 


ध्यान दें कि Drupal 7 में कई और एपीआई परिवर्तन हैं। मॉड्यूल के लेखन (विषयों के लिए, एक अलग सूची) के बारे में संस्करण 6 के बाद Drupal API में किए गए परिवर्तनों की एक सूची है

पूरे मॉड्यूल के साथ संग्रह डाउनलोड करें

Source: https://habr.com/ru/post/In111359/


All Articles