page-content-type.tpl.php — किसी विशेष कंटेंट टाइप के लिए अलग टेम्पलेट
आपने शायद कई बार अपनी नोड्स (nodes) के लिए अलग-अलग टेम्पलेट्स बनाए होंगे, जैसे node-content-type.tpl.php।
कभी-कभी इतना पर्याप्त होता है, लेकिन कुछ मामलों में किसी विशेष कंटेंट टाइप (content type) के लिए एक अलग पेज टेम्पलेट बनाना आवश्यक होता है। दुर्भाग्यवश, Drupal 6 में यह बिना अतिरिक्त कोड लिखे संभव नहीं है।
ताकि हमारे नए कंटेंट टाइप टेम्पलेट्स page-content-type.tpl.php काम करें, हमें अपनी थीम की template.php फ़ाइल में नीचे दिया गया कोड जोड़ना होगा:
function phptemplate_preprocess_page(&$vars) { if (isset($vars['node'])) { $vars['template_files'][] = 'page-' . str_replace('_', '-', $vars['node']->type); } }
अब आप अपने कंटेंट टाइप के लिए एक अलग टेम्पलेट बना सकते हैं, उदाहरण के लिए page-news.tpl.php (जहाँ news — “समाचार” कंटेंट टाइप का मशीन नाम है)।
इसी तरह Drupal में आप टैक्सोनॉमी टर्म (taxonomy term) के आउटपुट टेम्पलेट को भी पुनःपरिभाषित (override) कर सकते हैं। इसके लिए template.php में निम्नलिखित फ़ंक्शन जोड़ें:
function phptemplate_preprocess_node(&$vars) { if (arg(0) == 'taxonomy') { $suggestions = array( 'node-taxonomy' ); $vars['template_files'] = array_merge($vars['template_files'], $suggestions); } }
इसके बाद, आप अपनी थीम की फ़ोल्डर में node-taxonomy.tpl.php नामक फ़ाइल बनाकर टैक्सोनॉमी टर्म के लिए आउटपुट टेम्पलेट को ओवरराइड कर सकते हैं।