2010-11-27 3 views
0

код я положил в MyTheme template.phpДрупал 6 ----- почему тема() не может выводить

function mytheme_theme(){ 
    return array(
     'mytheme_example' => 'example', 
     'argument' => array('myvar' => null), 
    ); 
    } 

код я положил в node.tpl.php

<?php 
$html = ""; 
$myvar = "hello,world"; 
$html .= theme('mytheme_example', myvar); 

    return $html; 
?> 

кода я положил в example.tpl.php

<div> 
    here is the <b><?php print myvar; ?></b>being created. 
    </div> 

я очистил кэш, но на странице Узла статьи, нет какого-либо выход о привете мире.

ps: в каких файлах я могу использовать файл hook_theme, template.php, module. есть ли какие-либо файлы, которые я могу использовать для этого крючка?

ответ

0

Похоже, вы правильно указали свой hook_theme в template.php, поэтому я не думаю, что это проблема.

я пятну вопрос синтаксиса с node.tpl.php, если он не будет:

<?php 
    $vars = array('myvar' => 'hello, world'); 
    $html = theme('mytheme_example', $vars); 
    return $html; 
?> 

Обратите внимание на ассоциативный массив, с «MyVar» (переменной, объявленной в hook_theme), в настоящее время передается в качестве ключа.

Другое дело, это стандартная практика, чтобы назвать файл шаблона так же, как имя крючка, поэтому я бы предложил вызвать шаблон mytheme-example.tpl.php.

См drupal.org для получения дополнительной информации

+0

Я изменил ошибку, которую вы указали. Но по-прежнему не может выводить значение $ myvar. – runeveryday 2010-11-27 14:10:12

+0

Обновили решение, чтобы отразить ассоциированный массив, так как я считаю, что это проблема – wiifm 2010-11-27 21:21:49

0

Я не знаю, если вы решили эту проблему еще.

Я хотел бы попробовать объявить мою тему таким образом:

function mytheme_theme(){ 
    return array(
     'mytheme_example' => array(
     'arguments' => array('arguments'=>array()), 
     'template' => 'example', 
     ), 
    } 

Вот как я обычно делаю, и это прекрасно работает на меня.

Смежные вопросы