在Drupal中将表单插入块中?

时间:2009-09-20 12:43:44

标签: drupal forms

是否有任何命令或方法可用于将表单内容(例如用户注册表单)插入块中?

3 个答案:

答案 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是否存在。