我有一个包含字段的节点类型,一些是必需的,一些不是。我想要创建节点表单的多步形式。必填字段是第一步,剩下的是下一步。
我使用hook_form_alter隐藏了第一步中不需要的字段,这就是简单部分,但我不知道如何将表单转换为多步形式。我阅读了API文档,其中说我必须使用
$form['next'] = array(
'#type' => 'submit',
'#value' => 'Next >>',
);
这就是drupal如何知道这是一个多步形式。 但如果我理解正确,我不能在hook_form_alter中使用它,因为$ form不在那里。
我可以在哪里删除提交并在表单旁边添加?
感谢您的帮助。
答案 0 :(得分:2)
尝试http://drupal.org/project/mforms和http://drupal.org/project/multistep作为指导。该模块基本上用于制作简单的多步骤形式
一些片段,
Multistep为内容类型编辑表单添加了多步功能。它通过为内容类型中的每个字段组分配步骤编号并隐藏不属于当前步骤的所有组来完成此操作。然后,用户可以使用不同的提交按钮,这些按钮将重定向到上一步,下一步或当前步骤。
答案 1 :(得分:0)
hook_form_alter(或hook_form_FORM_ID_alter) 您想要使用的内容,您只需要确保您的事件最后一次触发。为此,您可以进入数据库并在 system 表中增加模块的权重(或编写db_update,这是很长的路)。
许多Drupal开发人员创建了一个名为" Overrides"或类似的东西,总是最后发射。你可以把你的覆盖放在那里。
作为项目的旁注,您可能需要查看Ctools及其中包含的form_wizard功能。如果你想把你的向导放在一个模态中,可能会非常有用。我发现它比mforms更优越,但它需要一点熟悉。
祝你好运!