function media_directories_ui_form_media_directories_config_form_alter in Media Directories 2.x
Same name and namespace in other branches
- 8 modules/media_directories_ui/media_directories_ui.module \media_directories_ui_form_media_directories_config_form_alter()
Implements hook_form_FORM_ID_alter().
Adding settings to the media_directories config form here.
File
- modules/
media_directories_ui/ media_directories_ui.module, line 363 - Main module file.
Code
function media_directories_ui_form_media_directories_config_form_alter(&$form, FormStateInterface $form_state, $form_id) {
$config = \Drupal::config('media_directories_ui.settings');
$combined_upload_enabled = $config
->get('enable_combined_upload');
$form['media_directories_ui'] = [
'#type' => 'details',
'#title' => t('Media browser UI'),
'#description' => t('Change media browser UI settings.'),
'#collapsible' => TRUE,
'#open' => TRUE,
'#tree' => TRUE,
];
$form['media_directories_ui']['quick_edit_form_mode'] = [
'#type' => 'fieldset',
'#title' => t('Quick Edit Form Mode'),
'#description' => t('The media form mode <strong>media_library</strong> is used to display media in the quick edit dialog. You can edit the form display <a href=":url">in the media types field UI</a>. <em>Be aware that the media\'s source field will always be hidden!</em>', [
':url' => Url::fromRoute('entity.media_type.collection')
->toString(),
]),
];
$form['media_directories_ui']['hide_media_library_media_tab'] = [
'#type' => 'checkbox',
'#title' => t('Hide Media tab'),
'#description' => t('If checked, the <em>Media</em> tab will be hidden.'),
'#default_value' => $config
->get('hide_media_library_media_tab'),
];
$form['media_directories_ui']['hide_media_library_files_tab'] = [
'#type' => 'checkbox',
'#title' => t('Hide Files tab'),
'#description' => t('If checked, the <em>Files</em> tab will be hidden.'),
'#default_value' => $config
->get('hide_media_library_files_tab'),
];
if (\Drupal::service('module_handler')
->moduleExists('admin_toolbar_tools')) {
$form['media_directories_ui']['hide_admin_toolbar_links'] = [
'#type' => 'checkbox',
'#title' => t('Hide admin_toolbar_tools links'),
'#description' => t("If checked, the <em>Add Media</em> menu links of admin_toolbar_tools will be hidden and also it's <em>Media</em> and <em>Files</em> links depending on the tab settings."),
'#default_value' => $config
->get('hide_admin_toolbar_links'),
];
}
/** @var \Drupal\media\MediaTypeInterface[] $media_types */
$media_types = \Drupal::entityTypeManager()
->getStorage('media_type')
->loadMultiple();
$options = [];
foreach ($media_types as $media_type) {
$source_field_allowed_types = $media_type
->getSource()
->getPluginDefinition()['allowed_field_types'];
$valid_field_types = [
'file',
'image',
];
if (array_intersect($valid_field_types, $source_field_allowed_types)) {
$options[$media_type
->id()] = $media_type
->label();
}
}
$form['media_directories_ui']['combined_upload'] = [
'#type' => 'details',
'#title' => t('Combined upload'),
'#description' => t("Allows uploading files through one upload field. A media type is identified by it's file extension(s)!"),
'#collapsible' => TRUE,
'#open' => $combined_upload_enabled,
];
$form['media_directories_ui']['combined_upload']['enable_combined_upload'] = [
'#type' => 'checkbox',
'#title' => t('Enable combined upload'),
'#description' => t('Enables simplified upload form, where user can upload different file types through one upload field.'),
'#default_value' => $config
->get('enable_combined_upload'),
];
$form['media_directories_ui']['combined_upload']['combined_upload_media_types'] = [
'#type' => 'checkboxes',
'#title' => t('Enabled Media types'),
'#description' => t('Select media types to use in combined upload (you need to select at least one). This will work only for media types that have upload field.'),
'#options' => $options,
'#default_value' => $config
->get('combined_upload_media_types') != NULL ? $config
->get('combined_upload_media_types') : [],
];
array_unshift($form['#submit'], 'media_directories_ui_config_form_submit');
}