Projet

Général

Profil

Paste
Télécharger (2,87 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / media / includes / media.theme.inc @ e4215af7

1
<?php
2

    
3
/**
4
 * @file
5
 * Media Theming.
6
 *
7
 * Theming functions for the Media module.
8
 */
9

    
10
/**
11
 * Adds a wrapper around a preview of a media file.
12
 */
13
function theme_media_thumbnail($variables) {
14
  $label = '';
15
  $element = $variables['element'];
16

    
17
  // Wrappers to go around the thumbnail.
18
  $attributes = array(
19
    'title' => $element['#name'],
20
    'class' => 'media-item',
21
    'data-fid' => $element['#file']->fid,
22
  );
23
  $prefix = '<div ' . drupal_attributes($attributes) . '><div class="media-thumbnail">';
24
  $suffix = '</div></div>';
25

    
26
  // Arguments for the thumbnail link.
27
  $thumb = $element['#children'];
28
  if (file_entity_access('update', $element['#file'])) {
29
    $target = 'file/' . $element['#file']->fid . '/edit';
30
    $title = t('Click to edit details');
31
  }
32
  else {
33
    $target = 'file/' . $element['#file']->fid;
34
    $title = t('Click to view details');
35
  }
36
  $options = array(
37
    'query' => drupal_get_destination(),
38
    'html' => TRUE,
39
    'attributes' => array('title' => $title),
40
  );
41

    
42
  // Element should be a field renderable array. This should be improved.
43
  if (!empty($element['#show_names']) && $element['#name']) {
44
    $label = '<div class="label-wrapper"><label class="media-filename">' . $element['#name'] . '</label></div>';
45
  }
46

    
47
  $output = $prefix;
48
  if (!empty($element['#add_link'])) {
49
    $output .= l($thumb, $target, $options);
50
  }
51
  else {
52
    $output .= $thumb;
53
  }
54
  $output .= $label . $suffix;
55
  return $output;
56
}
57

    
58
/**
59
 * Preprocess the media thumbnail.
60
 */
61
function template_preprocess_media_thumbnail(&$variables) {
62
  // Set the name for the thumbnail to be the filename.  This is done here so
63
  // that other modules can hijack the name displayed if it should not be the
64
  // filename.
65
  $variables['element']['#name'] = isset($variables['element']['#file']->filename) ? check_plain($variables['element']['#file']->filename) : NULL;
66
}
67

    
68
/**
69
 * Field formatter for displaying a file as a large icon.
70
 */
71
function theme_media_formatter_large_icon($variables) {
72
  $file = $variables['file'];
73
  $icon_dir = variable_get('media_icon_base_directory', 'public://media-icons') . '/' . variable_get('media_icon_set', 'default');
74
  $icon = file_icon_path($file, $icon_dir);
75
  $variables['path'] = $icon;
76

    
77
  // theme_image() requires the 'alt' attribute passed as its own variable.
78
  // @see http://drupal.org/node/999338
79
  if (!isset($variables['alt']) && isset($variables['attributes']['alt'])) {
80
    $variables['alt'] = $variables['attributes']['alt'];
81
  }
82

    
83
  // Add image height and width for the image theme functions.
84
  if ($info = image_get_info($icon)) {
85
    $variables += $info;
86
  }
87

    
88
  if ($variables['style_name']) {
89
    $output = theme('image_style', $variables);
90
  }
91
  else {
92
    $output = theme('image', $variables);
93
  }
94
  return $output;
95
}
96

    
97
/**
98
 * Add messages to the page.
99
 */
100
function template_preprocess_media_dialog_page(&$variables) {
101
  $variables['messages'] = theme('status_messages');
102
}