You are here

function workflowfield_form_field_ui_field_edit_form_alter in Workflow 7

Same name and namespace in other branches
  1. 7.2 workflow_field/workflowfield.field.inc \workflowfield_form_field_ui_field_edit_form_alter()

Implements hook_form_FORM_ID_alter().

Changes the hook_field_settings_form. Fixes some Field settings and Field Instance settings, and makes sure users cannot change it. @todo: perhaps this is core functionality, but these values are only saved when the site builder explicitly save the instance settings. :-(

File

workflow_field/workflowfield.field.inc, line 23
Defines a Workflow field, widget and formatter. (copied from list field).

Code

function workflowfield_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {
  if ($form['#field']['type'] == 'workflow') {

    // The Workflow field must have a value, so set to required.
    $form['instance']['required']['#type'] = 'hidden';
    $form['instance']['required']['#default_value'] = 1;
    $form['instance']['required']['#disabled'] = TRUE;

    // User may not set a default value, this is done by the Workflow module, @see WorkflowState->getOptions().
    $form['instance']['default_value_widget']['#type'] = 'hidden';
    $form['instance']['default_value_widget']['#disabled'] = TRUE;
    unset($form['instance']['default_value_widget']);

    // Make sure only 1 value can be entered in the Workflow field.
    $form['field']['cardinality']['#type'] = 'hidden';
    $form['field']['cardinality']['#default_value'] = 1;
    $form['field']['cardinality']['#disabled'] = TRUE;
  }
}