You are here

function social_activity_filter_update_8003 in Open Social 10.0.x

Same name and namespace in other branches
  1. 10.3.x modules/social_features/social_activity/modules/social_activity_filter/social_activity_filter.install \social_activity_filter_update_8003()
  2. 10.1.x modules/social_features/social_activity/modules/social_activity_filter/social_activity_filter.install \social_activity_filter_update_8003()
  3. 10.2.x modules/social_features/social_activity/modules/social_activity_filter/social_activity_filter.install \social_activity_filter_update_8003()

Update and set delta of referenced blocks for existing landing page items.

File

modules/social_features/social_activity/modules/social_activity_filter/social_activity_filter.install, line 98
Install, update and uninstall functions for social_activity_filter module.

Code

function social_activity_filter_update_8003() {
  $connection = Database::getConnection();
  $query = $connection
    ->select('paragraph__field_block_reference', 'pfbr');
  $query
    ->fields('pfbr', [
    'entity_id',
    'field_block_reference_settings',
  ]);
  $query
    ->condition('pfbr.bundle', 'block');
  $query
    ->join('paragraph__field_section_paragraph', 'pfsp', 'pfsp.field_section_paragraph_target_id = pfbr.entity_id');
  $query
    ->condition('pfsp.bundle', 'section');
  $query
    ->join('node__field_landing_page_section', 'nflps', 'nflps.field_landing_page_section_target_id = pfsp.entity_id');
  $query
    ->fields('nflps', [
    'delta',
  ]);
  $query
    ->condition('nflps.bundle', 'landing_page');
  $referenced_blocks = $query
    ->execute()
    ->fetchAll();
  foreach ($referenced_blocks as $referenced_block) {
    $settings = unserialize($referenced_block->field_block_reference_settings);
    $settings['delta'] = $referenced_block->delta;
    $connection
      ->update('paragraph__field_block_reference')
      ->fields([
      'field_block_reference_settings' => serialize($settings),
    ])
      ->condition('entity_id', $referenced_block->entity_id)
      ->condition('bundle', 'block')
      ->execute();
  }
}