123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- /**
- * @file
- * Install, update and uninstall functions for the block_content module.
- */
- use Drupal\Core\Field\BaseFieldDefinition;
- use Drupal\Core\StringTranslation\TranslatableMarkup;
- /**
- * Add 'revision_translation_affected' field to 'block_content' entities.
- */
- function block_content_update_8001() {
- // Install the definition that this field had in
- // \Drupal\block_content\Entity\BlockContent::baseFieldDefinitions()
- // at the time that this update function was written. If/when code is
- // deployed that changes that definition, the corresponding module must
- // implement an update function that invokes
- // \Drupal::entityDefinitionUpdateManager()->updateFieldStorageDefinition()
- // with the new definition.
- $storage_definition = BaseFieldDefinition::create('boolean')
- ->setLabel(t('Revision translation affected'))
- ->setDescription(t('Indicates if the last edit of a translation belongs to current revision.'))
- ->setReadOnly(TRUE)
- ->setRevisionable(TRUE)
- ->setTranslatable(TRUE);
- \Drupal::entityDefinitionUpdateManager()
- ->installFieldStorageDefinition('revision_translation_affected', 'block_content', 'block_content', $storage_definition);
- }
- /**
- * Generalizes the d6_block_content_type and d6_block_content_body_field
- * migrations.
- */
- function block_content_update_8002() {
- // Removed in issue #2569605. The Migrate and Migrate Drupal modules are
- // marked experimental and do not need to support the update path until they
- // are stable.
- // @see https://www.drupal.org/node/2569469
- }
- /**
- * Add 'revision_created' and 'revision_user' fields to 'block_content' entities.
- */
- function block_content_update_8003() {
- $revision_created = BaseFieldDefinition::create('created')
- ->setLabel(t('Revision create time'))
- ->setDescription(t('The time that the current revision was created.'))
- ->setRevisionable(TRUE);
- \Drupal::entityDefinitionUpdateManager()
- ->installFieldStorageDefinition('revision_created', 'block_content', 'block_content', $revision_created);
- $revision_user = BaseFieldDefinition::create('entity_reference')
- ->setLabel(t('Revision user'))
- ->setDescription(t('The user ID of the author of the current revision.'))
- ->setSetting('target_type', 'user')
- ->setRevisionable(TRUE);
- \Drupal::entityDefinitionUpdateManager()
- ->installFieldStorageDefinition('revision_user', 'block_content', 'block_content', $revision_user);
- }
- /**
- * Fix the block_content entity type to specify its revision data table.
- */
- function block_content_update_8300() {
- $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
- $entity_type = $definition_update_manager->getEntityType('block_content');
- $entity_type->set('revision_data_table', 'block_content_field_revision');
- $definition_update_manager->updateEntityType($entity_type);
- }
- /**
- * Add a publishing status field for block_content entities.
- */
- function block_content_update_8400() {
- $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
- // Add the published entity key to the block_content entity type.
- $entity_type = $definition_update_manager->getEntityType('block_content');
- $entity_keys = $entity_type->getKeys();
- $entity_keys['published'] = 'status';
- $entity_type->set('entity_keys', $entity_keys);
- $definition_update_manager->updateEntityType($entity_type);
- // Add the publishing status field to the block_content entity type.
- $status = BaseFieldDefinition::create('boolean')
- ->setLabel(new TranslatableMarkup('Publishing status'))
- ->setDescription(new TranslatableMarkup('A boolean indicating the published state.'))
- ->setRevisionable(TRUE)
- ->setTranslatable(TRUE)
- ->setDefaultValue(TRUE);
- $has_content_translation_status_field = $definition_update_manager->getFieldStorageDefinition('content_translation_status', 'block_content');
- if ($has_content_translation_status_field) {
- $status->setInitialValueFromField('content_translation_status', TRUE);
- }
- else {
- $status->setInitialValue(TRUE);
- }
- $definition_update_manager->installFieldStorageDefinition('status', 'block_content', 'block_content', $status);
- // Uninstall the 'content_translation_status' field if needed.
- $database = \Drupal::database();
- if ($has_content_translation_status_field) {
- // First we have to remove the field data.
- $database->update($entity_type->getDataTable())
- ->fields(['content_translation_status' => NULL])
- ->execute();
- // A site may have disabled revisionability for this entity type.
- if ($entity_type->isRevisionable()) {
- $database->update($entity_type->getRevisionDataTable())
- ->fields(['content_translation_status' => NULL])
- ->execute();
- }
- $content_translation_status = $definition_update_manager->getFieldStorageDefinition('content_translation_status', 'block_content');
- $definition_update_manager->uninstallFieldStorageDefinition($content_translation_status);
- }
- }
- /**
- * Add 'reusable' field to 'block_content' entities.
- */
- function block_content_update_8600() {
- $reusable = BaseFieldDefinition::create('boolean')
- ->setLabel(t('Reusable'))
- ->setDescription(t('A boolean indicating whether this block is reusable.'))
- ->setTranslatable(FALSE)
- ->setRevisionable(FALSE)
- ->setDefaultValue(TRUE)
- ->setInitialValue(TRUE);
- \Drupal::entityDefinitionUpdateManager()
- ->installFieldStorageDefinition('reusable', 'block_content', 'block_content', $reusable);
- }
|