10 нояб. 2011 г.

Принцип использования темизации и препроцесс функций


<?php
theme
('uc_abas_V',array('elements' => $vie) );?>


А так же добавив:

<?phpfunction uc_abas_preprocess_uc_abas_V(&$variables) {
    
template_preprocess_node($variables);
}
?>



uc_abas - имя модуля

uc_abas_V - имя темы которую регестрируем

Только вот правильный ли способ, работать то работает, но может есть что погибше и валиднее для таких ситуаций.
Код:


<?php//Регестрируем тему, файл темы node.tpl.php,
//в той же папке что и модуль
function uc_abas_theme() {
    return array(
        
'uc_abas_V'  => array(
            
'template' => 'node',
        ),
    );
}
//Хук вносим изменения в переменные,
//так как это бы сделал template_preprocess_node
function uc_abas_preprocess_uc_abas_V(&$variables) {
    
template_preprocess_node($variables);
}
//Рендерим ноду с указанным ID, делаем этот рендер нашей темой!
//в theme через элемент массива 'elements' => $vie,
//передаем данные чтоб все в uc_abas_preprocess_uc_abas_V
//нормально работало
function uc_abas_amen() {
   
    
$nod=node_load(1);
    
$vie=node_view($nod);
   
    
$res=array(
        array(
'#markup' => theme('uc_abas_V',array('elements' => $vie) )),
    );
   
    return 
$res;   

}
?>