0

我已经构建了一个像这样的多步骤的 ctools 模态表单,并且我已经构建了一个像这样的 ctools 模态节点表单。

凉爽的!但现在我想要一个 ctools 多步模态节点表单。是的,我可以通过表单 API 呈现所有字段,挂起所有验证和自定义小部件,然后编写我自己的提交处理程序,但是当节点表单已经为我完成时,为什么还要麻烦呢?

任何帮助将不胜感激。

4

1 回答 1

0

我想到了。诀窍是将节点作为参数加载到 $form_state 中,然后有几种方法可以呈现表单(见下文)。

ctools_include('node.pages', 'node', '');
$form_state['build_info']['args'] = array($node);
$output = ctools_modal_form_wrapper('my_content_type_node_form', $form_state);
print ajax_render($output);

ctools_include('node.pages', 'node', '');
$form_state['build_info']['args'] = array($node);
$form = drupal_retrieve_form('my_content_type_node_form', &$form_state);
print ajax_render($output);

我想要这样做的原因是避免重新包含节点表单已经拥有的所有提交处理程序和验证。但是由于 ajax,如果您的表单中有文件上传,您还需要这个:

form_load_include($form_state, 'inc', 'node', 'node.pages');
于 2014-03-05T10:55:20.303 回答