field_test.entity.inc 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. /**
  3. * @file
  4. * Defines an entity type.
  5. */
  6. /**
  7. * Implements hook_entity_type_alter().
  8. */
  9. function field_test_entity_type_alter(array &$entity_types) {
  10. /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
  11. foreach (field_test_entity_info_translatable() as $entity_type => $translatable) {
  12. $entity_types[$entity_type]->set('translatable', $translatable);
  13. }
  14. }
  15. /**
  16. * Helper function to enable entity translations.
  17. */
  18. function field_test_entity_info_translatable($entity_type_id = NULL, $translatable = NULL) {
  19. $stored_value = &drupal_static(__FUNCTION__, []);
  20. if (isset($entity_type_id)) {
  21. $entity_manager = \Drupal::entityManager();
  22. $original = $entity_manager->getDefinition($entity_type_id);
  23. $stored_value[$entity_type_id] = $translatable;
  24. if ($translatable != $original->isTranslatable()) {
  25. $entity_manager->clearCachedDefinitions();
  26. $entity_type = $entity_manager->getDefinition($entity_type_id);
  27. $entity_manager->onEntityTypeUpdate($entity_type, $original);
  28. }
  29. }
  30. return $stored_value;
  31. }