/** * {@inheritdoc} */ public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) { parent::init($view, $display, $options); $this->entityTypeId = $this->definition['entity_type']; $this->entityType = $this->entityManager->getDefinition($this->entityTypeId); $this->base_table = $this->entityType->getDataTable() ?: $this->entityType->getBaseTable(); $this->base_field = $this->entityType->getKey('id'); }
/** * Detects whether any table name got renamed in an entity type update. * * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type * The new entity type. * @param \Drupal\Core\Entity\EntityTypeInterface $original * The origin entity type. * * @return bool * Returns TRUE if there have been changes. */ protected function hasSharedTableNameChanges(EntityTypeInterface $entity_type, EntityTypeInterface $original) { return $entity_type->getBaseTable() != $original->getBaseTable() || $entity_type->getDataTable() != $original->getDataTable() || $entity_type->getRevisionTable() != $original->getRevisionTable() || $entity_type->getRevisionDataTable() != $original->getRevisionDataTable(); }
/** * {@inheritdoc} */ public function onEntityTypeDelete(EntityTypeInterface $entity_type) { $tables = [$entity_type->getBaseTable(), $entity_type->getDataTable(), $entity_type->getRevisionTable(), $entity_type->getRevisionDataTable()]; $all_views = $this->entityManager->getStorage('view')->loadMultiple(NULL); /** @var \Drupal\views\Entity\View $view */ foreach ($all_views as $id => $view) { // First check just the base table. if (in_array($view->get('base_table'), $tables)) { $view->disable(); $view->save(); } } }
/** * @covers ::getViewsData */ public function testGetViewsDataWithEntityOperations() { $this->baseEntityType->setListBuilderClass('\\Drupal\\Core\\Entity\\EntityListBuilder'); $data = $this->viewsData->getViewsData(); $this->assertSame('entity_operations', $data[$this->baseEntityType->getBaseTable()]['operations']['field']['id']); }
/** * Gets the table of an entity type to be used as base table in views. * * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type * The entity type. * * @return string * The name of the base table in views. */ protected function getViewsTableForEntityType(EntityTypeInterface $entity_type) { return $entity_type->getDataTable() ?: $entity_type->getBaseTable(); }