Car*_*ñiz 4 drupal drupal-7 drupal-themes drupal-modules
我为Drupal 7创建了一个模块,它有一个hook_theme函数,告诉它使用usertemp.tpl.php模板.我将模板放在模块文件夹和主题文件夹中.问题是该功能仅从模块文件夹中获取模板,而不是从主题文件夹中获取模板.我已经反复清理了缓存,并寻找以前的答案,但没有任何帮助.可能是什么问题呢?
我的hook_theme代码如下所示:
function usuar_theme() {
return array(
'usuarbuild' => array(
'variables' => array('profilesloaded' => array()),
'template' => 'usertemp',
),
);
}
Run Code Online (Sandbox Code Playgroud)
其余的模块代码是这样的:
function usuar_menu() {
$items['userx'] = array(
'title' => 'User page',
'description' => 'User page',
'page callback' => 'usuar_exe',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
function usuar_exe($id) {
$ar = array('uid' => $id, 'profilesloaded' => profile2_load_by_user($id));
return theme('usuarbuild', array('collected' => $ar));
}
function theme_usuarbuild($variables) {
return $variables['collected'];
}
Run Code Online (Sandbox Code Playgroud)
这是一个棘手的问题,但是..你的主题钩子必须与你的模板名称相匹配.很奇怪,但是我在我的本地进行了测试,一旦我按照这种方式进行设置就可以了.所以..将你的hook_theme()更改为:
function usuar_theme() {
return array(
'usuarbuild' => array(
'variables' => array('profilesloaded' => array()),
'template' => 'usuarbuild',
),
);
}
Run Code Online (Sandbox Code Playgroud)
并将您的tpl.php文件更改为usuarbuild.tpl.php(或将所有内容更改为usertemp).应该在那之后工作.
归档时间: |
|
查看次数: |
7948 次 |
最近记录: |