我刚刚尝试创建模块名mymodule
,并尝试在drupal6中将该主题应用于该模块。
我为我的模块添加了.info文件,并在我的主题文件夹中创建了mymodule.tpl.php
文件,并从管理员启用了该模块。但是当我通过url访问模块时,它会返回白页。
我的mymodule.module.php文件包含
function mymodule_menu() {
$items = array();
$items['mymodule'] = array(
'page callback' => 'mymodule_page',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function mymodule_page() {
$result = db_query('SELECT * from node');
return theme('mymodule', array('output' => $result));
}
function mymodule_theme() {
$content = array(
'custom' => array(
'arguments' => array('output' => 'NULL'),
'template' => path_to_theme() . '/mymodule',
'path' => '/'
),
);
return $content;
}
我不知道为什么主题不适用于我的模块。请帮忙。
答案 0 :(得分:1)
我认为问题是path
和template
键。
来自Drupal文档(http://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/hook_theme/6):
path:覆盖要使用的文件的路径。通常是模块 或将使用主题路径,但如果文件不是默认值 路径,包括在这里。此路径应相对于Drupal根目录 。目录
所以你用/
覆盖模块路径,这应该导致Drupal根文件夹(其中没有mymodule.tpl.php)。尝试删除path
密钥。
此外,template
密钥应仅为模板文件名。文件:
模板:如果指定,则此主题实现是一个模板,并且 这是没有扩展名的模板文件。
因此,请尝试删除path_to_theme
部分,因为您必须提供模板文件名,而不是模板的完整路径(使用path_to_theme
函数提供)。
希望这会有所帮助!