নিখিল মোহন এর উত্তরটি ব্যাখ্যা করতে, আপনি template_preprocess_html()
আপনার থিমের টেম্পলেট.এফপি ফাইলের মধ্যে প্রয়োগ করতে পারেন । এখানে কী চলছে তার বুনিয়াদি বুঝতে ওভাররাইডিং থেমেবল আউটপুট সম্পর্কিত ডকুমেন্টেশন পড়ুন ।
এই ফাংশনটির মধ্যে আপনার ভেরিয়েবলটিতে অ্যাক্সেস $vars['classes_array']
রয়েছে যা ক্লাসগুলির একটি তালিকা রাখে যা <body>
পৃষ্ঠায় এইচটিএমএল ট্যাগে প্রয়োগ করা হবে ।
দুর্ভাগ্যক্রমে, মেনুতে বর্তমান পৃষ্ঠার অবস্থান সম্পর্কে তথ্য অবিলম্বে পাওয়া যায় না। আপনি এই তথ্যটি পেতে menu_get_item()
এবং তারপরে ব্যবহার করতে পারেন menu_get_ancestors()
তবে এটি এমন একটির জন্য প্রচুর পরিমাণে প্রক্রিয়াকরণ শক্তি যা আমরা সম্ভবত একটি সহজতর পদ্ধতির সাথে পেতে পারি।
ধরে নেওয়া যাক আপনি মেনু পাথের উপর ভিত্তি করে আপনার সামগ্রীর পৃষ্ঠাগুলির জন্য স্বয়ংক্রিয়ভাবে সিনটিক পাথ তৈরি করতে পাঠাটো মডিউলটি ব্যবহার করছেন (যেমন, আপনার মেলবোর্ন থিম পার্ক পৃষ্ঠায় 'মেলবোর্ন / থিম_পার্কস' পাথ থাকবে) আপনি ক্লাসগুলি তৈরি করতে পৃষ্ঠার পথটি ব্যবহার করতে পারেন কি খোঁজচ্ছেন:
function THEMENAME_preprocess_html(&$vars) {
$path = drupal_get_path_alias();
$aliases = explode('/', $path);
foreach($aliases as $alias) {
$vars['classes_array'][] = drupal_clean_css_identifier($alias);
}
}
এটাই. দ্রুপাল এখন বর্তমান পৃষ্ঠার পাথের উপন্যাসের দিকে নজর দেবে এবং পথের ওরফে <body>
প্রতিটি অংশের জন্য ট্যাগটিতে একটি ক্লাস যুক্ত করবে ।
static
এই সময়ে ক্যাশে রয়েছে, তাই প্রায় কোনও ওভারহেড নেই।