1

我对这篇文章中的想法很感兴趣:“Mad Libs”样式表单增加了 25-40% 的转化率。我想在几个 Drupal 网站上测试这样的表格来代替注册表;但是,我不确定如何使用 Drupal 的 Form API 来处理这种非正统的形式。

使用 hook_form_alter 更改现有的 user_register 表单是否可行?有没有更好的办法?

理想情况下,我希望能够对任意表单上的每个表单字段进行标记化,然后在字段应出现的位置输入带有标记 ID 的“故事”文本。我不确定在表单渲染过程中的哪个位置可以做到这一点?

4

1 回答 1

2

有趣的。您应该像通常构建drupal 表单一样构建表单,仅包含其中的字段。您的叙述将包含在模板文件中,该文件应用于为表单设置主题。使用模板主题形式非常容易。例如,在您的 _theme 挂钩中,将表单与模板文件绑定,


testmodule_theme()
{
  return array(
        "user_aboutme_form" => array(
            "arguments" => array( "form" => NULL ),
            'path' => $path_to_template_folder,
            "template" => "user-aboutme-form",
            )
);
}
确保在两者之间清除主题缓存。在您的模板文件中,您将获得整个表单数组,并且您可以使用 drupal_render 函数渲染单个元素。通过自定义样式,您可以获得与上述网站相同的外观和感觉。这里唯一的问题是确保在完成渲染单个表单元素之后渲染根表单元素,即 drupal_render($form),这会将表单标记值放入表单中,否则表单将无法工作。

于 2011-01-27T07:17:53.607 回答