summaryrefslogtreecommitdiff
path: root/sites/all/modules/file_entity/file_entity.views.inc
diff options
context:
space:
mode:
Diffstat (limited to 'sites/all/modules/file_entity/file_entity.views.inc')
-rw-r--r--sites/all/modules/file_entity/file_entity.views.inc174
1 files changed, 174 insertions, 0 deletions
diff --git a/sites/all/modules/file_entity/file_entity.views.inc b/sites/all/modules/file_entity/file_entity.views.inc
new file mode 100644
index 000000000..101123a04
--- /dev/null
+++ b/sites/all/modules/file_entity/file_entity.views.inc
@@ -0,0 +1,174 @@
+<?php
+
+/**
+ * @file
+ * Views integration for the file_entity module.
+ */
+
+/**
+ * Implements hook_views_data().
+ */
+function file_entity_views_data() {
+ // File type.
+ $data['file_managed']['type'] = array(
+ 'title' => t('Type'),
+ 'help' => t('The type of the file (for example, "audio", "image", "video", etc).'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_file_type',
+ 'click sortable' => TRUE,
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_file_type',
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_file_type',
+ ),
+ );
+
+ // File schema type.
+ $data['file_managed']['schema_type'] = array(
+ 'title' => t('Schema type'),
+ 'help' => t('Filter files by schema, such as public or private.'),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_schema_type',
+ ),
+ );
+
+ // Rendered file.
+ $data['file_managed']['rendered'] = array(
+ 'title' => t('Rendered'),
+ 'help' => t('Display the file in a specific view mode.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_file_rendered',
+ 'click sortable' => TRUE,
+ 'real field' => 'fid',
+ 'additional fields' => array(
+ 'fid',
+ ),
+ ),
+ );
+
+ // View link.
+ $data['file_managed']['link'] = array(
+ 'title' => t('Link'),
+ 'help' => t('Provide a simple link to the file entity.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_file_link',
+ 'real field' => 'fid',
+ 'additional fields' => array(
+ 'fid',
+ ),
+ ),
+ );
+
+ // Edit link.
+ $data['file_managed']['edit'] = array(
+ 'title' => t('Edit link'),
+ 'help' => t('Provide a simple link to edit the file entity.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_file_link_edit',
+ 'real field' => 'fid',
+ 'additional fields' => array(
+ 'fid',
+ ),
+ ),
+ );
+
+ // Delete link.
+ $data['file_managed']['delete'] = array(
+ 'title' => t('Delete link'),
+ 'help' => t('Provide a simple link to delete the file entity.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_file_link_delete',
+ 'real field' => 'fid',
+ 'additional fields' => array(
+ 'fid',
+ ),
+ ),
+ );
+
+ // Download link.
+ $data['file_managed']['download'] = array(
+ 'title' => t('Download link'),
+ 'help' => t('Provide a simple link to download the file entity.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_file_link_download',
+ 'real field' => 'fid',
+ 'additional fields' => array(
+ 'fid',
+ ),
+ ),
+ );
+
+ // Usage link.
+ $data['file_managed']['usage'] = array(
+ 'title' => t('Usage link'),
+ 'help' => t('Provide a simple link to view the usage of the file entity.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_file_link_usage',
+ 'click sortable' => TRUE,
+ 'real field' => 'fid',
+ 'additional fields' => array(
+ 'fid',
+ ),
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ );
+
+ return $data;
+}
+
+/**
+ * Implements hook_views_data_alter().
+ */
+function file_entity_views_data_alter(&$data) {
+ // Add access tag for all queries against file_managed.
+ $data['file_managed']['table']['base']['access query tag'] = 'file_access';
+ // Override the filename field handler.
+ $data['file_managed']['filename']['field']['handler'] = 'views_handler_field_file_filename';
+}
+
+/**
+ * Implements hook_views_plugins().
+ */
+function file_entity_views_plugins() {
+ return array(
+ 'module' => 'views', // This just tells our themes are elsewhere.
+ 'row' => array(
+ 'file' => array(
+ 'title' => t('File'),
+ 'help' => t('Display the file with standard file view.'),
+ 'handler' => 'views_plugin_row_file_view',
+ 'base' => array('file_managed'), // only works with 'file' as base.
+ 'uses options' => TRUE,
+ 'type' => 'normal',
+ 'help topic' => 'style-file',
+ ),
+ 'file_rss' => array(
+ 'title' => t('File'),
+ 'help' => t('Display the file with standard file view.'),
+ 'handler' => 'views_plugin_row_file_rss',
+ 'theme' => 'views_view_row_rss',
+ 'base' => array('file_managed'), // only works with 'file' as base.
+ 'uses options' => TRUE,
+ 'type' => 'feed',
+ 'help topic' => 'style-file-rss',
+ ),
+ ),
+ );
+}
+
+/**
+ * Implements hook_views_query_substitutions().
+ */
+function file_entity_views_query_substitutions() {
+ return array(
+ '***ADMINISTER_FILES***' => intval(user_access('administer files')),
+ '***BYPASS_FILE_ACCESS***' => intval(user_access('bypass file access')),
+ );
+}