You are here

function media_wysiwyg_format_form_view_mode in D7 Media 7.2

Same name and namespace in other branches
  1. 7.4 modules/media_wysiwyg/includes/media_wysiwyg.pages.inc \media_wysiwyg_format_form_view_mode()
  2. 7.3 modules/media_wysiwyg/includes/media_wysiwyg.pages.inc \media_wysiwyg_format_form_view_mode()

Add ajax preview when selecting view mode in wysiwyg editor.

1 call to media_wysiwyg_format_form_view_mode()
media_wysiwyg_format_form in modules/media_wysiwyg/includes/media_wysiwyg.pages.inc
Form callback used when embedding media.

File

modules/media_wysiwyg/includes/media_wysiwyg.pages.inc, line 159
Common pages for the Media WYSIWYG module.

Code

function media_wysiwyg_format_form_view_mode(&$form, $form_state, $file) {

  // Check to see if a view mode ("format") has already been specified for
  // this media item. First, check for a standard form-submitted value.
  if (!empty($form_state['values']['format'])) {
    $view_mode = $form_state['values']['format'];
  }
  elseif (isset($_GET['fields'])) {
    $query_fields = drupal_json_decode($_GET['fields']);
    if (isset($query_fields['format'])) {
      $view_mode = $query_fields['format'];
    }
  }

  // If we were unable to determine a view mode, or we found a view mode
  // that does not exist in the list of format options presented on this
  // form, use the default view mode.
  if (!isset($view_mode) || !array_key_exists($view_mode, $form['options']['format']['#options'])) {
    $view_mode = variable_get('media_wysiwyg_wysiwyg_default_view_mode', 'full');
  }
  $link_options = array(
    'attributes' => array(
      'class' => 'button',
      'title' => t('Use for replace fox or edit file fields.'),
    ),
    'query' => drupal_get_destination(),
  );
  if (!empty($_GET['render'])) {
    $link_options['query']['render'] = $_GET['render'];
  }
  $form['preview'] = array();
  $form['preview']['#prefix'] = '<div class="media-preview-group"><div class="media-item"><div class="media-thumbnail">';
  $form['preview']['#suffix'] = '</div><div class="label-wrapper"><label class="media-filename">' . check_plain($file->filename) . '</label></div></div><div class="edit-file-link">' . l(t('Edit file'), 'file/' . $file->fid . '/edit', $link_options) . '</div></div>';
  $form['preview']['thumbnail'] = file_view_file($file, $view_mode);
  $form['preview']['thumbnail']['#prefix'] = '<div id="media-preview">';
  $form['preview']['thumbnail']['#suffix'] = '</div>';
  if (!isset($form['options']['format']['#default_value'])) {
    $form['options']['format']['#default_value'] = $view_mode;
  }
  $form['options']['format']['#ajax'] = array(
    'callback' => 'media_wysiwyg_format_form_preview',
    'wrapper' => 'media-preview',
  );
  $wysiwyg_view_mode = db_query('SELECT view_mode FROM {media_view_mode_wysiwyg} WHERE type = :type', array(
    ':type' => $file->type,
  ))
    ->fetchField();
  $view_modes = media_wysiwyg_get_wysiwyg_allowed_view_modes($file);
  $formats = $options = array();
  foreach ($view_modes as $view_mode => $view_mode_info) {
    $options[$view_mode] = $view_mode_info['label'];
    if (!empty($wysiwyg_view_mode)) {
      $element = media_wysiwyg_get_file_without_label($file, $wysiwyg_view_mode, array(
        'wysiwyg' => TRUE,
      ));
    }
    else {
      $element = media_wysiwyg_get_file_without_label($file, $view_mode, array(
        'wysiwyg' => TRUE,
      ));
    }
    $formats[$view_mode] = drupal_render($element);
  }
  $form['#formats'] = $formats;
  $form['options']['format']['#options'] = $options;
}