hook_theme()不传递参数

时间:2010-10-18 11:05:12

标签: drupal drupal-6 drupal-modules

我目前正在编写一个生成块的模块。输出应由模板定义。没什么特别的,但这些论据似乎没有得到正确的通过。

这是主题方法:

/* # Theme {{{*/
function browse_by_taxonomy_theme() {
  return array(
    'browse_by_taxonomy_block' => array(
      'template' => 'browse_by_taxonomy_block',
      'arguments' => array(
        'next' => null,
        'previous' => null,
        'term' => null,
        'hide_if_null' => variable_get('browse_by_taxonomy_hide_links', false)
      )
    )
  );
}/*}}}*/

它被称为:

$block['content'] = theme('browse_by_taxonomy_block', "next", "previous", $tid);

即使我把它放到最低限度也不起作用:

function browse_by_taxonomy_block($op = 'list', $delta = 0, $edit = array()) {  
  switch ($op) {
    case 'list':
      $block = array(array('info' => t("Browse by taxonomy")));
      return $block;

    case 'view':
      # […] Dragons be here
      return array(
        'subject' => null, 
        'content' => theme('browse_by_taxonomy_block', "next", "previous", "p")
      );
  }
}/*}}}*/

但在我的模板中,所有都是null

var_dump($previous); # => NULL
var_dump($next); # => NULL
var_dump($hide_if_null); # => NULL
var_dump($term); # => NULL

在我写的另一个模块中,我做了几乎相同的方式,它的工作原理。这次我做错了什么?

2 个答案:

答案 0 :(得分:1)

最有可能的问题是由缓存问题引起的,因为Drupal出于性能原因缓存了所有主题信息。

答案 1 :(得分:-1)

在这种情况下,缓存是我的朋友......只需刷新你的主题,它很可能会有效。至少在我的情况下,经过长时间的长时间搜索,充满了大量的诅咒和咒骂,我终于尝试了这个和BINGO ......