diff --git a/includes/media.admin.inc b/includes/media.admin.inc index 238f98c..de0a422 100644 --- a/includes/media.admin.inc +++ b/includes/media.admin.inc @@ -296,6 +296,22 @@ function media_admin_config_browser($form, &$form_state) { '#description' => t('File extensions which are accepted in the media browser. Use spaces to separate (e.g. "jpg gif pdf doc").
Note that this can be overriden on a per-field basis when creating multimedia asset fields and files of certain extensions cannot be embedded at this time.'), ); + // If the WYSIWYG module is enabled, add additional configs. + if (module_exists('wysiwyg')) { + $plugins = media_get_browser_plugin_info(); + $form[media_variable_name('wysiwyg_browser_plugins')] = array( + '#type' => 'checkboxes', + '#title' => t('Enabled browser plugins in WYSIWYG'), + '#options' => array(), + '#required' => TRUE, + '#default_value' => media_variable_get('wysiwyg_browser_plugins'), + '#description' => t('If no plugins are selected, they will all be available.'), + ); + foreach ($plugins as $key => $plugin) { + $form[media_variable_name('wysiwyg_browser_plugins')]['#options'][$key] = !empty($plugin['title']) ? $plugin['title'] : $key; + } + } + $form['#submit'][] = 'media_admin_config_browser_pre_submit'; return system_settings_form($form); } @@ -305,4 +321,8 @@ function media_admin_config_browser_pre_submit(&$form, &$form_state) { media_variable_del('dialog_theme'); unset($form_state['values'][media_variable_name('dialog_theme')]); } + if (!$form_state['values'][media_variable_name('wysiwyg_browser_plugins')]) { + media_variable_del('wysiwyg_browser_plugins'); + unset($form_state['values'][media_variable_name('wysiwyg_browser_plugins')]); + } } diff --git a/includes/media.variables.inc b/includes/media.variables.inc index 5f73d4e..5507ed3 100644 --- a/includes/media.variables.inc +++ b/includes/media.variables.inc @@ -122,7 +122,9 @@ function media_variable_default($name = NULL) { 'wysiwyg_allowed_types' => array('audio', 'image', 'video'), // Attributes which can be modified via the wysiwyg and persist. 'wysiwyg_allowed_attributes' => array('height', 'width', 'hspace', 'vspace', 'border', 'align', 'style', 'alt', 'title', 'class', 'id'), - + // WYSIWYG browser plugins in WYSIWYG config page + 'wysiwyg_browser_plugins' => array('upload', 'library', 'media_internet', 'media_default--media_browser_1'), + // Name of the theme to use in media popup dialogs, defaults to admin_theme 'dialog_theme' => '', // @TODO: Make a configuration form with this. diff --git a/wysiwyg_plugins/media.inc b/wysiwyg_plugins/media.inc index 34db1a8..c160304 100644 --- a/wysiwyg_plugins/media.inc +++ b/wysiwyg_plugins/media.inc @@ -29,6 +29,7 @@ function media_media_plugin() { 'css path' => NULL, 'settings' => array( 'global' => array( + 'enabledPlugins' => media_variable_get('wysiwyg_browser_plugins'), 'types' => media_variable_get('wysiwyg_allowed_types'), 'id' => 'media_wysiwyg', ),