]> git.mxchange.org Git - friendica-addons.git/commitdiff
[piwik] Short Endpoint option
authorEntropy Engineer <entropysource@ya.ru>
Sun, 30 Apr 2023 08:27:23 +0000 (13:27 +0500)
committerEntropyEngineer <entropyengineer@noreply.git.friendi.ca>
Sun, 30 Apr 2023 08:34:28 +0000 (10:34 +0200)
piwik/README.md
piwik/config/piwik.config.php
piwik/lang/en-gb/messages.po
piwik/lang/en-gb/strings.php
piwik/lang/ru/strings.php
piwik/piwik.php
piwik/templates/admin.tpl

index 59cf5771fb26777a9566360f7feef145bc4b249b..c7e57a0fa9178811394d69c999e0964be25aaa4a 100644 (file)
@@ -31,7 +31,7 @@ Open the `config/node.config.php` file and add "piwik" to the list of activated
                ],
        ]
 
-You can change 4 more configuration variables for the addon in the `config/piwik.config.php` file:
+You can change 5 more configuration variables for the addon in the `config/piwik.config.php` file:
 
        return [
                'piwik' => [
@@ -39,6 +39,7 @@ You can change 4 more configuration variables for the addon in the `config/piwik
                        'sideid' => 1,
                        'optout' => true,
                        'async' => false,
+                       'shortendpoint' => false,
                ],
        ];
 
@@ -50,7 +51,7 @@ Configuration fields
 * The *optout* parameter (true|false) defines whether or not a short notice about the utilization of Piwik will be displayed on every page of your Friendica site (at the bottom of the page with some spacing to the
 other content). Part of the note is a link that allows the visitor to set an _opt-out_ cookie which will prevent visits from that user be tracked by piwik.
 * The *async* parameter (true|false) defines whether or not to use asynchronous tracking so pages load (or appear to load) faster.
-
+* The *shortendpoint* parameter (true|false) defines whether or not to use a short path to the tracking script: "/js/" instead of "/piwik.js".
 Currently the optional notice states the following:
 
 >    This website is tracked using the Piwik analytics tool. If you do not want that your visits are logged this way you can set a cookie to prevent Piwik from tracking further visits of the site (opt-out).
index ba59b63d5e500615fb274ffe72f64bd623769911..66f71dc732c6dfaade7b85771352042e16817a90 100644 (file)
@@ -25,5 +25,9 @@ return [
                // async (Boolean)
                // This defines whether or not to use asynchronous tracking so pages load (or appear to load) faster.
                'async' => false,
+
+               // shortendpoint (Boolean)
+               // This defines whether or not to use a short path to the tracking script: "/js/" instead of "/piwik.js".
+               'shortendpoint' => false,
        ],
 ];
index e55e1a66b2b2f90297eb5142852be95db34d5ded..74c95ed735fce9115fbcf91dc4599d187e7b57f0 100644 (file)
@@ -20,13 +20,13 @@ msgstr ""
 "Language: en_GB\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: piwik.php:94
+#: piwik.php:95
 msgid ""
 "This website is tracked using the <a href='http://www.matomo.org'>Matomo</a>"
 " analytics tool."
 msgstr "This website is tracking, using the <a href='http://www.matomo.org'>Matomo</a> analytics tool."
 
-#: piwik.php:97
+#: piwik.php:98
 #, php-format
 msgid ""
 "If you do not want that your visits are logged in this way you <a "
@@ -34,32 +34,36 @@ msgid ""
 "visits of the site</a> (opt-out)."
 msgstr "If you do not want that your visits logged in this way you <a href='%s'>can set a cookie to prevent Matomo / Piwik from tracking further visits of the site</a> (opt-out)."
 
-#: piwik.php:104
+#: piwik.php:107
 msgid "Save Settings"
 msgstr "Save settings"
 
-#: piwik.php:105
+#: piwik.php:108
 msgid "Matomo (Piwik) Base URL"
 msgstr "Matomo (Piwik) Base URL"
 
-#: piwik.php:105
+#: piwik.php:108
 msgid ""
 "Absolute path to your Matomo (Piwik) installation. (without protocol "
 "(http/s), with trailing slash)"
 msgstr "Absolute path to your Matomo (Piwik) installation. (without protocol (http/s), with trailing slash)"
 
-#: piwik.php:106
+#: piwik.php:109
 msgid "Site ID"
 msgstr "Site ID"
 
-#: piwik.php:107
+#: piwik.php:110
 msgid "Show opt-out cookie link?"
 msgstr "Show opt-out cookie link?"
 
-#: piwik.php:108
+#: piwik.php:111
 msgid "Asynchronous tracking"
 msgstr "Asynchronous tracking"
 
+#: piwik.php:112
+msgid "Shortcut path to the script ('/js/' instead of '/piwik.js')"
+msgstr "Shortcut path to the script ('/js/' instead of '/piwik.js')"
+
 #: piwik.php:120
 msgid "Settings updated."
-msgstr "Settings updated."
+msgstr "Settings updated."
\ No newline at end of file
index 7056f878b1c341a082c206ab86195d6b5de98dd2..4d7e37b87b5b869d3ff63c434a49c450118c9988 100644 (file)
@@ -14,3 +14,4 @@ $a->strings['Site ID'] = 'Site ID';
 $a->strings['Show opt-out cookie link?'] = 'Show opt-out cookie link?';
 $a->strings['Asynchronous tracking'] = 'Asynchronous tracking';
 $a->strings['Settings updated.'] = 'Settings updated.';
+$a->strings["Shortcut path to the script ('/js/' instead of '/piwik.js')"] = "Shortcut path to the script ('/js/' instead of '/piwik.js')";
\ No newline at end of file
index 8f58ef45b13ad3fbb7b34431276c43c17deca0f5..74ad22a5840f51972714bd3aa326fef08fe0a48e 100644 (file)
@@ -9,3 +9,4 @@ $a->strings["Site ID"] = "ID сайта";
 $a->strings["Show opt-out cookie link?"] = "Показать ссылку opt-out cookie?";\r
 $a->strings["Asynchronous tracking"] = "Асинхронное отслеживание";\r
 $a->strings["Settings updated."] = "Настройки обновлены.";\r
+$a->strings["Shortcut path to the script ('/js/' instead of '/piwik.js')"] = "Сокращенный путь к скрипту ('/js/' вместо '/piwik.js')";
\ No newline at end of file
index 89893d7a109d956d2c51c12ea982d86ddb98e398..fd6d5fc9bab3a2d949d9cfafc94872b74e0e0ea1 100644 (file)
@@ -25,6 +25,7 @@
  *              'sideid' => '',
  *              'optout' => true,
  *              'async' => false,
+ *              'shortendpoint' => false,
  *          ],
  *      ];
  *
@@ -60,7 +61,7 @@ function piwik_analytics(string &$b)
         *   associated CSS file. We just have to tell Friendica to get it
         *   into the page header.
         */
-       DI::page()['htmlhead'] .= '<link rel="stylesheet"  type="text/css" href="' . DI::baseUrl() . '/addon/piwik/piwik.css' . '" media="all" />';
+       DI::page()->registerStylesheet('addon/piwik/piwik.css', 'all');
 
        /*
         *   Get the configuration values.
@@ -69,16 +70,21 @@ function piwik_analytics(string &$b)
        $siteid  = DI::config()->get('piwik', 'siteid');
        $optout  = DI::config()->get('piwik', 'optout');
        $async   = DI::config()->get('piwik', 'async');
+       $shortendpoint = DI::config()->get('piwik', 'shortendpoint');
 
        /*
         *   Add the Piwik tracking code for the site.
         *   If async is set to true use asynchronous tracking
         */
+       
+       $scriptAsyncValue = $async ? 'true' : 'false';
+       $scriptPhpEndpoint = $shortendpoint ? 'js/' : 'piwik.php';
+       $scriptJsEndpoint = $shortendpoint ? 'js/' : 'piwik.js';
+
+       $b .= "<!-- Piwik --> <script type=\"text/javascript\"> var _paq = _paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u=((\"https:\" == document.location.protocol) ? \"https\" : \"http\") + \"://$baseurl\"; _paq.push(['setTrackerUrl', u+'$scriptPhpEndpoint']); _paq.push(['setSiteId', $siteid]); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.defer=true; g.async=$scriptAsyncValue; g.src=u+'$scriptJsEndpoint'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Piwik Code -->\r\n";
+
        if ($async) {
-         $b .= "<!-- Piwik --> <script type=\"text/javascript\"> var _paq = _paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u=((\"https:\" == document.location.protocol) ? \"https\" : \"http\") + \"://".$baseurl."\"; _paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setSiteId', ".$siteid."]); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Piwik Code -->\r\n";
-         $b .= "<div id='piwik-code-block'> <!-- Piwik -->\r\n<noscript><p><img src=\"//".$baseurl."piwik.php?idsite=".$siteid."\" style=\"border:0\" alt=\"\" /></p></noscript>\r\n <!-- End Piwik Tracking Tag --> </div>";
-       } else {
-         $b .= "<!-- Piwik --> <script type=\"text/javascript\"> var _paq = _paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u=((\"https:\" == document.location.protocol) ? \"https\" : \"http\") + \"://".$baseurl."\"; _paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setSiteId', ".$siteid."]); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.defer=true; g.async=false; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Piwik Code -->\r\n";
+               $b .= "<div id='piwik-code-block'> <!-- Piwik -->\r\n<noscript><p><img src=\"//$baseurl$scriptPhpEndpoint?idsite=$siteid\" style=\"border:0\" alt=\"\" /></p></noscript>\r\n <!-- End Piwik Tracking Tag --> </div>";
        }
 
        /*
@@ -89,7 +95,7 @@ function piwik_analytics(string &$b)
                $b .= "<div id='piwik-optout-link'>";
                $b .= DI::l10n()->t("This website is tracked using the <a href='http://www.matomo.org'>Matomo</a> analytics tool.");
                $b .= " ";
-               $the_url =  "http://".$baseurl ."index.php?module=CoreAdminHome&action=optOut";
+               $the_url =  "http://{$baseurl}index.php?module=CoreAdminHome&action=optOut";
                $b .= DI::l10n()->t("If you do not want that your visits are logged in this way you <a href='%s'>can set a cookie to prevent Matomo / Piwik from tracking further visits of the site</a> (opt-out).", $the_url);
                $b .= "</div>";
        }
@@ -104,6 +110,7 @@ function piwik_addon_admin (string &$o)
                '$siteid' => ['siteid', DI::l10n()->t('Site ID'), DI::config()->get('piwik','siteid' ), ''],
                '$optout' => ['optout', DI::l10n()->t('Show opt-out cookie link?'), DI::config()->get('piwik','optout' ), ''],
                '$async' => ['async', DI::l10n()->t('Asynchronous tracking'), DI::config()->get('piwik','async' ), ''],
+               '$shortendpoint' => ['shortendpoint', DI::l10n()->t("Shortcut path to the script ('/js/' instead of '/piwik.js')"), DI::config()->get('piwik','shortendpoint' ), ''],
        ]);
 }
 
@@ -113,4 +120,5 @@ function piwik_addon_admin_post()
        DI::config()->set('piwik', 'siteid', trim($_POST['siteid'] ?? ''));
        DI::config()->set('piwik', 'optout', trim($_POST['optout'] ?? ''));
        DI::config()->set('piwik', 'async', trim($_POST['async'] ?? ''));
+       DI::config()->set('piwik', 'shortendpoint', trim($_POST['shortendpoint'] ?? ''));
 }
index 2ab1869b96ff6dab7e7cb4c8c7f8e37ced8b95e0..7a9b5d718c1dc5d355a93a077b467232c0044b4d 100644 (file)
@@ -2,4 +2,5 @@
 {{include file="field_input.tpl" field=$siteid}}
 {{include file="field_checkbox.tpl" field=$optout}}
 {{include file="field_checkbox.tpl" field=$async}}
+{{include file="field_checkbox.tpl" field=$shortendpoint}}
 <div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>