/** * Processes the views data for a language field. * * @param string $table * The table the language field is added to. * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition * The field definition. * @param array $views_field * The views field data. * @param string $field_column_name * The field column being processed. */ protected function processViewsDataForLanguage($table, FieldDefinitionInterface $field_definition, array &$views_field, $field_column_name) { // Apply special titles for the langcode field. if ($field_definition->getName() == $this->entityType->getKey('langcode')) { if ($table == $this->entityType->getDataTable() || $table == $this->entityType->getRevisionDataTable()) { $views_field['title'] = $this->t('Translation language'); } if ($table == $this->entityType->getBaseTable() || $table == $this->entityType->getRevisionTable()) { $views_field['title'] = $this->t('Original language'); } } }
/** * Gets the table of an entity type to be used as revision table in views. * * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type * The entity type. * * @return string * The revision base table. */ protected function getRevisionViewsTableForEntityType(EntityTypeInterface $entity_type) { return $entity_type->getRevisionDataTable() ?: $entity_type->getRevisionTable(); }
/** * 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(); }
/** * Updates views if revision support is removed * * @param \Drupal\views\Entity\View[] $all_views * All views. * @param \Drupal\Core\Entity\EntityTypeInterface $original * The origin entity type. */ protected function revisionRemoval($all_views, EntityTypeInterface $original) { $revision_base_table = $original->getRevisionTable(); $revision_data_table = $original->getRevisionDataTable(); foreach ($all_views as $view) { if (in_array($view->get('base_table'), [$revision_base_table, $revision_data_table])) { // Let's disable the views as we no longer support revisions. $view->setStatus(FALSE); } // For any kind of field, let's rely on the broken handler functionality. } }