我对本文中的想法很感兴趣:"Mad Libs" Style Form Increases Conversion 25-40%。我想在几个Drupal网站上测试这样一个表格来代替注册表格;但是,我不确定如何使用Drupal的Form API来处理这种非正统的形式。
使用hook_form_alter更改现有的user_register表单是否可行?还有更好的方法吗?
理想情况下,我希望能够在任意表单上对每个表单字段进行令牌化,然后输入带有令牌ID的“故事”文本,其中字段应该出现。我不确定表格渲染过程中的哪个位置可以做到这一点?
答案 0 :(得分: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),这将在表单中放入表单标记值,否则表单将不起作用。 p>