function views_database_connector_views_data in Views Database Connector 7
Same name and namespace in other branches
- 8 views_database_connector.views.inc \views_database_connector_views_data()
Implements hook_views_data().
File
- ./
views_database_connector.views.inc, line 11 - Responsible for hooking views to add each database and its tables.
Code
function views_database_connector_views_data() {
$dbs = views_database_connector_get_database_schemas();
$data = array();
// Iterate through each database.
foreach ($dbs as $dname => $db) {
// Iterate through each table.
foreach ($db as $table) {
// Make sure the table name hasn't been used before.
if (!isset($data[$table[0]])) {
// Set the title.
$title = '[VDC] ' . check_plain($dname) . ': ';
$title .= check_plain($table[0]);
// Setup the table for Views to be able to see it.
$data[$table[0]]['table']['group'] = $table[0];
$data[$table[0]]['table']['base'] = array(
// Use the first column's name as the primary field.
'field' => $table[1][0][1],
'title' => $title,
'database' => $dname,
'weight' => -9001,
);
// Add each column to its respective table.
foreach ($table[1] as $col) {
if ($col[0] == 'numeric') {
$data[$table[0]][$col[1]] = array(
'title' => $col[1],
'help' => $col[1],
'field' => array(
'handler' => 'views_handler_field_numeric',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_numeric',
),
'argument' => array(
'handler' => 'views_handler_argument_numeric',
),
);
}
if ($col[0] == 'date') {
$data[$table[0]][$col[1]] = array(
'title' => $col[1],
'help' => $col[1],
'field' => array(
'handler' => 'views_database_connector_handler_field_datetime',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort_date',
),
'filter' => array(
'handler' => 'views_database_connector_handler_filter_datetime',
),
'argument' => array(
'handler' => 'views_handler_argument_date',
'empty field name' => t('Undated'),
),
);
}
if ($col[0] == 'string') {
$data[$table[0]][$col[1]] = array(
'title' => $col[1],
'help' => $col[1],
'field' => array(
'handler' => 'views_handler_field',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_string',
),
'argument' => array(
'handler' => 'views_handler_argument_string',
),
);
}
if ($col[0] == 'broken') {
$data[$table[0]][$col[1]] = array(
'title' => $col[1],
'help' => $col[1],
'field' => array(
'handler' => 'views_handler_field_broken',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort_broken',
),
'filter' => array(
'handler' => 'views_handler_filter_broken',
),
'argument' => array(
'handler' => 'views_handler_argument_broken',
),
);
}
}
}
}
}
// Return the finished result, allowing Views to be able to see everything
// that it needs.
return $data;
}