You are here

function br_tax_number_fields_field_widget_form in Brazilian IDs 7

Implements hook_field_widget_form().

File

./br_tax_number_fields.module, line 92
Adds Brazilian Tax Number field widgets to text field type at the Field UI and creates new form element types for use in the Form API.

Code

function br_tax_number_fields_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  $value = isset($items[$delta]['value']) ? $items[$delta]['value'] : '';
  $maxlength = 18;
  $size = 18;
  switch ($instance['widget']['type']) {
    case 'number_cnpj':
      $callback_validate = 'br_tax_number_fields_cnpj_validate';
      break;
    case 'number_cpf':
      $maxlength = 14;
      $size = 14;
      $callback_validate = 'br_tax_number_fields_cpf_validate';
      break;
    case 'number_cnpj_cpf':
      $callback_validate = 'br_tax_number_fields_cnpj_cpf_validate';
      break;
  }
  $element += array(
    '#type' => 'textfield',
    '#default_value' => $value,
    '#maxlength' => $maxlength,
    '#size' => $size,
    '#element_validate' => array(
      $callback_validate,
    ),
  );
  return array(
    'value' => $element,
  );
}