我正在尝试创建一个drupal模块附带的块。我不能让它显示在我的阻止列表中。我尝试了很多不同的教程,甚至只是复制粘贴,它仍然没有出现。在我的drupal设置中是否可以阻止我的模块阻止显示?或者代码中有什么问题吗?
模块显示并激活。
这是我现在的代码:
helicopter_contest_form.info 我正在尝试创建一个drupal模块附带的块。我不能让它显示在我的阻止列表中。我尝试了很多不同的教程,甚至只是复制粘贴,它仍然没有出现。在我的drupal设置中是否可以阻止我的模块阻止显示?或者代码中有什么问题吗?
模块显示并激活。
这是我现在的代码:
helicopter_contest_form.info
;$Id$ name = Helicopter contest form description = Block module with a contest form core = 7.x package = My modules files[] = helicopter_contest_form.module
helicopter_contest_form.module
/**
* Implements hook_block_info().
*/
function membercount_block_info() {
$blocks = array ();
$blocks['count_members'] = array (
'info' => t('Count Members'),
'cache' => DRUPAL_NO_CACHE,
);
return $blocks;
}
/**
* Implements hook_block_view().
*/
function membercount_block_view($name) {
if ($name == 'count_members') {
$count = db_query('SELECT COUNT(uid) - 1 FROM {users}')->fetchField();
$content = format_plural($count, 'This site has 1 user.', 'This site has @count users.');
$block = array (
'subject' => t('Members'),
'content' => $content,
);
return $block;
}
}
在旁注中,我如何一次缩进所有代码4个空格?我必须手工完成每一行,它也会破坏我的缩进......
答案 0 :(得分:4)
在实现钩子时,你应该用你的模块的短名称替换钩子名称中的“hook”,所以只需将你的函数名称从membercount_block_info
更改为helicopter_contest_form_block_info
(对于“hook_block_view”也是如此) )。
此外,实际上没有必要在.info文件中提及files[] = helicopter_contest_form.module
,因为无论如何都需要.module。
答案 1 :(得分:2)
尝试将代码调整为:
/**
* Implements hook_block_info().
* This hook declares what blocks are provided by the module.
*/
function helicopter_form_info() {
$blocks = array(); // the added line.
$blocks['helicopter_form'] = array(
'info' => t('Helicopter'),
'cache' => DRUPAL_CACHE_PER_ROLE,
);
return $blocks;
}
我知道这很奇怪,但我有一次相同的问题,并且在我添加该行之后它才有用。
希望这有效......穆罕默德。