You are here

function media_directories_ui_field_widget_entity_browser_entity_reference_form_alter in Media Directories 2.x

Same name and namespace in other branches
  1. 8 modules/media_directories_ui/media_directories_ui.module \media_directories_ui_field_widget_entity_browser_entity_reference_form_alter()

Implements hook_field_widget_WIDGET_TYPE_form_alter().

File

modules/media_directories_ui/media_directories_ui.module, line 270
Main module file.

Code

function media_directories_ui_field_widget_entity_browser_entity_reference_form_alter(&$element, FormStateInterface $form_state, $context) {
  if (isset($element['entity_browser']) && $element['entity_browser']['#entity_browser'] === 'media_directories_modal') {

    /** @var \Drupal\Core\Field\EntityReferenceFieldItemList $items */
    $items = $context['items'];
    $handler_settings = $items
      ->getSetting('handler_settings');
    $target_bundles = $handler_settings['target_bundles'];

    // Add bundle validation constraint to entity browser.
    $element['entity_browser']['#entity_browser_validators']['target_bundles'] = [
      'bundle' => $target_bundles,
    ];
    $current_items = $element['current']['items'];
    $cardinality = $element['entity_browser']['#cardinality'];
    $element['entity_browser']['#widget_context']['remaining'] = $cardinality - count($current_items);
  }
}