function address_field_views_data in Address 8
Implements hook_field_views_data().
Views integration for address fields.
File
- ./
address.views.inc, line 17 - Provide Views data for the Address module.
Code
function address_field_views_data(FieldStorageConfigInterface $field) {
$data = views_field_default_views_data($field);
$field_type = $field
->getType();
$field_name = $field
->getName();
if ($field_type == 'address') {
$columns = [
'country_code' => 'country',
'administrative_area' => 'subdivision',
'locality' => 'subdivision',
'dependent_locality' => 'subdivision',
'postal_code' => 'standard',
'sorting_code' => 'standard',
'address_line1' => 'standard',
'address_line2' => 'standard',
'organization' => 'standard',
'given_name' => 'standard',
'additional_name' => 'standard',
'family_name' => 'standard',
];
foreach ($data as $table_name => $table_data) {
foreach ($columns as $column => $plugin_id) {
$data[$table_name][$field_name . '_' . $column]['field'] = [
'id' => $plugin_id,
'field_name' => $field_name,
'property' => $column,
];
}
$data[$table_name][$field_name . '_country_code']['filter']['id'] = 'country';
$data[$table_name][$field_name . '_country_code']['sort']['id'] = 'country';
$data[$table_name][$field_name . '_administrative_area']['filter']['id'] = 'administrative_area';
}
}
elseif ($field_type == 'address_country') {
foreach ($data as $table_name => $table_data) {
$data[$table_name][$field_name . '_value']['field'] = [
'id' => 'country',
'field_name' => $field_name,
'property' => 'value',
];
$data[$table_name][$field_name . '_value']['filter']['id'] = 'country';
$data[$table_name][$field_name . '_value']['sort']['id'] = 'country';
}
}
return $data;
}