কীভাবে দ্রুপাল বিভিন্ন মডিউলগুলিতে একই হুকের সম্পাদন আদেশ স্থির করে?


22

যদি দুটি মডিউল A এবং B হয় এবং উভয়ের একই ব্যবহারকারী_লগিন হুক থাকে। সুতরাং যখন আমি A_user_login () এবং B_user_login () ফাংশনটি আউট করে লগইন করি তখন যাকে প্রথমে ডাকা হয় these এবং এই দুটি ফাংশনটির কার্যকর করার আদেশ কীভাবে ড্রুপাল স্থির করে

উত্তর:


31

হুকস ক্রম বলা হয়

  1. ওজন, যা ডাটাবেসে প্রতি মডিউল হিসাবে সংজ্ঞায়িত করা হয় {system.weight}। কলিং প্রক্রিয়ায় নিম্ন ওজনগুলি আগে আসে।
  2. মডিউল নাম অনুসারে বর্ণানুক্রমিক।

ডিফল্টরূপে, মডিউলগুলি 0 এর ওজন নির্ধারিত হয়, সুতরাং সিস্টেমের প্রায় সমস্ত হুক বর্ণানুক্রমিক ক্রমে চালিত হয়। কিছু মডিউল তাদের ইনস্টল হুকগুলিতে এটি সামঞ্জস্য করবে যাতে তারা আগে বা পরে module_invoke_allফাংশনে চালিত হয়।

আরও দেখুন: মডিউল ওজন সামঞ্জস্য করা: কী কী ঝুঁকি এবং বিষয়গুলি সন্ধান করা উচিত?


3
ডি 7 তে নোট আছে hook_module_implements_alter()
অ্যান্ডি

11

ডিফল্টরূপে একটি মডিউল ওজন একটি হুক_ * ফাংশন সম্পাদন করতে লাইনের সাথে তার স্থানটি সংজ্ঞায়িত করে।

আপনি বাস্তবায়নকারী মডিউলগুলির ডিফল্ট ক্রমটিকে হুক_মডিউল_প্রিমেন্ট_াল্টার দিয়ে পরিবর্তন করতে পারেন । এই ব্লগ টিউটোরিয়ালটি আরও পড়ার জন্য একটি ছোট্ট উদাহরণ পাওয়া যাবে ।

সেই ব্লগ পোস্ট থেকে একটি উদাহরণ বাস্তবায়ন হ'ল:

function mymodule_module_implements_alter(&$module_list, $context){
 if($context === "node_insert"){
 $temp = $module_list['mymodule'];
 // Removing the mymodule key/value
 unset($module_list['mymodule']);
 // Adding the mymodule key value as the last member in the list
 $module_list['mymodule'] = $temp;
 }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.