You are here

function _required_by_role_set_property in Required by role 7

Helper function to set the #required property to a given element.

See also

form_builder

1 call to _required_by_role_set_property()
required_by_role_field_widget_form_alter in ./required_by_role.module
Implements hook_field_widget_form_alter().

File

./required_by_role.module, line 71

Code

function _required_by_role_set_property(&$element, $is_required, $context, $form_state) {
  if ($context['delta'] === 0) {

    // 0 based widgets.
    if (isset($element[0]['#required'])) {
      $element =& $element[0];
    }

    // "Value" based widgets.
    if (isset($element['value']['#required'])) {
      $element =& $element['value'];
    }

    // "[0][value]" based widgets.
    if (isset($element[0]['value']['#required'])) {
      $element =& $element[0]['value'];
    }

    // "[email]" based widgets.
    if (isset($element['email']['#required'])) {
      $element =& $element['email'];
    }
    $element['#required'] = $is_required;

    // Select element type has some behaviours regarding to the #required
    // property so we must apply the core process function here.
    if ($element['#type'] == 'select') {
      $element = form_process_select($element);
    }
  }
}