Projet

Général

Profil

Révision 1e39edcb

Ajouté par Assos Assos il y a plus de 7 ans

Weekly update of contrib modules

Voir les différences:

drupal7/sites/all/modules/media/modules/media_wysiwyg_view_mode/media_wysiwyg_view_mode.module
1 1
<?php
2

  
3
/**
4
 * @file
5
 * Primarily Drupal hooks.
6
 */
7

  
8
/**
9
 * Implements hook_entity_info_alter().
10
 */
11
function media_wysiwyg_view_mode_entity_info_alter(&$entity_info) {
12
  $entity_info['file']['view modes'] += array(
13
    'wysiwyg' => array(
14
      'label' => t('WYSIWYG'),
15
      'custom settings' => TRUE,
16
    ),
17
  );
18
}
19

  
20
/**
21
 * Implements hook_media_wysiwyg_allowed_view_modes_alter().
2
/***
3
 * hook_help
22 4
 */
23
function media_wysiwyg_view_mode_media_wysiwyg_allowed_view_modes_alter(&$view_modes, &$file) {
24
  if (variable_get("media_wysiwyg_view_mode_{$file->type}_wysiwyg_restricted_view_modes_status")) {
25
    $restricted_view_modes = variable_get("media_wysiwyg_view_mode_{$file->type}_wysiwyg_restricted_view_modes", array());
26
    foreach ($restricted_view_modes as $restricted_view_mode) {
27
      if (array_key_exists($restricted_view_mode, $view_modes)) {
28
        unset($view_modes[$restricted_view_mode]);
29
      }
30
    }
31
  }
32
}
33

  
34
/**
35
 * Implements hook_entity_view_mode_alter().
36
 */
37
function media_wysiwyg_view_mode_entity_view_mode_alter(&$view_mode, $context) {
38
  if ($context['entity_type'] == 'file' && !empty($context['entity']->override['wysiwyg'])) {
39
    if (variable_get("media_wysiwyg_view_mode_{$context['entity']->type}_file_wysiwyg_view_mode_status")) {
40
      $view_mode = variable_get("media_wysiwyg_view_mode_{$context['entity']->type}_file_wysiwyg_view_mode", 'wysiwyg');
41
    }
42
  }
43
}
44

  
45
/**
46
 * Implements hook_form_FORM_ID_alter().
47
 */
48
function media_wysiwyg_view_mode_form_media_wysiwyg_format_form_alter(&$form, $form_state) {
49
  // Check to see if a view mode ("format") has already been specified for
50
  // this media item. First, check for a standard form-submitted value.
51
  if (!empty($form_state['values']['format'])) {
52
    $view_mode = $form_state['values']['format'];
53
  }
54
  // Second, check the request for a JSON-encoded value.
55
  elseif (isset($_GET['fields'])) {
56
    $query_fields = drupal_json_decode($_GET['fields']);
57
    if (isset($query_fields['format'])) {
58
      $view_mode = $query_fields['format'];
59
    }
60
  }
61
  // If we were unable to determine a view mode, or we found a view mode
62
  //  that does not exist in the list of format options presented on this
63
  //  form, use the default view mode.
64
  if (!isset($view_mode) || !array_key_exists($view_mode, $form['options']['format']['#options'])) {
65
    $view_mode = $form['options']['format']['#default_value'];
66
  }
67

  
68
  // Display an actual preview instead of media_get_thumbnail_preview().
69
  // @todo Should this code be merged up to media_wysiwyg_format_form?
70
  $form['preview']['#prefix'] = '<div id="preview">';
71
  $form['preview']['#suffix'] = '</div>';
72
  $form['preview']['#markup'] = $form_state['storage']['view_mode_previews'][$view_mode];
73

  
74
  // Change the preview when the user changes the format.
75
  $form['options']['format']['#ajax'] = array(
76
    'callback' => 'media_wysiwyg_view_mode_form_media_wysiwyg_format_form_preview',
77
    'wrapper' => 'preview',
78
  );
79
}
80

  
81
/**
82
 * AJAX callback to select the portion of the format form to be updated with a preview.
83
 *
84
 * @param array $form
85
 *   An associative array containing the structure of the form.
86
 * @param array $form_state
87
 *   An associative array containing the current state of the form.
88
 *
89
 * @return array
90
 *   The preview form item.
91
 */
92
function media_wysiwyg_view_mode_form_media_wysiwyg_format_form_preview($form, $form_state) {
93
  return $form['preview'];
94
}
95

  
96
/**
97
 * Implements hook_form_FORM_ID_alter().
98
 */
99
function media_wysiwyg_view_mode_form_file_entity_file_type_form_alter(&$form, $form_state) {
100
  $type = $form_state['build_info']['args'][0];
101
  $view_mode_options = media_wysiwyg_get_file_type_view_mode_options($type->type);
102

  
103
  $form['media_wysiwyg_view_mode'] = array(
104
    '#type' => 'fieldset',
105
    '#title' => t('Media WYSIWYG View Modes'),
106
    '#collapsible' => TRUE,
107
    '#collapsed' => TRUE,
108
    '#tree' => TRUE,
109
  );
110

  
111
  $form['media_wysiwyg_view_mode']["media_wysiwyg_view_mode_{$type->type}_wysiwyg_restricted_view_modes_status"] = array(
112
    '#type' => 'checkbox',
113
    '#title' => t('Restrict allowed view modes when embedding with the WYSIWYG', array('%type' => $type->label)),
114
    '#default_value' => variable_get("media_wysiwyg_view_mode_{$type->type}_wysiwyg_restricted_view_modes_status", FALSE),
115
  );
116
  $form['media_wysiwyg_view_mode']["media_wysiwyg_view_mode_{$type->type}_wysiwyg_restricted_view_modes"] = array(
117
    '#type' => 'checkboxes',
118
    '#title' => t('Select which view modes <em>cannot</em> be selected'),
119
    '#options' => $view_mode_options,
120
    '#default_value' => variable_get("media_wysiwyg_view_mode_{$type->type}_wysiwyg_restricted_view_modes", array()),
121
    '#states' => array(
122
      'visible' => array(
123
        ':input[name="media_wysiwyg_view_mode[media_wysiwyg_view_mode_' . $type->type . '_wysiwyg_restricted_view_modes_status]"]' => array('checked' => TRUE),
124
      ),
125
    ),
126
  );
127
  $form['media_wysiwyg_view_mode']["media_wysiwyg_view_mode_{$type->type}_file_wysiwyg_view_mode_status"] = array(
128
    '#type' => 'checkbox',
129
    '#title' => t('Use a specific view mode when the file is previewed in the WYSIWYG'),
130
    '#default_value' => variable_get("media_wysiwyg_view_mode_{$type->type}_file_wysiwyg_view_mode_status", 0),
131
  );
132
  $form['media_wysiwyg_view_mode']["media_wysiwyg_view_mode_{$type->type}_file_wysiwyg_view_mode"] = array(
133
    '#type' => 'select',
134
    '#title' => t('View mode to always use in the WYSIWYG'),
135
    '#options' => $view_mode_options,
136
    '#default_value' => variable_get("media_wysiwyg_view_mode_{$type->type}_file_wysiwyg_view_mode", 'wysiwyg'),
137
    '#states' => array(
138
      'visible' => array(
139
        ':input[name="media_wysiwyg_view_mode[media_wysiwyg_view_mode_' . $type->type . '_file_wysiwyg_view_mode_status]"]' => array('checked' => TRUE),
140
      ),
141
    ),
142
  );
143

  
144
  $form['#submit'][] = 'media_wysiwyg_view_mode_form_file_entity_file_type_form_submit';
145
}
5
function media_wysiwyg_view_mode_help($path, $arg) {
6
  switch ($path) {
7
    // Main module help for the block module
8
    case 'admin/help#media_wysiwyg_view_mode':
9
      return '<p>' . t('The code that was previously in this module was moved to media_wysiwyg however to uninstall this module this has to be here.') . '</p>';
146 10

  
147
function media_wysiwyg_view_mode_form_file_entity_file_type_form_submit($form, $form_state) {
148
  $values = $form_state['values']['media_wysiwyg_view_mode'];
149
  foreach ($values as $key => $value) {
150
    if (is_array($value)) {
151
      $value = array_filter($value);
152
    }
153
    variable_set($key, $value);
154 11
  }
155 12
}

Formats disponibles : Unified diff