diff --git a/uw_custom_blocks.post_update.php b/uw_custom_blocks.post_update.php index a1d73fcb4996af98e7058eb14ed62069861b7012..a4375102279e6b863dcb4b794264a0fed1940a02 100644 --- a/uw_custom_blocks.post_update.php +++ b/uw_custom_blocks.post_update.php @@ -60,6 +60,7 @@ function _references_block_titles_updates_batch_start($count, &$context): void { $context['results']['nodes_updated'] = 0; $context['results']['revisions_processed'] = 0; $context['results']['revisions_updated'] = 0; + $context['results']['temp_storage_updated'] = 0; $context['message'] = t("Processing @count nodes and each node revisions.", ['@count' => $count]); } @@ -78,7 +79,8 @@ function _references_block_titles_updates_batch_start($count, &$context): void { * including the number of nodes and revisions processed and updated. */ function _references_block_titles_updates_batch_update($nid, &$context): void { - $node = \Drupal::entityTypeManager()->getStorage('node')->load($nid); + $node_storage = \Drupal::entityTypeManager()->getStorage('node'); + $node = $node_storage->load($nid); if ($node) { $node->setSyncing(TRUE); @@ -103,20 +105,16 @@ function _references_block_titles_updates_batch_update($nid, &$context): void { } if ($save_needed) { - // $node->save(); + $node->save(); $context['results']['nodes_updated']++; } $context['results']['nodes_processed']++; - $revisions = \Drupal::entityTypeManager() - ->getStorage('node') - ->revisionIds($node); + $revisions = $node_storage->revisionIds($node); foreach ($revisions as $revision) { - $revision = \Drupal::entityTypeManager() - ->getStorage('node') - ->loadRevision($revision); + $revision = $node_storage->loadRevision($revision); if ($revision) { $revision->setSyncing(TRUE); @@ -141,7 +139,7 @@ function _references_block_titles_updates_batch_update($nid, &$context): void { } if ($revision_save_needed) { - // $revision->save(); + $revision->save(); $context['results']['revisions_updated']++; } $context['results']['revisions_processed']++; @@ -160,6 +158,53 @@ function _references_block_titles_updates_batch_update($nid, &$context): void { function _references_block_titles_updates_batch_temp_storage(&$context) { // Make sure to load temp storage, and loop over sections there. $context['message'] = t('Processing temporary storage.'); + + // The DB connection. + $database = \Drupal::database(); + + // Query to get the layout builder from nodes. + $query = $database->select('key_value_expire', 'kv'); + $query->fields('kv'); + $query->condition('kv.collection', '%layout%', 'LIKE'); + $result = $query->execute(); + + // Step through the results and change out any sections. + foreach ($result as $record) { + $save_needed = FALSE; + + // Deserialize the value, which has the sections in it. + $value = unserialize($record->value); + + // Get the section storage from the serialized data. + $layout = $value->data['section_storage']; + + // Get out the sections. + foreach ($layout->getSections() as &$section) { + // Step through each of the components. + foreach ($section?->getComponents() as $component) { + if ($component?->getPluginId() == 'uw_cbl_publication_search') { + $configuration = $component->get('configuration'); + + if ($configuration['label'] == 'Publication reference search') { + $configuration['label'] = 'Reference search'; + $component->set('configuration', $configuration); + $save_needed = TRUE; + } + } + } + } + + if ($save_needed) { + $value->data['section_storage'] = $layout; + + $database->update('key_value_expire') + ->fields(['value' => serialize($value)]) + ->condition('name', $record->name) + ->execute(); + + $context['results']['temp_storage_updated']++; + } + } } /** @@ -170,7 +215,7 @@ function _references_block_titles_updates_batch_temp_storage(&$context) { * about nodes and revisions processed during the batch operation. */ function _references_block_titles_updates_batch_end(&$context) { - $context['message'] = t('Successfully updated @nodes_updated/@nodes_processed.', [ + $context['message'] = t('Successfully updated @nodes_updated/@nodes_processed. nodes', [ '@nodes_updated' => $context['results']['nodes_updated'], '@nodes_processed' => $context['results']['nodes_processed'], ]); @@ -178,4 +223,8 @@ function _references_block_titles_updates_batch_end(&$context) { '@revisions_updated' => $context['results']['revisions_updated'], '@revisions_processed' => $context['results']['revisions_processed'], ]); + + $context['message'] = t('Successfully updated @temp_storage_updated temporary storage.', [ + '@temp_storage_updated' => $context['results']['temp_storage_updated'], + ]); }