views_merge_rows.install in Views Merge Rows 8.2
File
views_merge_rows.install
View source
<?php
declare (strict_types=1);
function views_merge_rows_install() {
$config = \Drupal::service('config.factory')
->getEditable('views.settings');
$display_extenders = $config
->get('display_extenders') ?: [];
$display_extenders[] = 'views_merge_rows';
$config
->set('display_extenders', $display_extenders);
$config
->save();
}
function views_merge_rows_uninstall() {
$config = \Drupal::service('config.factory')
->getEditable('views.settings');
$display_extenders = $config
->get('display_extenders') ?: [];
$key = array_search('views_merge_rows', $display_extenders);
if ($key !== FALSE) {
unset($display_extenders[$key]);
$config
->set('display_extenders', $display_extenders);
$config
->save();
}
}
function views_merge_rows_update_8200() {
$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']['use_grouping'])) {
unset($display['display_options']['use_grouping']);
$view
->set("display.{$display_name}", $display);
$save = TRUE;
}
}
if ($save) {
$view
->save();
}
}
}
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();
}
}
}