You are here

function panopoly_media_entity_type_alter in Panopoly 8.2

Implements hook_entity_type_alter().

File

modules/panopoly/panopoly_media/panopoly_media.module, line 249
Hook implementations for Panopoly Media.

Code

function panopoly_media_entity_type_alter(array &$entity_types) {

  /** @var \Drupal\Core\Entity\EntityTypeInterface[] $entity_types */

  // Allows "operations" on file entities.
  if (!$entity_types['file']
    ->hasHandlerClass('list_builder')) {
    $entity_types['file']
      ->setListBuilderClass(EntityListBuilder::class);
  }

  // Provides a delete form.
  if (!$entity_types['file']
    ->hasHandlerClass('form', 'delete')) {
    $handlers = $entity_types['file']
      ->getHandlerClasses();
    $handlers['form']['delete'] = FileDeleteForm::class;
    $entity_types['file']
      ->setHandlerClass('form', $handlers['form']);
  }

  // Provides a delete form link template.
  if (!$entity_types['file']
    ->hasLinkTemplate('delete-form')) {
    $entity_types['file']
      ->setLinkTemplate('delete-form', '/file/{file}/delete');
  }

  // Provides routes.
  if (!$entity_types['file']
    ->hasHandlerClass('route_provider')) {
    $entity_types['file']
      ->setHandlerClass('route_provider', [
      'html' => FileRouteProvider::class,
    ]);
  }

  // Set access handler.
  $entity_types['file']
    ->setAccessClass(FileAccessControlHandler::class);
}