हुक कैसे बनाएं?


18

अन्य ड्रुपल मॉड्यूल का उपयोग करने के लिए मैं अपना खुद का हुक कैसे बना सकता हूं (ड्रुपल कोर बनाता है) के समान?

जवाबों:


20

आप वास्तव में हुक नहीं बनाते हैं। आप सहायक कार्यों का उपयोग करते हैं जैसे कि module_invoke_all(), module_invoke()या drupal_alter()अपेक्षित नाम पैटर्न से मेल खाते सभी कार्यों को लागू करने के लिए। आह्वान किए गए कार्य आमतौर पर पाए जाते हैं module_implements()

यहां तक ​​कि अगर काम करने के लिए हुक की आवश्यकता नहीं है, तो सबसे अच्छा अभ्यास दस्तावेज टिप्पणियों के साथ MODULE.api.phpखाली स्टब्स hook_NAME फ़ंक्शन बनाकर उन्हें दस्तावेज करना है ।


6
प्रलेखन के बारे में +1, जो कि ड्रुपल 7 से एक नया कोडिंग मानक है और कई कंट्रिब मॉड्यूल ने डी 6 के लिए भी इसका उपयोग करना शुरू कर दिया। ध्यान दें कि एक खाली फ़ंक्शन के बजाय, यह तब भी बेहतर होता है जब आप एक उदाहरण कार्यान्वयन प्रदान करते हैं यह दिखाने के लिए कि उस हुक के साथ क्या किया जा सकता है।
बेर्डिर

1
आमतौर पर, आप MODULE.api.php में सूचीबद्ध हुक के लिए कोड प्रदान करते हैं यदि उस हुक का वास्तविक कार्यान्वयन हो।
kiamlaluno

0

आप हुक भी बना सकते हैं, हुक_ट्रीगर_इनफो का उपयोग करके आप नए हुक बना सकते हैं, और आपके मॉड्यूल में आपको इसे लागू करना होगा। एक उदाहरण के रूप में, मान लीजिए कि आप नोड्स का एक संग्रह बनाना चाहते हैं और इसमें पुराने नोड्स डाल सकते हैं। जब आप संग्रह कार्रवाई करते हैं, तो आप हुक को ट्रिगर करना भी चाहते हैं। यह कुछ इस तरह से होने जा रहा है

function hook_trigger_info() {
    return array(
            'node' => array(
                    'archive_nodes' => array(
                        'label' => t('Archive old nodes'),
                    )
            )
    );
} 

हुक को परिभाषित करने के बाद, आपका मॉड्यूल हुक को लागू करने और मॉड्यूल_invoke () या मॉड्यूल_ invoke_all () का उपयोग करने के लिए जिम्मेदार है ।

आप triggerनोड टैब के तहत इस नए हुक को देखने के लिए मॉड्यूल को सक्षम कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.