我正在尝试创建一个带有 drupal 模块的 block 。我无法让它出现在我的阻止列表中。我尝试了很多不同的教程,甚至只是复制粘贴,它仍然没有出现。是不是我的 drupal 设置中的任何东西阻止了我的模块 block 显示?还是代码有什么问题?
模块显示并激活。
这是我现在的代码:
helicopter_contest_form.info 我正在尝试创建一个带有 drupal 模块的 block 。我无法让它出现在我的阻止列表中。我尝试了很多不同的教程,甚至只是复制粘贴,它仍然没有出现。是不是我的 drupal 设置中的任何东西阻止了我的模块 block 显示?还是代码有什么问题?
模块显示并激活。
这是我现在的代码:
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 个空格?我必须手工完成每一行,这也破坏了我的缩进...
最佳答案
在实现 Hook 时,您应该将 Hook 名称中的“hook”替换为模块的短名称,因此只需将函数名称从 membercount_block_info
更改为 helicopter_contest_form_block_info
( “hook_block_view”)也是如此。
此外,实际上没有必要在 .info 文件中提及 files[] = helicopter_contest_form.module
,因为无论如何都需要 .module。
关于php - 无法使用 drupal 模块创建 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13582086/