You are here

function workflow_admin_ui_type_map_form_submit in Workflow 7.2

Same name and namespace in other branches
  1. 7 workflow_admin_ui/workflow_admin_ui.pages.inc \workflow_admin_ui_type_map_form_submit()

Submit handler for workflow type mapping form.

Save mapping of workflow to node type. E.g., the story node type is using the Foo workflow.

See also

workflow_types_form()

1 string reference to 'workflow_admin_ui_type_map_form_submit'
workflow_admin_ui_type_map_form in workflow_admin_ui/workflow_admin_ui.page.type_map.inc
Page builder. Show a maintenance table for type mapping.

File

workflow_admin_ui/workflow_admin_ui.page.type_map.inc, line 167
Provides the type_map maintenance form.

Code

function workflow_admin_ui_type_map_form_submit($form, &$form_state) {
  $form_values = $form_state['values'];

  // Empty the table and the variables so that types no longer under workflow go away.
  // @todo: it is possible to switch to new workflow for node_type, leaving nodes stuck in old workflow.
  workflow_delete_workflow_type_map_all();
  $node_types = node_type_get_names();
  foreach ($node_types as $node_type => $type_name) {
    $wid = $form_values['type_map'][$node_type]['workflow'];
    variable_del('workflow_' . $node_type);
    if ($wid) {
      workflow_insert_workflow_type_map($node_type, $wid);
      variable_set('workflow_' . $node_type, array_keys(array_filter($form_values['type_map'][$node_type]['placement'])));

      // If this type uses workflow, make sure pre-existing nodes are set
      // to the workflow's creation state.
      if ($form_values['type_map'][$node_type]['workflow']) {
        _workflow_node_initialize_nodes('node', $node_type, $field_name = '', $wid);
      }
    }
  }
  drupal_set_message(t('The workflow mapping was saved.'));
}