diff --git a/google_tag.info.yml b/google_tag.info.yml index 15f70e2..6ce8710 100644 --- a/google_tag.info.yml +++ b/google_tag.info.yml @@ -2,5 +2,5 @@ name: 'Google Tag Manager' type: module description: 'Allows your website analytics to be managed using Google Tag Manager.' package: 'Statistics' -core: 8.x +core_version_requirement: ^8 || ^9 configure: google_tag.settings_form diff --git a/google_tag.install b/google_tag.install index 035d4a4..3020a70 100644 --- a/google_tag.install +++ b/google_tag.install @@ -8,6 +8,8 @@ */ use Drupal\Core\StreamWrapper\PublicStream; +use Drupal\Core\File\FileSystemInterface; +use Drupal\Core\Url; /** * Implements hook_requirements(). @@ -20,7 +22,7 @@ function google_tag_requirements($phase) { // Google Tag Manager container ID has not been set. $requirements['google_tag'] = array( 'title' => t('Google Tag Manager'), - 'description' => t('Configure this integration module on its settings page.', array(':url' => \Drupal::url('google_tag.settings_form'))), + 'description' => t('Configure this integration module on its settings page.', array(':url' => Url::fromRoute('google_tag.settings_form')->toString())), 'severity' => REQUIREMENT_WARNING, 'value' => t('Not configured'), ); @@ -29,8 +31,10 @@ function google_tag_requirements($phase) { if ($phase == 'runtime' || $phase == 'install') { // Adapted from system_requirements(). $directory = PublicStream::basePath() . '/js'; + /** @var \Drupal\Core\File\FileSystemInterface $fileSystem */ + $fileSystem = \Drupal::service('file_system'); if (!is_dir($directory) || !is_writable($directory)) { - file_prepare_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); + $fileSystem->prepareDirectory($directory, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS); } $is_writable = is_writable($directory); $is_directory = is_dir($directory); diff --git a/google_tag.module b/google_tag.module index 19d7a50..bec1c24 100644 --- a/google_tag.module +++ b/google_tag.module @@ -12,6 +12,8 @@ use Drupal\Component\Utility\Unicode; use Drupal\Core\Routing\RouteMatchInterface; +use Drupal\Core\File\FileSystemInterface; +use Drupal\Core\Messenger\MessengerInterface; /** * Default for matching all items except listed. @@ -293,9 +295,11 @@ function google_tag_save_snippets() { $saved = FALSE; $unsaved = FALSE; $dir = _google_tag_get_js_dir(); $snippets = google_tag_snippets(); + /** @var \Drupal\Core\File\FileSystemInterface $fileSystem */ + $fileSystem = \Drupal::service('file_system'); foreach ($snippets as $type => $snippet) { - if ($dir_exists = file_prepare_directory($dir, FILE_CREATE_DIRECTORY)) { - $path = file_unmanaged_save_data($snippet, "{$dir}/google_tag.{$type}.js", FILE_EXISTS_REPLACE); + if ($dir_exists = $fileSystem->prepareDirectory($dir, FileSystemInterface::CREATE_DIRECTORY)) { + $path = $fileSystem->saveData($snippet, "{$dir}/google_tag.{$type}.js", FileSystemInterface::EXISTS_REPLACE); } if ($dir_exists === TRUE && $path !== FALSE) { $saved = TRUE; @@ -306,7 +310,10 @@ function google_tag_save_snippets() { } if ($unsaved) { - drupal_set_message(t('An error occurred saving one or more snippet files. Please try again or contact the site administrator if it persists.')); + \Drupal::messenger()->addMessage( + t('An error occurred saving one or more snippet files. Please try again or contact the site administrator if it persists.'), + MessengerInterface::TYPE_STATUS + ); } if ($saved) { \Drupal::service('asset.js.collection_optimizer')->deleteAll();