function taxonomy_update_8503 in Drupal 8
Update views to use {taxonomy_term__parent} in relationships.
File
- core/
modules/ taxonomy/ taxonomy.install, line 138 - Install, update and uninstall functions for the taxonomy module.
Code
function taxonomy_update_8503() {
$config_factory = \Drupal::configFactory();
foreach ($config_factory
->listAll('views.view.') as $id) {
$view = $config_factory
->getEditable($id);
foreach (array_keys($view
->get('display')) as $display_id) {
$changed = FALSE;
foreach ([
'relationships',
'filters',
'arguments',
] as $handler_type) {
$base_path = "display.{$display_id}.display_options.{$handler_type}";
$handlers = $view
->get($base_path);
if (!$handlers) {
continue;
}
foreach ($handlers as $handler_key => $handler_config) {
$table_path = "{$base_path}.{$handler_key}.table";
$field_path = "{$base_path}.{$handler_key}.field";
$table = $view
->get($table_path);
$field = $view
->get($field_path);
if ($table && $table === 'taxonomy_term_hierarchy' && ($field && $field === 'parent')) {
$view
->set($table_path, 'taxonomy_term__parent');
$view
->set($field_path, 'parent_target_id');
$changed = TRUE;
}
}
}
if ($changed) {
$view
->save(TRUE);
}
}
}
}