php - 无法使用 drupal 模块创建 block

标签 php drupal drupal-7 drupal-modules

我正在尝试创建一个带有 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/

相关文章:

drupal - Drupal hook_menu实现中的可选参数

drupal - 以编程方式获取和设置字段值

php - MySQL Datediff 跳过周六和周日

php - 如何从mysql数组文本中选择并比较

css - Drupal - View 中选定的节点突出显示

php - drupal 7 自定义架构错误日期时间

php - highcharts不显示图表

php - MYSQL事件更新另一个数据库表

php - 我怎样才能提取 drupal-x.x.tar.gz 文件

php - 以编程方式更改事件的 Drupal 7 主题