Темизация ноды из модуля

Главные вкладки

Аватар пользователя fadas fadas 13 октября 2011 в 16:38

Здравстувте! Знающие люди, подскажите пожалуйста, каким образом мне темизировать ноды определенного типа средствами модуля?
Есть модуль, который создает тип материала. Хотелось бы иметь в каталоге с модулем шаблон для этого типа материала.

в 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) чтобы заработал шаблон в папке с модулем?

Комментарии

Аватар пользователя fadas fadas 14 октября 2011 в 15:21

поплнил 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>');
?>

то в поле для системных сообщений появится массив. Но шаблон все равно не подхватывается. Подскажите, что делать???