是否有任何命令或方法可用于将表单内容(例如用户注册表单)插入块中?
答案 0 :(得分:26)
在Drupal 7中,它看起来像这样:
function yourmodule_block_view($delta='')
{
switch($delta) {
case 'your_block_name':
$block['subject'] = null; // Most forms don't have a subject
$block['content'] = drupal_get_form('yourmodule_form_function');
break;
}
return $block;
}
drupal_get_form
返回的表单数组将自动呈现。
yourmodule_form_function
是一个函数(在你的模块或现有的Drupal模块中),它返回表单数组;
答案 1 :(得分:15)
drupal_get_form($form_id)
- 将它放在模块的hook_block
($ op =='view')中,甚至...... shudder ...在带有PHP过滤器的块内上。
您需要先找到表单ID - 在表单中查找名称为input
的隐藏form_id
。它的值应该是表单id。
此外,您只需使用Form Block模块。
答案 2 :(得分:0)
另一个原因是它将一些PHP代码放入数据库中,而不是放在其余部分的文件系统中。很容易忘记并浪费大量时间来搜索代码, grep 更方便,遍历每个块并查看PHP是否存在。