【发布时间】:2013-10-08 18:08:15
【问题描述】:
我正在将一个模块从 Drupal 6 移植到 Drupal 7,并且我试图将一个变量从我的自定义模块传递到一个模板。我有这样的事情:
function my_callback_function(){
... //some unrelated code
$page_params = array();
$page_params['items_per_page'] = 25;
$page_params['page'] = $_GET['page'] ? $_GET['page'] : 0;
$page_params['total_items'] = $data_provider->getNumItems();
$page_params['total_pages'] = $data_provider->getNumPages($page_params['items_per_page']);
return theme('my_theme', $page_params);
}
function my_module_theme($existing, $type, $theme, $path) {
return array(
'my_theme' => array(
'variables' => array('page_params' => NULL),
'template' => 'theme/my_template_file',
),
);
}
在 *my_template_file.tpl.php* 我尝试使用 $page_params:
<?php print $page_params['total_items']; ?>
所有让我的网站抛出以下错误:
致命错误:不支持的操作数类型 C:...\includes\theme.inc 在第 1075 行
这与 theme.inc 中的这些代码行相对应:
// Merge in argument defaults.
if (!empty($info['variables'])) {
$variables += $info['variables']; // THIS IS THE VERY EXACT LINE
}
elseif (!empty($info['render element'])) {
$variables += array($info['render element'] => array());
}
如果我在 Drupal 6 中保留 theme() 调用,则不会出现错误,但我的模板无法识别我的 $page_params 变量:
return theme('my_theme', array('page_params' => $page_params));
我已经阅读了一半的 API,试图找出我做错了什么,但据我所知,这似乎是将变量从自定义模块传递到模板的正确方法。 因此,任何形式的帮助都将受到欢迎。
提前致谢。
【问题讨论】:
标签: drupal-7 drupal-6 migration drupal-theming