You are here

function media_wysiwyg_form_file_entity_file_type_form_alter in D7 Media 7.4

Same name and namespace in other branches
  1. 7.2 modules/media_wysiwyg/media_wysiwyg.module \media_wysiwyg_form_file_entity_file_type_form_alter()
  2. 7.3 modules/media_wysiwyg/media_wysiwyg.module \media_wysiwyg_form_file_entity_file_type_form_alter()

Implements hook_form_FORM_ID_alter().

Add select when editing file types to set wysiwyg view mode.

File

modules/media_wysiwyg/media_wysiwyg.module, line 674
Primarily Drupal hooks.

Code

function media_wysiwyg_form_file_entity_file_type_form_alter(&$form, &$form_state) {

  // #2609244 Keep media from trying to alter the File add form just edit.
  if (empty($form_state['build_info']['args'][0])) {
    return;
  }
  $options = array();

  // Add an option allowing users not to use a view mode.
  $options['none'] = t('None');

  // Add the default view mode by default.
  $options['default'] = t('Default');
  $entity_info = entity_get_info('file');
  foreach ($entity_info['view modes'] as $view_mode => $view_mode_info) {
    $options[$view_mode] = check_plain($view_mode_info['label']);
  }
  $file_type = $form['#file_type']->type;
  $view_mode = db_query('SELECT view_mode FROM {media_view_mode_wysiwyg} WHERE type = :type', array(
    ':type' => $file_type,
  ))
    ->fetchField();
  $view_mode = empty($view_mode) ? 'none' : $view_mode;
  $form['file_wysiwyg_view_mode'] = array(
    '#type' => 'select',
    '#title' => t('WYSIWYG view mode'),
    '#options' => $options,
    '#default_value' => $view_mode,
    '#description' => t('View mode to be used when displaying files inside of the WYSIWYG editor.'),
  );

  // Move submit after our select box. There might be a better way to do this.
  $form['submit']['#weight'] = 1;
  array_unshift($form['#submit'], 'media_wysiwyg_form_file_entity_file_type_form_alter_submit');
}