Drupal PostInstall - एक मॉड्यूल जो अन्य मॉड्यूल को स्थापना के बाद "ट्यून" करने की अनुमति देता है

जैसा कि आप जानते हैं, कुछ मॉड्यूल (जैसे कि Google Analytics उदाहरण के लिए) को कम से कम किसी तरह काम करने से पहले कुछ प्रारंभिक सेटअप की आवश्यकता होती है। इसके अलावा, कभी-कभी, किसी को ऐसी स्थिति से निपटना पड़ता है जहां, मॉड्यूल को स्थापित करते समय, उपयोगकर्ता से कुछ जानकारी प्राप्त करना आवश्यक होता है। बेशक, ड्रुपल प्रत्येक मामले में हुक तंत्र का उपयोग करके यह सब करने की अनुमति देता है। हालांकि, मैंने फैसला किया कि इस समस्या को हल करने के लिए कुछ एकीकृत तरीका, एक इंटरफ़ेस रखना बेहतर होगा। इन उद्देश्यों के लिए, पोस्टइनस्टॉल नामक एक छोटा सेवा मॉड्यूल लिखा गया था।

क्या है


मॉड्यूल का सार निम्नानुसार है। यह अन्य मॉड्यूल को स्थापना के तुरंत बाद अपने कॉन्फ़िगरेशन पृष्ठों को प्रदर्शित करने की अनुमति देता है। मॉड्यूल एक साथ कई मॉड्यूल स्थापित करने का एक उत्कृष्ट कार्य करता है और निर्भरता के अनुसार कड़ाई से कॉन्फ़िगरेशन पृष्ठों को प्रदर्शित करता है (आश्रित मॉड्यूल निर्भर होने से पहले कॉन्फ़िगर किया गया है)। इसके अलावा, मॉड्यूल सही ढंग से काम करता है अगर यह कॉन्फ़िगरेशन की आवश्यकता वाले मॉड्यूल के साथ एक साथ स्थापित होता है। इस घटना में कि कुछ कदम के बाद पोस्ट-कॉन्फ़िगरेशन बाधित हो गया था, उपयोगकर्ता अगली बार जब वह मॉड्यूल पृष्ठ (व्यवस्थापक / मॉड्यूल) पर जाता है, तो उसे वापस कर दिया जाएगा। सेटअप पूरा होने से जारी है।

यह कैसे काम करता है?


यह बस अपमान करने के लिए काम करता है। मॉड्यूल स्थापित करने के बाद, पोस्ट इनस्टॉल यह देखने के लिए जांचता है कि क्या स्थापित मॉड्यूल की सूची में मॉड्यूल हैं जो पोस्ट-कॉन्फ़िगरेशन की आवश्यकता है। यदि कोई है, तो स्थापना पूर्ण होने के बाद, उपयोगकर्ता को सेटअप विज़ार्ड में स्थानांतरित कर दिया जाता है। प्रत्येक मॉड्यूल के लिए कॉन्फ़िगरेशन फॉर्म विज़ार्ड के एक अलग चरण का प्रतिनिधित्व करता है। उपयोगकर्ता को दिखाया गया है कि वह अब किस चरण में है (कौन सा मॉड्यूल वर्तमान में कॉन्फ़िगर किया जा रहा है) और कुल कितने चरण हैं। कॉन्फ़िगरेशन पूरा होने के बाद, उपयोगकर्ता व्यवस्थापक / मॉड्यूल पृष्ठ पर लौटता है।

कैसे लागू करें?


स्थापना के बाद अपने मॉड्यूल को कॉन्फ़िगर करने की अनुमति देने के लिए, आपको निम्न करना चाहिए:
  1. इसे स्थापना के बाद के मॉड्यूल पर निर्भर करें (modulename.info फ़ाइल में लाइन "निर्भरता [] = स्थापना रद्द करें" जोड़ें)।
  2. मॉड्यूल में hook_postinstall () को लागू करें।

नीचे एक Russified विवरण के साथ postinstall.api.php फ़ाइल का एक Russified संस्करण है और हुक_पोस्ट इंस्टॉलेशन () को लागू करने का एक उदाहरण है।
/** *        *     . * * @param $action *     : * - form:         drupal_get_form(). *          submit.  *     . * - validate:         $values *      $error_messages,   . * $error_messages -      : * - name:    (  form_set_error()). * - message:   ,    . * - submit: Submit callback  .     -  $values. * @param $values *      ( $action == 'validate')   * ( $action == 'submit'). */ function hook_postinstall($action, $values = array()) { switch ($action) { case 'form': $form = array(); $form['test'] = array( '#type' => 'textfield', '#title' => 'Test textfield' ); return $form; break; case 'validate': $error_messages = array(); if (!is_numeric($values['test'])) { $error_messages[] = array( 'name' => 'test', 'message' => t('   ') ); } return $error_messages; break; case 'submit': drupal_set_message($values['test']); break; } } 


Drupal.Org पर आधिकारिक परियोजना पृष्ठ: drupal.org/project/postinstall
GitHub रिपॉजिटरी: github.com/numesmat/drupal-postinstall (मैं अचानक समर्थन करने के लिए भूलना शुरू कर सकता हूं)

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


All Articles