You are here

function preview_link_entity_type_alter in Preview Link 2.0.x

Same name and namespace in other branches
  1. 8 preview_link.module \preview_link_entity_type_alter()
  2. 2.x preview_link.module \preview_link_entity_type_alter()

Implements hook_entity_type_alter().

File

./preview_link.module, line 22
Module file.

Code

function preview_link_entity_type_alter(array &$entity_types) : void {
  $supported_entity_types = array_filter($entity_types, [
    PreviewLinkUtility::class,
    'isEntityTypeSupported',
  ]);

  /** @var \Drupal\Core\Entity\ContentEntityType $type */
  foreach ($supported_entity_types as $type) {
    $providers = $type
      ->getRouteProviderClasses() ?: [];
    if (empty($providers['preview_link'])) {
      $providers['preview_link'] = PreviewLinkRouteProvider::class;
      $type
        ->setHandlerClass('route_provider', $providers);
    }
    if (!$type
      ->hasLinkTemplate('preview-link-generate')) {
      $type
        ->setLinkTemplate('preview-link-generate', $type
        ->getLinkTemplate('canonical') . '/generate-preview-link');
    }
  }
}