在Drupal中将表单插入到块中?

在Drupal中将表单插入到块中?,drupal,forms,Drupal,Forms,是否有任何命令或方法可用于将表单(例如用户注册表单)的内容插入到块中?-将其放入模块的钩子块($op=='view'),甚至。。。颤抖在打开PHP过滤器的块内 您需要首先找到表单id-在表单中查找名为form\u id的隐藏input。其值应为表单id的值 另外,您可以简单地使用该模块。另一件事是,它将一些PHP代码放入数据库中,而不是放在文件系统中,其余的则放在文件系统中。很容易忘记并浪费大量时间搜索代码,而grep比遍历每个块并查看PHP是否在那里更方便。在Drupal 7中,它看起来是这样

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

-将其放入模块的
钩子块($op=='view'),甚至。。。颤抖在打开PHP过滤器的块内

您需要首先找到表单id-在表单中查找名为
form\u id
的隐藏
input
。其值应为表单id的值


另外,您可以简单地使用该模块。

另一件事是,它将一些PHP代码放入数据库中,而不是放在文件系统中,其余的则放在文件系统中。很容易忘记并浪费大量时间搜索代码,而grep比遍历每个块并查看PHP是否在那里更方便。

在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\u get\u form
返回的表单数组将自动呈现


yourmodule\u form\u function
是一个返回表单数组的函数(在您的模块或现有Drupal模块中)

基本上,PHP过滤器是个坏主意。Drupal手册页面中关于该主题的内容是:“……这是恶意用户手中的一个重大而危险的安全风险。即使是受信任的用户也可能通过输入格式错误或不正确的PHP代码而意外破坏网站”。编写一个模块(实际上只需要几行开销)几乎总是更好的。它破坏了搜索索引,从而破坏了cron。不值得这么复杂的调试。我同意格雷赛德的观点。在我的第一个Drupal站点中,我在一些节点中使用了php重定向,这完全破坏了搜索索引模块。因此,从这个意义上讲,这是不好的