5 * Field conversion for fields handled by this module.
9 * Implementation of hook_views_convert().
11 function filefield_views_convert($display, $type, &$view, $field, $id = NULL
) {
12 static
$filefield_fields;
13 static
$filefield_filters;
14 static
$filefield_arguments;
15 if (!isset($filefield_fields)) {
16 $filefield_fields = $filefield_filters = $filefield_arguments = array();
17 foreach (content_fields() as
$content_field) {
18 if ($content_field['module'] == 'filefield') {
19 $result = module_invoke('filefield', 'field_settings', 'views data', $content_field);
20 if (!empty($result)) {
21 foreach ($result as
$table => $fields) {
22 unset($fields['table']);
23 foreach ($fields as
$filefield_field => $definition) {
24 switch ($filefield_field) {
25 case
$content_field['field_name'] .
'_fid':
26 $filefield_fields[$filefield_field] = array(
28 'field' => $filefield_field,
30 $filefield_arguments['content: '.
$content_field['field_name']] = &$filefield_fields[$filefield_field];
32 case
$content_field['field_name'] .
'_list':
33 $filefield_filters[$content_field['field_name'] .
'_fid_not null'] = array(
35 'field' => $filefield_field,
47 if (isset($filefield_fields[$field['field']])) {
49 switch ($field['handler']) {
50 case
'content_views_field_handler_ungroup':
51 $view->set_item_option($display, 'field', $id, 'multiple', array('group' => FALSE
));
53 case
'content_views_field_handler_last':
54 $multiple['multiple_reversed'] = TRUE
;
55 case
'content_views_field_handler_first':
56 $multiple['multiple_number'] = 1;
57 $view->set_item_option($display, 'field', $id, 'multiple', $multiple);
60 $view->set_item_option($display, 'field', $id, 'format', $field['options']);
64 if (isset($filefield_filters[$field['field']])) {
65 $filter = $filefield_filters[$field['field']];
66 $item = $view->get_item($display, 'filter', $id);
67 $item['value'] = $field['value'];
68 $item['table'] = $filter['table'];
69 $item['field'] = $filter['field'];
70 $view->set_item($display, 'filter', $id, $item);
74 if (isset($filefield_arguments[$field['type']])) {
75 $argument = $filefield_arguments[$field['type']];
76 $options = $field['argoptions'];
77 $view->add_item($display, 'argument', $argument['table'], $argument['field'], $options, $field['id']);