【问题标题】:How would you approach creating a "Mad Libs" style form in Drupal?您将如何在 Drupal 中创建“Mad Libs”样式的表单?
【发布时间】:2011-01-27 05:09:30
【问题描述】:

我对这篇文章中的想法很感兴趣:"Mad Libs" Style Form Increases Conversion 25-40%。我想在几个 Drupal 站点上测试这样的表格来代替注册表;但是,我不确定如何使用 Drupal 的 Form API 来处理这种非正统的形式。

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

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

【问题讨论】:

    标签: drupal drupal-6 drupal-fapi drupal-forms drupal-webform


    【解决方案1】:

    有趣。您应该像通常构建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),这会将表单令牌值放入表单中,否则表单将无法工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 2011-04-11
      相关资源
      最近更新 更多