You are here

function panelizer_entity_type_alter in Panelizer 8.3

Same name and namespace in other branches
  1. 8.5 panelizer.module \panelizer_entity_type_alter()
  2. 8.4 panelizer.module \panelizer_entity_type_alter()

Implements hook_entity_type_alter().

File

./panelizer.module, line 39
Hook implementations for the Panelizer module.

Code

function panelizer_entity_type_alter(array &$entity_types) {

  /** @var \Drupal\panelizer\Plugin\PanelizerEntityManager $panelizer_manager */
  $panelizer_manager = \Drupal::service('plugin.manager.panelizer_entity');

  // Replace the entity view builder on any entity where we have a Panelizer
  // entity plugin and the entity itself has a view builder.
  foreach ($panelizer_manager
    ->getDefinitions() as $entity_type_id => $panelizer_info) {
    if (isset($entity_types[$entity_type_id]) && $entity_types[$entity_type_id]
      ->hasHandlerClass('view_builder')) {
      $entity_types[$entity_type_id]
        ->setHandlerClass('fallback_view_builder', $entity_types[$entity_type_id]
        ->getHandlerClass('view_builder'));
      $entity_types[$entity_type_id]
        ->setHandlerClass('view_builder', '\\Drupal\\panelizer\\PanelizerEntityViewBuilder');
    }
  }
}