You are here

function varbase_media_form_alter in Varbase Media 9.0.x

Same name and namespace in other branches
  1. 8.7 varbase_media.module \varbase_media_form_alter()
  2. 8.5 varbase_media.module \varbase_media_form_alter()
  3. 8.6 varbase_media.module \varbase_media_form_alter()

Implements hook_form_alter().

File

./varbase_media.module, line 506
Contains varbase_media.module.

Code

function varbase_media_form_alter(&$form, &$form_state, $form_id) {
  if ($form_state
    ->getFormObject() instanceof EntityFormInterface) {
    $entity_type = $form_state
      ->getFormObject()
      ->getEntity()
      ->getEntityTypeId();

    // Only for media entity type.
    if ($entity_type == 'media') {

      // No revision information or revision log message.
      if (isset($form['revision_information'])) {
        $form['revision_information']['#disabled'] = TRUE;
        $form['revision_information']['#attributes']['style'][] = 'display:none;';
        $form['revision_information']['#prefix'] = '<div style="display: none;">';
        $form['revision_information']['#suffix'] = '</div>';
      }

      // Hide revistion.
      if (isset($form['revision'])) {
        $form['revision']['#default_value'] = TRUE;
        $form['revision']['#disabled'] = TRUE;
        $form['revision']['#attributes']['style'][] = 'display: none;';
      }

      // Hide revistion log message.
      if (isset($form['revision_log_message'])) {
        $form['revision_log_message']['#disabled'] = TRUE;
        $form['revision_log_message']['#attributes']['style'][] = 'display: none;';
      }
    }
  }
  if ($form_id == 'entity_browser_image_browser_form' || $form_id == 'entity_browser_media_browser_form' || $form_id == 'entity_browser_editor_media_browser_form') {
    $form['#attached']['library'][] = 'varbase_media/auto_fill_media_data';
  }
  if ($form_id === "entity_browser_widgets_config_form") {

    // Attach the varbase media common library.
    $form['#attached']['library'][] = 'varbase_media/common';

    // Add the Varbase Media Blazy Blurry behaviour.
    $use_blazy_blurry = \Drupal::config('varbase_media.settings')
      ->get('use_blazy_blurry');
    if (isset($use_blazy_blurry) && $use_blazy_blurry === TRUE) {
      $form['#attached']['library'][] = 'varbase_media/blazy_blurry';
    }
    if (!\Drupal::currentUser()
      ->isAnonymous()) {

      // Attached the varbase media common logged in users library.
      $form['#attached']['library'][] = 'varbase_media/common_logged';
    }
  }
  if ($form_id === 'editor_media_dialog') {
    if (isset($form_state
      ->getUserInput()['editor_object'])) {
      $editor_object = $form_state
        ->getUserInput()['editor_object'];
      $media_embed_element = $editor_object['attributes'];
      if (isset($media_embed_element['data-entity-type']) && $media_embed_element['data-entity-type'] == 'media') {
        $media = \Drupal::service('entity.repository')
          ->loadEntityByUuid('media', $media_embed_element['data-entity-uuid']);
        if (isset($media)) {
          $media_type = $media
            ->bundle();
          switch ($media_type) {
            case 'image':
              if (isset($form['alt'])) {
                $form['alt']['#required'] = TRUE;
                $field_definition = $media
                  ->getSource()
                  ->getSourceFieldDefinition($media->bundle->entity);
                $item_class = $field_definition
                  ->getItemDefinition()
                  ->getClass();
                if (is_a($item_class, ImageItem::class, TRUE)) {
                  $image_field_name = $field_definition
                    ->getName();

                  // We'll want the alt text from the same language as the host.
                  if (!empty($editor_object['hostEntityLangcode']) && $media
                    ->hasTranslation($editor_object['hostEntityLangcode'])) {
                    $media = $media
                      ->getTranslation($editor_object['hostEntityLangcode']);
                  }
                  $alt = isset($media_embed_element['alt']) ? $media_embed_element['alt'] : $media->{$image_field_name}->alt;
                  $form['alt']['#default_value'] = $alt;
                  $form['alt']['#placeholder'] = $media->{$image_field_name}->alt;
                }
              }
              break;
            case 'audio':
            case 'file':
              if (isset($form['view_mode'])) {
                $form['view_mode']['#access'] = FALSE;
              }
              break;
            case 'video':
            case 'remote_video':
              if (isset($form['caption'])) {
                $form['caption']['#access'] = FALSE;
                $form['caption']['#default_value'] = FALSE;
              }
              break;
          }
        }
      }
    }
  }
  if ($form_id === 'media_bulk_upload_form') {
    $form['#submit'][] = '_varbase_media_bulk_upload_form_submit_handler';
  }
}