我试图将变量从自定义模块传递到 tpl 文件。在我的自定义模块中(命名示例)
1. 我通过 hook_menu 创建了一个带有参数的路由:
function example_menu() {
$items['example/fancybox-photos/%'] = array(
'page callback' => 'example_display_fancybox_photos',
'page arguments' => array(2),
'type' => MENU_CALLBACK,
'access arguments' => array('access content'),
);
return $items;
}
2.我创建了我的页面回调函数:
function example_display_fancybox_photos($nid) {
$nodePhoto = node_load($nid);
$field_photo = field_get_items('node', $nodePhoto, 'field_photo');
$photo = [
"field_photo" => $field_photo[0]['uri'],
....
];
return theme('example_fancybox_photos', array('infosPhoto' => $photos));
}
3. 我创建了一个 hook_theme
function example_theme() {
$themes = array();
$themes['example_fancybox_photos'] = array(
'template' => 'templates/example-fancybox-photos',
'variables' => array('infosPhoto' => NULL),
);
return $themes;
}
4. 我终于在模板文件夹(在主题文件夹中)创建了一个名为“example-fancybox-photos.tpl.php”的 tpl
<pre><?php print var_dump($infosPhoto); ?></pre>
结果为空
我做了一些研究,但我不明白为什么这个变量仍然是 NULL。
感谢您的帮助 !