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',
),