etracker-8.x-3.x-dev/etracker.install
etracker.install
<?php /** * @file * Requirements and update functions for the etracker module. */ use Drupal\Core\Config\FileStorage; /** * New addition. * * Set default config for new configuration keys 'event_tracking' and * 'etracker_script_settings'. */ function etracker_update_8101(): void { $source = new FileStorage(__DIR__ . '/config/install'); $newConfig = $source->read('etracker.settings'); $config_factory = \Drupal::configFactory(); $config = $config_factory->getEditable('etracker.settings'); // Init 'event_tracking' defaults. $config->set('event_tracking', $newConfig['event_tracking']); // init/update 'etracker_script_settings' defaults. $etracker_script_settings = $config->get('etracker_script_settings'); $etracker_script_settings += $newConfig['etracker_script_settings']; $config->set('etracker_script_settings', $etracker_script_settings); $config->save(TRUE); } /** * Prefix track paths with slash if missing. */ function etracker_update_8102(): void { $config_factory = \Drupal::configFactory(); $config = $config_factory->getEditable('etracker.settings'); $track_paths = $config->get('etracker_track_paths'); // Verify that every path is prefixed with a slash, // but don't check for slashes if no paths configured. if (!empty($track_paths)) { $pages = preg_split('/(\r\n?|\n)/', $track_paths); foreach ($pages as $key => $page) { if (strpos($page, '/') !== 0 && $page !== '<front>') { $pages[$key] = '/' . $page; } } $config->set('etracker_track_paths', implode("\n", $pages)); $config->save(TRUE); } }