This repository has been archived on 2025-06-21. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
suitedesk/modules/views/modules/system.views.inc

229 lines
5.4 KiB
PHP

<?php
/**
* @file
*
* Provide views data and handlers for system tables that are not represented by
* their own module.
*/
/**
* @defgroup views_system_module system.module handlers
*
* @{
*/
/**
* Implementation of hook_views_data()
*/
function system_views_data() {
$data = array();
// ----------------------------------------------------------------------
// files table
$data['files']['table']['group'] = t('File');
// Advertise this table as a possible base table
$data['files']['table']['base'] = array(
'field' => 'fid',
'title' => t('File'),
'help' => t("Files maintained by Drupal and various modules."),
);
// The files table does not inherently join to the node table,
// but may things (such as upload.module) can add relationships
// that allow file fields to be used.
// For other base tables, explain how we join
$data['files']['table']['join'] = array(
'users' => array(
// direct join to the users table via 'uid' field.
'left_field' => 'uid',
'field' => 'uid',
),
);
// fid
$data['files']['fid'] = array(
'title' => t('File ID'),
'help' => t('The ID of the file.'),
'field' => array(
'handler' => 'views_handler_field_file',
'click sortable' => TRUE,
),
'argument' => array(
'handler' => 'views_handler_argument_file_fid',
'name field' => 'filename', // the field to display in the summary.
),
'filter' => array(
'handler' => 'views_handler_filter_numeric',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
);
// filename
$data['files']['filename'] = array(
'title' => t('Name'),
'help' => t('The name of the file.'),
'field' => array(
'handler' => 'views_handler_field_file',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_string',
),
'argument' => array(
'handler' => 'views_handler_argument_string',
),
);
// filepath
$data['files']['filepath'] = array(
'title' => t('Path'),
'help' => t('The path of the file.'),
'field' => array(
'handler' => 'views_handler_field_file',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_string',
),
'argument' => array(
'handler' => 'views_handler_argument_string',
),
);
// filemime
$data['files']['filemime'] = array(
'title' => t('Mime type'),
'help' => t('The mime type of the file.'),
'field' => array(
'handler' => 'views_handler_field_file',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_string',
),
'argument' => array(
'handler' => 'views_handler_argument_string',
),
);
// filesize
$data['files']['filesize'] = array(
'title' => t('Size'),
'help' => t('The size of the file.'),
'field' => array(
'handler' => 'views_handler_field_file_size',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_numeric',
),
);
// status
$data['files']['status'] = array(
'title' => t('Status'),
'help' => t('The status of the file.'),
'field' => array(
'handler' => 'views_handler_field_file_status',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
'filter' => array(
'handler' => 'views_handler_filter_file_status',
),
);
// timestamp field
$data['files']['timestamp'] = array(
'title' => t('Upload date'),
'help' => t('The date the file was uploaded.'),
'field' => array(
'handler' => 'views_handler_field_date',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort_date',
),
'filter' => array(
'handler' => 'views_handler_filter_date',
),
);
// uid field
$data['files']['uid'] = array(
'title' => t('User'),
'help' => t('The user, who uploaded the file.'),
'relationship' => array(
'base' => 'users',
'base field' => 'uid',
'handler' => 'views_handler_relationship',
'label' => t('User'),
),
);
return $data;
}
/**
* Implementation of hook_views_handlers() to register all of the basic handlers
* views uses.
*/
function system_views_handlers() {
return array(
'info' => array(
'path' => drupal_get_path('module', 'views') . '/modules/system',
),
'handlers' => array(
'views_handler_field_file' => array(
'parent' => 'views_handler_field',
),
'views_handler_field_file_status' => array(
'parent' => 'views_handler_field',
),
'views_handler_filter_file_status' => array(
'parent' => 'views_handler_filter_in_operator',
),
'views_handler_argument_file_fid' => array(
'parent' => 'views_handler_argument',
),
),
);
}
function _views_file_status($choice = NULL) {
$status = array(
FILE_STATUS_TEMPORARY => t('Temporary'),
FILE_STATUS_PERMANENT => t('Permanent'),
);
if (isset($choice)) {
return isset($status[$choice]) ? $status[$choice] : t('Unknown');
}
return $status;
}
/**
* @}
*/