Здравстувте! Знающие люди, подскажите пожалуйста, каким образом мне темизировать ноды определенного типа средствами модуля?
Есть модуль, который создает тип материала. Хотелось бы иметь в каталоге с модулем шаблон для этого типа материала.
в MY_MODULE.module пишу:
<?php
function MY_MODULE_theme() {
return array(
'MY_MODULE_page' => array(
'template' => 'MY-MODULE',
),
);
}
function
template_preprocess_MY_MODULE_page(&$variables) {
$variables['temp'] = array();
$variables['temp'][] = 1;
$variables['temp'][] = 2;
$variables['temp'][] = 3;
}
?>
в файле MY-MODULE.tpl.php пишу:
<?php
print_r($temp);
?>
Но вывод ноды все-равно не переопределяется. Подскажите, куда мне впихнуть theme('MY_MODULE_page'); (кроме template.php) чтобы заработал шаблон в папке с модулем?
Комментарии
поплнил MY_MODULE.module, теперь он такой:
<?php
function MY_MODULE_theme() {
return array(
'MY_MODULE_view' => array(
'template' => 'MY-MODULE',
'arguments' => array('node' => NULL)
),
);
}
function
template_preprocess_MY_MODULE_view(&$variables) {$variables['temp'] = array();
$variables['temp'][] = 1;
$variables['temp'][] = 2;
$variables['temp'][] = 3;
}
function
MY_MODULE_node_view($node, $view_mode) {if ($view_mode == 'full' and $node->type == 'NODE_TYPE') {
/*print '<pre>';
print_r($node);
print '</pre>';*/
return theme('MY_MODULE_view', array('node' => $node) );
}
}
?>
в MY-MODULE.tpl.php пишу:
<?php
print '<h1>WTF???</h1>';
print_r($temp);
?>
в итоге шаблон ноды для типа материала NODE_TYPE остается дефолтным.
разве что только, если я укажу в MY-MODULE.tpl.php:
<?php
drupal_set_message('<pre>'.print_r(array_keys(get_defined_vars()), 1).'</pre>');
?>
то в поле для системных сообщений появится массив. Но шаблон все равно не подхватывается. Подскажите, что делать???
Ну хоть кто-нибудь, дайте хотя бы намек, на то, в какую сторону рыть...
up!