【发布时间】:2018-03-01 22:05:56
【问题描述】:
我在 Drupal 7 中有多个针对单一内容类型的表单。这样做的目的是在用户提交表单时启动不同的工作流程,具体取决于包含的信息类型,并由 /url 为每个表单定义。这些表单位于不同的页面上,每个页面上显示的字段都在自定义模块中定义。例如:
.../form1 启动工作流 1 并显示字段 a、b、e、f、g
.../form2 启动工作流 2 并显示字段 a、b、c、e、h
.../form3 启动工作流 3 并显示字段 a、b、f、x、y
在这个模块中它看起来像这样:
function my_custom_module_custom_form() {
// Build Form
$form = getForm('content_type');
switch (strtolower($form['#action'])):
case('/form1'):
$form['field_some_field']['#access'] = FALSE;
switch (strtolower($form['#action'])):
case('/form2'):
$form['field_other_field']['#access'] = FALSE;
我希望每个表单都有一个页面模板,因此我可以指定每个表单的内容,而不是显示/隐藏模块中每个字段的每个字段,考虑到字段的数量,这很麻烦。
我可以为每个表单创建一个页面模板并链接提交按钮以触发模块中的特定操作吗?
注意:添加依赖项或使用单独的内容类型不适用于我们的用例。如果上面的代码有错误,只是我在这里给出了一个简单的例子,实际的模块可以工作。
感谢您的帮助!
【问题讨论】:
-
你用过不同的表格吗?如果是,那么它具有不同的表单 ID,然后是为每个表单创建模板文件的最佳方法,以便您可以根据需要呈现特定字段。
标签: forms drupal-7 drupal-forms drupal-form-submission