diff --git a/paragraphs.install b/paragraphs.install index 24dc836..29694d7 100644 --- a/paragraphs.install +++ b/paragraphs.install @@ -192,3 +192,28 @@ function paragraphs_update_8010() { \Drupal::entityDefinitionUpdateManager() ->installFieldStorageDefinition('behavior_settings', 'paragraph', 'paragraph', $storage_definition); } + +/** + * Make the behavior plugins field of Paragraphs revisionable. + */ +function paragraphs_update_8011() { + $spec = [ + 'type' => 'text', + 'description' => "The behavior plugin settings revisionable data.", + 'initial' => serialize([]), + ]; + $schema = \Drupal::database()->schema(); + $schema->addField('paragraphs_item_revision_field_data', 'behavior_settings', $spec); + \Drupal::database()->update('paragraphs_item_field_data') + ->fields(['behavior_settings' => NULL]) + ->execute(); + + $storage_definitions = \Drupal::service('entity.last_installed_schema.repository')->getLastInstalledFieldStorageDefinitions('paragraph'); + $storage_definitions['behavior_settings']->setRevisionable(TRUE); + \Drupal::service('entity.last_installed_schema.repository')->setLastInstalledFieldStorageDefinitions('paragraph', $storage_definitions); + + // Update the stored field schema. + $field_schema = \Drupal::keyValue('entity.storage_schema.sql')->get('paragraph.field_schema_data.behavior_settings'); + $field_schema['paragraphs_item_revision_field_data'] = $field_schema['paragraphs_item_field_data']; + \Drupal::keyValue('entity.storage_schema.sql')->set('paragraph.field_schema_data.behavior_settings', $field_schema); +} diff --git a/src/Entity/Paragraph.php b/src/Entity/Paragraph.php index 8d280d8..15c7ed0 100644 --- a/src/Entity/Paragraph.php +++ b/src/Entity/Paragraph.php @@ -392,7 +392,8 @@ class Paragraph extends ContentEntityBase implements ParagraphInterface, EntityN $fields['behavior_settings'] = BaseFieldDefinition::create('string_long') ->setLabel(t('Behavior settings')) - ->setDescription(t('The behavior plugin settings')); + ->setDescription(t('The behavior plugin settings')) + ->setRevisionable(TRUE); return $fields; }