drupal 6 ----- почему theme () не может выводить - PullRequest
0 голосов
/ 27 ноября 2010

код, который я поместил в шаблон mytheme. Php

  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>

Я очистил кеш, но на странице статьи об узле ничего не сказано о hello world.

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

Ответы [ 2 ]

0 голосов
/ 29 ноября 2010

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

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

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

Я так обычно делаю, и все работает нормально.на меня.

0 голосов
/ 27 ноября 2010

Похоже, вы правильно объявили 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 для получения дополнительной информации

...