function simple_sitemap_views_update_8301 in Simple XML sitemap 4.x
Same name and namespace in other branches
- 8.3 modules/simple_sitemap_views/simple_sitemap_views.install \simple_sitemap_views_update_8301()
Update views display extender config.
File
- modules/
simple_sitemap_views/ simple_sitemap_views.install, line 76 - Install and uninstall hooks for the simple_sitemap_views module.
Code
function simple_sitemap_views_update_8301() {
$config_factory = \Drupal::configFactory();
$display_extender_name = 'simple_sitemap_display_extender';
// Find all views configs.
foreach ($config_factory
->listAll('views.view.') as $view_config_name) {
$view = $config_factory
->getEditable($view_config_name);
$changed = FALSE;
// Go through each display on each view.
$displays = $view
->get('display');
foreach ($displays as $display_name => $display) {
if (isset($display['display_options']['display_extenders'][$display_extender_name])) {
$options = $display['display_options']['display_extenders'][$display_extender_name];
if (!isset($options['variants']) && isset($options['variant'])) {
$variant = $options['variant'];
unset($options['variant']);
// Update display extender config.
$key = "display.{$display_name}.display_options.display_extenders.{$display_extender_name}";
$options = [
'variants' => [
$variant => $options,
],
];
$view
->set($key, $options);
$changed = TRUE;
}
}
}
if ($changed) {
$view
->save(TRUE);
}
}
}