🙌

Omeka S GoogleAnalyticsモジュールの不具合対応

2024/07/03に公開

概要

Omeka Sにおいて、Google Analyticsを有効するにするためのモジュールとして、Google Analyticsがあります。

https://github.com/Libnamic/Omeka-S-GoogleAnalytics/

本モジュールを有効化した際、以下のエラーメッセージが表示されるケースがありました。

Undefined index: additional_snippet in (...) /modules/GoogleAnalytics/Module.php on line 316

これについて、以下のIssueも上がっていました。

https://github.com/Libnamic/Omeka-S-GoogleAnalytics/issues/9

本件の対応方法について共有します。

対応方法

以下のように変更します。

https://github.com/Libnamic/Omeka-S-GoogleAnalytics/pull/10/commits/0123ce557d0f38834c5c37fa1ac9c986c87cbc90

具体的には、以下です。

変更前

/modules/GoogleAnalytics/Module.php
            if (empty($extra_snippet)) {
                $settings = $this->getServiceLocator()->get('Omeka\Settings');
                $settings = $settings->get('googleanalytics', '');
                if ($settings != null)
                    $extra_snippet = $settings['additional_snippet'];
            }
            if (empty($extra_snippet)) {
                $settings = $this->getServiceLocator()->get('Omeka\Settings');
                $settings = $settings->get('googleanalytics', '');
                if ($settings != null)
                    $extra_snippet = $settings['additional_snippet'];
            }

変更後

/modules/GoogleAnalytics/Module.php
            if (empty($extra_snippet)) {
                $settings = $this->getServiceLocator()->get('Omeka\Settings');
                $settings = $settings->get('googleanalytics', '');
                if ($settings != null)
                    // Assuming this is part of the code where you handle the extra snippet
                    if (isset($settings['additional_snippet']) && !empty($settings['additional_snippet'])) {
                        $extra_snippet = $settings['additional_snippet'];
                    } else {
                        $extra_snippet = ''; // Default value if 'additional_snippet' key is not set
                    }
            }
            if (empty($extra_snippet)) {
                $settings = $this->getServiceLocator()->get('Omeka\Settings');
                $settings = $settings->get('googleanalytics', '');
                if ($settings != null)
                    // Assuming this is part of the code where you handle the extra snippet
                    if (isset($settings['additional_snippet']) && !empty($settings['additional_snippet'])) {
                        $extra_snippet = $settings['additional_snippet'];
                    } else {
                        $extra_snippet = ''; // Default value if 'additional_snippet' key is not set
                    }
            }

まとめ

上記の変更が完全に正しいか自信はありませんが、プルリクエストも出しておきました。

https://github.com/Libnamic/Omeka-S-GoogleAnalytics/pull/10

参考になりましたら幸いです。

Discussion