function br_tax_number_fields_field_formatter_view in Brazilian IDs 7
Implements hook_field_formatter_view().
File
- ./
br_tax_number_fields.module, line 24 - 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_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
if (in_array($display['type'], array(
'number_cnpj',
'number_cpf',
'number_cnpj_cpf',
))) {
$markup = '';
foreach ($items as $delta => $item) {
$v = $item['value'];
if (strlen($item['value']) == 11) {
// This is a CPF.
$markup = sprintf('%s.%s.%s-%s', $v[0] . $v[1] . $v[2], $v[3] . $v[4] . $v[5], $v[6] . $v[7] . $v[8], $v[9] . $v[10]);
}
elseif (strlen($item['value']) == 14) {
// This is a CNPJ.
$v1 = $v[0] . $v[1];
$v2 = $v[2] . $v[3] . $v[4];
$v3 = $v[5] . $v[6] . $v[7];
$v4 = $v[8] . $v[9] . $v[10] . $v[11];
$v5 = $v[12] . $v[13];
$markup = sprintf('%s.%s.%s/%s-%s', $v1, $v2, $v3, $v4, $v5);
}
$element[$delta]['#markup'] = $markup;
}
}
return $element;
}