Projet

Général

Profil

Paste
Télécharger (1,3 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / file_entity / views / views_handler_field_file_rendered.inc @ 66c11afc

1
<?php
2

    
3
/**
4
 * @file
5
 * Definition of views_handler_field_file_rendered.
6
 */
7

    
8
/**
9
 * Field handler to render a file with a view mode using file_view_file().
10
 *
11
 * @ingroup views_field_handlers
12
 */
13
class views_handler_field_file_rendered extends views_handler_field_entity {
14
  function option_definition() {
15
    $options = parent::option_definition();
16
    $options['file_view_mode'] = array('default' => 'default');
17
    return $options;
18
  }
19

    
20
  /**
21
   * Provide file_view_mode option for to file display.
22
   */
23
  function options_form(&$form, &$form_state) {
24
    parent::options_form($form, $form_state);
25

    
26
    $entity_info = entity_get_info('file');
27
    $options = array('default' => t('Default'));
28
    foreach ($entity_info['view modes'] as $file_view_mode => $file_view_mode_info) {
29
      $options[$file_view_mode] = $file_view_mode_info['label'];
30
    }
31

    
32
    $form['file_view_mode'] = array(
33
      '#title' => t('File view mode'),
34
      '#description' => t('Select a view mode. Note that only the file will be rendered and not any of its fields.'),
35
      '#type' => 'select',
36
      '#default_value' => $this->options['file_view_mode'],
37
      '#options' => $options,
38
    );
39
  }
40

    
41
  function render($values) {
42
    if ($file = $this->get_value($values)) {
43
      return file_view_file($file, $this->options['file_view_mode']);
44
    }
45
  }
46
}