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