function media_wysiwyg_format_form_view_mode in D7 Media 7.3
Same name and namespace in other branches
- 7.4 modules/media_wysiwyg/includes/media_wysiwyg.pages.inc \media_wysiwyg_format_form_view_mode()
- 7.2 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;
}