मैं अपने मॉड्यूल में टेम्पलेट कार्यान्वयन प्रदान करना चाहता हूं और थीम को ओवरराइड करने की अनुमति देता हूं। मूल रूप से, मैं इस सरलीकृत कोड द्वारा एक सुझाव जोड़ता हूं:
function attach_preprocess_node(&$vars) {
$vars['theme_hook_suggestions'][] = 'node__test';
}
(मैं एक नया विषय जोड़ने के लिए हुक_टैम का उपयोग नहीं करना चाहता हूं क्योंकि मैं प्रीप्रोसेस नोड कार्यों का पुन: उपयोग करना चाहता हूं। थीम का नाम अजीब है लेकिन मैं नोड प्रकार के साथ भ्रम से बचने के लिए नोड_ संलग्न करना नहीं चाहता हूं ।)
फिर मैं मॉड्यूल पथ को जोड़ने के लिए hook_theme_registry_alter () का उपयोग करता हूं:
function attach_theme_registry_alter(&$theme_registry) {
$path = drupal_get_path('module', 'attach') . '/themes';
$theme_registry_copy = $theme_registry;
_theme_process_registry($theme_registry_copy, 'phptemplate', 'theme_engine', 'node', drupal_get_path('module', 'node'));
$theme_registry += array_diff_key($theme_registry_copy, $theme_registry);
if (!isset($theme_registry['node']['theme paths'])) {
$theme_registry['node']['theme paths'] = array();
}
if (!isset($theme_registry['node']['theme paths'])) {
$first_element = array_shift($theme_registry['node']['theme paths']);
if ($first_element) {
array_unshift($theme_registry['node']['theme paths'], $first_element, $path);
}
else {
array_unshift($theme_registry['node']['theme paths'], $path);
}
}
}
हालांकि यह काम नहीं करता है। इसका मतलब है: फ़ाइल थीम / नोड - super.tpl.php का उपयोग नहीं किया जाता है। इसका उपयोग केवल तभी किया जाता है जब मैंने इसे थीम फ़ोल्डर में कॉपी किया हो।