View source
<?php
module_load_include('inc', 'content', '/includes/views/content.views');
function video_views_handlers() {
return array(
'info' => array(
'path' => drupal_get_path('module', 'video') . '/views',
),
'handlers' => array(
'video_views_handler_field_data' => array(
'parent' => 'content_handler_field',
),
),
);
}
function video_views_data() {
$data = array();
$data['video']['table']['group'] = t('Video');
$widgets = array(
'videoftp_widget',
'uploadfield_widget',
);
foreach (field_info_fields() as $field) {
if ($field['module'] == 'filefield' && isset($field['widget']['type']) && in_array($field['widget']['type'], $widgets)) {
$views_data = content_views_field_views_data($field);
$table_alias = content_views_tablename($field);
$db_info = content_database_info($field);
$title = t('@label (!name) thumbnail', array(
'@label' => t($field['widget']['label']),
'!name' => $field['field_name'],
));
$types = array();
foreach (content_types() as $type) {
if (isset($type['fields'][$field['field_name']])) {
$types[] = $type['name'];
}
}
$additional_fields = array();
foreach ($db_info['columns'] as $column => $attributes) {
if (!empty($attributes['views'])) {
$db_columns[$column] = $attributes;
}
$additional_fields[$attributes['column']] = $attributes['column'];
}
$data[$table_alias][$field['field_name'] . '_thumbnail'] = array(
'group' => t('Video'),
'title' => $title,
'help' => t('Appears in: @types', array(
'@types' => implode(', ', $types),
)),
);
$data[$table_alias][$field['field_name'] . '_thumbnail']['field'] = array(
'title' => $title,
'field' => $db_info['columns']['data']['column'],
'table' => $db_info['table'],
'handler' => 'video_views_handler_field_data',
'click sortable' => FALSE,
'content_field_name' => $field['field_name'],
'additional fields' => $additional_fields,
'access callback' => 'content_access',
'access arguments' => array(
'view',
$field,
),
);
}
}
return $data;
}