lp1517298_matomo_support user/rogan/lp1517298_support_matomo
authorRogan Hamby <rogan.hamby@gmail.com>
Tue, 18 Feb 2020 16:19:11 +0000 (11:19 -0500)
committerRogan Hamby <rogan.hamby@gmail.com>
Tue, 18 Feb 2020 16:19:11 +0000 (11:19 -0500)
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/upgrade/xxxx.data.support_matomo.sql [new file with mode: 0644]
Open-ILS/src/templates/opac/parts/base.tt2
Open-ILS/src/templates/opac/parts/matomo_analytics.tt2 [new file with mode: 0644]
docs/RELEASE_NOTES_NEXT/Administration/lp1517298_matomo.adoc [new file with mode: 0644]

index a49cf02..fd8ce49 100644 (file)
@@ -1933,7 +1933,14 @@ INSERT INTO permission.perm_list ( id, code, description ) VALUES
  ( 618, 'CREATE_PRECAT', oils_i18n_gettext(618,
     'Allows a user to create a pre-catalogued copy', 'ppl', 'description')),
  ( 619, 'EDIT_SELF_IN_CLIENT', oils_i18n_gettext(619,
-    'Allow a user to edit their own account in the staff client', 'ppl', 'description'))
+    'Allow a user to edit their own account in the staff client', 'ppl', 'description')),
+ ( 620, 'UPDATE_ORG_UNIT_SETTING.opac.analytics.use_matomo', oils_i18n_gettext(620,
+    'Set OPAC to use Matomo tracking', 'ppl', 'description')),
+ ( 621, 'UPDATE_ORG_UNIT_SETTING.opac.analytics.matomo_id', oils_i18n_gettext(621,
+    'Set Matomo ID', 'ppl', 'description')),
+ ( 622, 'UPDATE_ORG_UNIT_SETTING.opac.analytics.matomo_url', oils_i18n_gettext(622,
+    'Set Matomo URL', 'ppl', 'description'))
+
 ;
 
 
@@ -20308,3 +20315,30 @@ VALUES (
     )
 );
 
+INSERT into config.org_unit_setting_type
+    ( name, grp, label, description, datatype, update_perm ) VALUES
+    ( 'opac.analytics.use_matomo', 'opac',
+        oils_i18n_gettext('opac.analytics.use_matomo',
+            'Flag to turn Matomo use on and off',
+            'coust', 'label'),
+        oils_i18n_gettext('opac.analytics.use_matomo',
+            'Flag to turn Matomo use on and off',
+            'coust', 'description'),
+        'bool', 620),
+    ( 'opac.analytics.matomo_id', 'opac',
+        oils_i18n_gettext('opac.analytics.matomo_id',
+            'Requires the Matomo ID',
+            'coust', 'label'),
+        oils_i18n_gettext('opac.analytics.matomo_id',
+            'Requires the Matomo ID',
+            'coust', 'description'),
+        'string', 621),
+    ( 'opac.analytics.matomo_url', 'opac',
+        oils_i18n_gettext('opac.analytics.matomo_url',
+            'Requires the url to the Matomo software',
+            'coust', 'label'),
+        oils_i18n_gettext('opac.analytics.matomo_url',
+            'Requires the url to the Matomo software',
+            'coust', 'description'),
+        'string', 622)
+;
diff --git a/Open-ILS/src/sql/Pg/upgrade/xxxx.data.support_matomo.sql b/Open-ILS/src/sql/Pg/upgrade/xxxx.data.support_matomo.sql
new file mode 100644 (file)
index 0000000..a416561
--- /dev/null
@@ -0,0 +1,47 @@
+       BEGIN;
+
+       SELECT evergreen.upgrade_deps_block_check('xxxx', :eg_version);
+
+       INSERT into config.org_unit_setting_type
+       ( name, grp, label, description, datatype, fm_class ) VALUES
+       ( 'opac.analytics.use_matomo', 'opac',
+           oils_i18n_gettext('opac.analytics.use_matomo',
+               'Flag to turn Matomo use on and off',
+               'coust', 'label'),
+           oils_i18n_gettext('opac.analytics.use_matomo',
+               'Flag to turn Matomo use on and off',
+               'coust', 'description'),
+           'bool', NULL),
+      ( 'opac.analytics.matomo_id', 'opac',
+          oils_i18n_gettext('opac.analytics.matomo_id',
+               'Requires the Matomo ID',
+               'coust', 'label'),
+          oils_i18n_gettext('opac.analytics.matomo_id',
+               'Requires the Matomo ID',
+               'coust', 'description'),
+          'string', NULL),
+      ( 'opac.analytics.matomo_url', 'opac',
+          oils_i18n_gettext('opac.analytics.matomo_url',
+               'Requires the url to the Matomo software',
+               'coust', 'label'),
+          oils_i18n_gettext('opac.analytics.matomo_url',
+               'Requires the url to the Matomo software',
+               'coust', 'description'),
+          'string', NULL)
+      ;
+
+      INSERT INTO permission.perm_list ( id, code, description ) VALUES
+      ( 620, 'UPDATE_ORG_UNIT_SETTING.opac.analytics.use_matomo', oils_i18n_gettext(620,
+         'Set OPAC to use Matomo tracking', 'ppl', 'description')),
+      ( 621, 'UPDATE_ORG_UNIT_SETTING.opac.analytics.matomo_id', oils_i18n_gettext(621,
+         'Set Matomo ID', 'ppl', 'description')),
+      ( 622, 'UPDATE_ORG_UNIT_SETTING.opac.analytics.matomo_url', oils_i18n_gettext(622,
+         'Set Matomo URL', 'ppl', 'description'))
+      ;
+
+      UPDATE config.org_unit_setting_type SET update_perm = 620 WHERE name = 'opac.analytics.use_matomo';
+      UPDATE config.org_unit_setting_type SET update_perm = 621 WHERE name = 'opac.analytics.matomo_id';            
+      UPDATE config.org_unit_setting_type SET update_perm = 622 WHERE name = 'opac.analytics.matomo_url';
+
+      COMMIT;
+
index b6c2876..735269d 100644 (file)
         [% '<style>'; custom_css ; '</style>' %]                                          
         [% END %]
 
+        [% IF ctx.get_org_setting(ctx.search_ou, 'opac.analytics.use_matomo') == 1 %]
+           [% matomo_enabled = 1; %]
+           [% matomo_id = ctx.get_org_setting(ctx.search_ou, 'opac.analytics.matomo_id'); %]
+           [% matomo_url = ctx.get_org_setting(ctx.search_ou, 'opac.analytics.matomo_url'); %]  
+           [% INCLUDE 'opac/parts/matomo_analytics.tt2' %]                                       
+        [% END %]
+
         [%- libname = ctx.get_aou(ctx.search_ou).name;
             libname = libname | html;
             libsname = ctx.get_aou(ctx.search_ou).shortname; %]
diff --git a/Open-ILS/src/templates/opac/parts/matomo_analytics.tt2 b/Open-ILS/src/templates/opac/parts/matomo_analytics.tt2
new file mode 100644 (file)
index 0000000..48c7c67
--- /dev/null
@@ -0,0 +1,19 @@
+[%- PROCESS "opac/parts/header.tt2";
+    IF matomo_enabled == 1 %]
+
+       <!-- Matomo -->
+       <script type="text/javascript">
+         var _paq = window._paq || [];
+         /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+         _paq.push(['trackPageView']);
+         _paq.push(['enableLinkTracking']);
+         (function() {
+           var u="[% matomo_url %]";
+           _paq.push(['setTrackerUrl', u+'matomo.php']);
+           _paq.push(['setSiteId', '[% matomo_id %]']);
+           var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+           g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+         })();
+       </script>
+       <!-- End Matomo Code -->
+[%- END %]
diff --git a/docs/RELEASE_NOTES_NEXT/Administration/lp1517298_matomo.adoc b/docs/RELEASE_NOTES_NEXT/Administration/lp1517298_matomo.adoc
new file mode 100644 (file)
index 0000000..79f977e
--- /dev/null
@@ -0,0 +1,28 @@
+Matomo Support
+^^^^^^^^^^^^^^
+Support for the open source web analytics platform Matomo is now 
+native to Evergreen. Support is on an org unit level so different 
+libraries can have separate or no analytics. Once you setup 
+a Matomo service you will need the URL and site ID. Typically 
+Matomo will give you a block of javascript you can insert into 
+web sites. One line will look like :
+
+var u="http://mylibrary.lib/matomo/";
+
+The full URL in the double quotes will be your URL.  Another line 
+will look like:  
+
+_paq.push(['setSiteId', '1']);
+
+In this case the number 1 will be your site ID.  
+
+These are set by YOAUSes opac.analytics.matomo_url and 
+opac.analytics.matomo_id respectively. There is also a boolean 
+setting called opac.analytics.use_matomo which determines if 
+it is used at all. Three new permsisions control access to 
+these: 
+
+UPDATE_ORG_UNIT_SETTING.opac.analytics.matomo_id
+UPDATE_ORG_UNIT_SETTING.opac.analytics.matomo_url
+UPDATE_ORG_UNIT_SETTING.opac.analytics.use_matomo