You are here

function workflowfield_field_widget_form in Workflow 7

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

Implements hook_field_widget_form().

This is a wrapper function for the 'workflow form' Widget. $form is modified by reference.

1 string reference to 'workflowfield_field_widget_form'
workflowfield.module in workflow_field/workflowfield.module
Support workflows made up of arbitrary states.

File

workflow_field/workflowfield.widget.inc, line 33
Defines a Workflow field, widget (sfrom options.module) and formatter (from list field). All hooks are wrapper functions for a D8-style WorkflowDefaultWidget object.

Code

function workflowfield_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  if (isset($form_state['node'])) {
    $entity = $form_state['node'];
    $entity_type = 'node';

    // comments are only supported on nodes.
  }
  elseif (isset($element['#entity_type'])) {

    // We are on an Entity add/edit page.
    $entity = $element['#entity'];
    $entity_type = $element['#entity_type'];

    // @todo: add support for other entity types.
  }
  if (!$entity) {

    // We are now on the Field settings page, so do nothing.
    return $element;
  }
  if ($entity_type == 'comment') {

    // On a comment form, get the referenced entity.
    $entity_type = 'node';

    // Comments are only possible on nodes
    $entity = $form['#node'];
  }
  $widget = new WorkflowDefaultWidget($field, $instance, $entity_type, $entity);
  $element += $widget
    ->formElement($items, $delta, $element, $langcode, $form, $form_state);
  return $element;
}