1.20.x views.api.php | hook_views_data_alter(&$data) |
Alter table structure.
You can add/edit/remove existing tables defined by hook_views_data().
This hook should be placed in MODULENAME.views.inc and it will be auto-loaded. MODULENAME.views.inc must be in the directory specified by the 'path' key returned by MODULENAME_views_api(), or the same directory as the .module file, if 'path' is unspecified.
Parameters
$data: An array of all Views data, passed by reference. See hook_views_data() for structure.
See also
Related topics
File
- modules/
views/ views.api.php, line 467 - Describe hooks provided by the Views module.
Code
function hook_views_data_alter(&$data) {
// This example alters the title of the node:nid field in the Views UI.
$data['node']['nid']['title'] = t('Node-Nid');
// This example adds an example field to the users table.
$data['users']['example_field'] = array(
'title' => t('Example field'),
'help' => t('Some example content that references a user'),
'field' => array(
'handler' => 'modulename_handler_field_example_field',
),
);
// This example changes the handler of the node title field. In this handler
// you could do stuff, like preview of the node when clicking the node title.
$data['node']['title']['field']['handler'] = 'modulename_handler_field_node_title';
// This example adds a relationship to table {foo}, so that 'foo' views can
// add this table using a relationship. Because we don't want to write over
// the primary key field definition for the {foo}.fid field, we use a dummy
// field name as the key.
$data['foo']['dummy_name'] = array(
'title' => t('Example relationship'),
'help' => t('Example help'),
'relationship' => array(
'base' => 'example_table', // Table we're joining to.
'base field' => 'eid', // Field on the joined table.
'field' => 'fid', // Real field name on the 'foo' table.
'handler' => 'views_handler_relationship',
'label' => t('Default label for relationship'),
'title' => t('Title seen when adding relationship'),
'help' => t('More information about relationship.'),
),
);
// Note that the $data array is not returned – it is modified by reference.
}