View source
<?php
function name_views_data_alter(&$data) {
$name_fields = array();
foreach (field_info_field_map() as $field_name => $field) {
if ($field['type'] == 'name') {
$name_fields[$field_name] = field_info_field($field_name);
}
}
foreach ($data as $field_name => $field_data) {
foreach (array_keys($name_fields) as $name) {
if (isset($field_data[$name]) && $name_fields[$name]['storage']['type'] == 'field_sql_storage') {
$data[$field_name][$name]['filter'] = array(
'field' => $name,
'table' => key($name_fields[$name]['storage']['details']['sql'][FIELD_LOAD_CURRENT]),
'handler' => 'name_handler_filter_name_fulltext',
'field_name' => $name,
'allow_empty' => TRUE,
);
$components = array_filter($name_fields[$name]['settings']['components']);
foreach (_name_translations() as $key => $title) {
if (in_array($key, $components)) {
$component_key = $name . '_' . $key;
$data[$field_name][$component_key] = array(
'title' => $title,
'help' => t('@component component of the @label field.', array(
'@component' => $title,
'@label' => $data[$field_name][$name]['title'],
)),
'field' => array(
'handler' => 'views_handler_field',
'type' => 'text',
),
'field' => array(
'group' => t('Name Components'),
'handler' => 'views_handler_field',
'click sortable' => TRUE,
'link_to_node default' => TRUE,
),
'sort' => array(
'group' => t('Name Components'),
'handler' => 'views_handler_sort',
),
'filter' => array(
'group' => t('Name Components'),
'handler' => 'views_handler_filter_string',
),
'argument' => array(
'group' => t('Name Components'),
'handler' => 'views_handler_argument_string',
),
);
}
}
}
}
}
}