我正在尝试创建一个带有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个空格?我必须手动完成每一行,这也会破坏我的缩进...
[实现钩子时,应将钩子名称中的“钩子”替换为模块的简称,因此只需将函数的名称从membercount_block_info
更改为helicopter_contest_form_block_info
(与“ hook_block_view”相同)。
而且,由于仍然需要.module,因此实际上不需要在.info文件中提及files[] = helicopter_contest_form.module
。
尝试将代码调整为:
/**
* 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;
}
我知道这很奇怪,但是我曾经遇到过同样的问题,并且在添加该行之后就可以了。