2010-08-20 13 views
7

यदि मेरे पास दो मॉड्यूल हैं, तो प्रत्येक ने अपने preprocess_node हुक को लागू किया है। तो कौन सा पहले बुलाया जाएगा? क्या आदेश को लागू करने के लिए वैसे भी है जिसे इसे बुलाया जाएगा?hook_preprocess_node() निष्पादन आदेश

module1_preprocess_node(&$vars){ 
    $vars['submitted'] = "test1"; 
} 

module2_preprocess_node(&$vars){ 
    $vars['submitted'] = "test2"; 
} 

मुझे आश्चर्य है कि परिणाम कौन सा होगा ... test1, या test2। अग्रिम धन्यवाद

उत्तर

13

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

How to Update a Module's Weight

आप module_list() के लिए एपीआई डॉक्स को देखें, तो संबंधों .module फ़ाइल का फ़ाइल नाम के वर्णमाला के क्रम में टूट गया।

+1

+1 –

2

यदि मॉड्यूल ने system तालिका में अपना वजन नहीं बदला, तो परिणाम test2 होगा।

पहला मॉड्यूल एक हल्का वजन वाला है; जब दो मॉड्यूल में वही वज़न होता है, तो उन्हें वर्णानुक्रमिक आरोही क्रम द्वारा क्रमबद्ध किया जाता है। यह प्रत्येक आमंत्रित हुक के लिए मान्य है। मॉड्यूल के वजन को अद्यतन करने के लिए लिंक के लिए

संबंधित मुद्दे