【发布时间】:2010-10-18 11:05:12
【问题描述】:
我目前正在编写一个生成块的模块。输出应由模板定义。没什么特别的,但参数似乎没有正确传递。
这是主题方法:
/* # 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
在我写的另一个模块中,我以几乎相同的方式进行了操作,并且可以正常工作。这次我做错了什么?
【问题讨论】:
-
它必须来自模块中的其他东西,因为这看起来不错,应该可以工作。
-
变量是用
get_defined_vars()定义的吗? -
@wildpeaks 即使是我的所有魔法都被剥离的缩小版也不起作用。
-
@googletorp 不,我的论点都不在 get_defined_vars();
-
@Nils,我最好的猜测是它与缓存相关,因为代码看起来不错。您是否尝试过清除缓存?
标签: drupal drupal-6 drupal-modules