media_entity_file_redirect-8.x-1.0-beta1/media_entity_file_redirect.module

media_entity_file_redirect.module
<?php

/**
 * @file
 * Media Entity File Redirect module.
 */

use Drupal\Core\Form\FormStateInterface;
use Drupal\media\Plugin\media\Source\File;
use Drupal\media\MediaTypeInterface;

/**
 * Implements hook_form_FORM_ID_alter().
 *
 * Adds crop configuration fields to media form.
 */
function media_entity_file_redirect_form_media_type_edit_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
  /** @var \Drupal\media\Entity\MediaType $entityType */
  $entityType = $form_state->getFormObject()->getEntity();
  $mediaSource = $entityType->getSource();
  if ($mediaSource instanceof File) {
    $form['#entity_builders'][] = '_media_entity_file_redirect_entity_builder';
    $form['source_dependent']['media_entity_file_redirect'] = [
      '#type' => 'checkbox',
      '#title' => t('Expose access to file via path /document/[id]'),
      '#description' => t('When enabled, requests to /document/[id] will redirect to the actual file URL associated with this media bundle.'),
      '#default_value' => $entityType->getThirdPartySetting('media_entity_file_redirect', 'enabled'),
      '#weight' => -1,
    ];
  }
}

/**
 * Entity builder for saving our third party settings.
 */
function _media_entity_file_redirect_entity_builder($entity_type, MediaTypeInterface $bundle, array &$form, FormStateInterface $form_state) {
  $bundle->setThirdPartySetting('media_entity_file_redirect', 'enabled', $form_state->getValue('media_entity_file_redirect'));
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc