function hook_views_data_alter

Alter table structure.

You can add/edit/remove existing tables defined by hook_views_data().

This hook should be placed in MODULENAME.views_default.inc and it will be auto-loaded. MODULENAME.views_default.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.

After adding this hook to an existing module, you will need to clear the Drupal menu cache and the Views cache to have your default views be recognized.

Parameters

array $data: An array of all Views data, passed by reference. See hook_views_data() for structure.

See also

hook_views_data()

Related topics

10 functions implement hook_views_data_alter()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

comment_views_data_alter in modules/comment.views.inc
Implements hook_views_data_alter() on behalf of comment.module.
contact_views_data_alter in modules/contact.views.inc
Implements hook_views_data_alter().
field_views_data_alter in modules/field.views.inc
Implements hook_views_data_alter().
file_field_views_data_views_data_alter in modules/file.views.inc
Implements hook_field_views_data_views_data_alter().
image_field_views_data_views_data_alter in modules/image.views.inc
Implements hook_field_views_data_views_data_alter().

... See full list

1 invocation of hook_views_data_alter()
_views_fetch_data_build in includes/cache.inc
Build and set the views data cache if empty.

File

./views.api.php, line 484

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
    // placeholder field name as the key.
    $data['foo']['sample_name'] = array(
        'title' => t('Example relationship'),
        'help' => t('Example help'),
        'relationship' => array(
            // Table we're joining to.
'base' => 'example_table',
            // Field on the joined table.
'base field' => 'eid',
            // Real field name on the 'foo' table.
'field' => 'fid',
            '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.
}