You are here

function views_merge_rows_update_8201 in Views Merge Rows 8.2

Move config from display handler options to display extender.

File

./views_merge_rows.install, line 59

Code

function views_merge_rows_update_8201() {
  $config_factory = \Drupal::configFactory();
  foreach ($config_factory
    ->listAll('views.view.') as $view_config_name) {
    $view = $config_factory
      ->getEditable($view_config_name);
    $save = FALSE;
    foreach ($view
      ->get('display') as $display_name => $display) {
      if (isset($display['display_options']['merge_rows']) || isset($display['display_options']['field_config'])) {
        $merge_rows = $display['display_options']['merge_rows'] ?? FALSE;
        $field_config = $display['display_options']['field_config'] ?? [];
        $display['display_options']['display_extenders']['views_merge_rows'] = [
          'merge_rows' => $merge_rows,
          'field_config' => $field_config,
        ];
        unset($display['display_options']['merge_rows']);
        unset($display['display_options']['field_config']);
        $view
          ->set("display.{$display_name}", $display);
        $save = TRUE;
      }
    }
    if ($save) {
      $view
        ->save();
    }
  }
}