function google_tag_update_8101 in GoogleTagManager 8
Convert config item to separate module settings and container config items.
File
- ./
google_tag.install, line 136 - Provides install, update, and uninstall functions.
Code
function google_tag_update_8101(&$sandbox) {
$data = \Drupal::config('google_tag.settings')
->get();
if (!empty($data['_default_container'])) {
// Config appears to be updated; do nothing.
return t('Config appears to be updated; no changes made');
}
// Create a container configuration item.
$container_config = \Drupal::service('config.factory')
->getEditable('google_tag.container.primary');
if (!empty($container_config
->get())) {
// Config appears to be updated; do nothing.
return t('Config appears to be updated; no changes made');
}
$keys = array_flip([
'uri',
'compact_snippet',
'include_file',
'rebuild_snippets',
'debug_output',
'_core',
]);
$data = array_diff_key($data, $keys);
$container_data = [
'status' => TRUE,
'id' => 'primary',
'label' => 'Primary',
'weight' => 0,
] + $data;
$container_config
->setData($container_data)
->save();
// Update the module configuration item.
$module_config = \Drupal::service('config.factory')
->getEditable('google_tag.settings');
$module_data = $module_config
->get();
unset($keys['_core']);
$data['container_id'] = '';
$module_data = array_intersect_key($module_data, $keys);
$module_data = [
'uri' => 'public://google_tag',
] + $module_data + [
'_default_container' => $data,
];
$module_config
->setData($module_data)
->save();
return t('Converted config item to separate settings and container config items');
}