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);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc