我想使用模块创建一个静态块。我不想使用“视图”模块来创建块。谁能解释我如何以编程方式创建静态块?
我已经在Drupal中检查了示例模块,但是并没有太大帮助。我最近开始进行Drupal模块的开发,而我正为此而努力。
我想使用模块创建一个静态块。我不想使用“视图”模块来创建块。谁能解释我如何以编程方式创建静态块?
我已经在Drupal中检查了示例模块,但是并没有太大帮助。我最近开始进行Drupal模块的开发,而我正为此而努力。
Answers:
“块”示例模块中的重要挂钩是hook_block_info()
和hook_block_view()
。信息挂钩在系统中定义了您的块,而视图挂钩为您的块创建了输出(html)。
每个模块,包括您的模块,都将至少具有一个.info文件和一个.module文件。Drupal.org有更多有关.info文件的文档,在开始使用模块时可能会有所帮助。您的确只需要name
和core
条目。
.module文件是实现挂钩的地方。首先,实施hook_block_info()
,用模块名称(例如)替换函数名称中的“ hook” my_module_block_info()
。它看起来应该如下所示。
function my_module_block_info() {
$blocks['your_block'] = array(
// info: The name of the block.
'info' => t('Your Block Name'),
);
return $blocks;
}
然后,实现您的hook_block_view()
钩子以定义静态内容。
function my_module_block_view($delta = '') {
// The $delta parameter tells us which block is being requested.
switch ($delta) {
case 'your_block':
// Create your block content here
$block['subject'] = t('Title of first block (example_configurable_text)');
$block['content'] = 'Your block content, or the result of a function that returns the content';
break;
}
return $block;
}
将其放置到位后,您可以像在Drupal中的其他任何块一样将其放置在任何区域。