diff --git a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php index d4c392c..e5adf3f 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php @@ -9,6 +9,7 @@ use Drupal\Core\Entity\EntityManager; use Drupal\Core\Entity\Field\FieldTypePluginManager; +use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\field_ui\OverviewBase; use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\field\Plugin\Core\Entity\Field; @@ -19,6 +20,36 @@ class FieldOverview extends OverviewBase { /** + * The module handler service. + * + * @var \Drupal\Core\Extension\ModuleHandlerInterface + */ + protected $moduleHandler; + + /** + * Constructs a new field overview. + * + * @param \Drupal\Core\Entity\EntityManager $entity_manager + * The entity manager. + * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler + * The module handler to invoke hooks on. + */ + public function __construct(EntityManager $entity_manager, ModuleHandlerInterface $module_handler) { + parent::__construct($entity_manager); + $this->moduleHandler = $module_handler; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('plugin.manager.entity'), + $container->get('module_handler') + ); + } + + /** * The field type manager. * * @var \Drupal\Core\Entity\Field\FieldTypePluginManager @@ -142,6 +173,8 @@ public function buildForm(array $form, array &$form_state, $entity_type = NULL, 'href' => "$admin_field_path/delete", 'attributes' => array('title' => t('Delete instance.')), ); + // Allow altering the operations on this entity listing. + $this->moduleHandler->alter('entity_operation', $links, $instance); $table[$name]['operations']['data'] = array( '#type' => 'operations', '#links' => $links,