1

我有一个带有字段的节点类型,有些是必需的,有些不是。我正在尝试创建节点表单的多步骤表单。必填字段是第一步,剩余字段是下一步。

我隐藏了第一步不需要的字段,使用 hook_form_alter,这很容易,但我不知道如何将表单转换为多步表单。我阅读了 API 文档,上面说我必须使用

$form['next'] = array(
      '#type' => 'submit',
      '#value' => 'Next >>',
);

这就是drupal 如何知道这是一个多步骤的形式。但如果我理解正确,我不能在 hook_form_alter 中使用它,因为 $form 不在那个状态。

我在哪里可以删除提交并添加到表单旁边?

谢谢您的帮助。

4

2 回答 2

2

尝试http://drupal.org/project/mformshttp://drupal.org/project/multistep作为指导。该模块基本上是用于制作简单的多步骤表格

一些片段,

Multistep 为内容类型编辑表单添加了多步骤功能。它通过为内容类型中的每个字段组分配一个步骤编号并隐藏所有不属于当前步骤的组来实现这一点。然后,用户可以使用不同的提交按钮来重定向到上一个、下一个或当前步骤。

于 2013-01-23T11:08:31.940 回答
0

hook_form_alter(或 hook_form_FORM_ID_alter)你想要使用的,你只需要确保你的事件最后触发。为此,您可以进入数据库并增加模块在系统表中的权重(或编写一个 db_update,这是很长的路要走)。

许多 Drupal 开发人员创建了一个名为“Overrides”或类似的模块,它总是最后触发。你可以把你的覆盖放在那里。

作为项目的附注,您可能希望查看 Ctools 和其中包含的 form_wizard 功能。如果您想将向导放置在模态中,这可能会非常有用。我发现它比 mforms 非常优越,但它需要一点点熟悉。

祝你好运!

于 2013-01-23T15:01:40.667 回答