From 199205a07c3e8387e29c0b1e4dacd74688ee5e6e Mon Sep 17 00:00:00 2001 From: Entropy Engineer Date: Sun, 30 Apr 2023 13:27:23 +0500 Subject: [PATCH] [piwik] Short Endpoint option --- piwik/README.md | 5 +++-- piwik/config/piwik.config.php | 4 ++++ piwik/lang/en-gb/messages.po | 22 +++++++++++++--------- piwik/lang/en-gb/strings.php | 1 + piwik/lang/ru/strings.php | 1 + piwik/piwik.php | 20 ++++++++++++++------ piwik/templates/admin.tpl | 1 + 7 files changed, 37 insertions(+), 17 deletions(-) diff --git a/piwik/README.md b/piwik/README.md index 59cf5771f..c7e57a0fa 100644 --- a/piwik/README.md +++ b/piwik/README.md @@ -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). diff --git a/piwik/config/piwik.config.php b/piwik/config/piwik.config.php index ba59b63d5..66f71dc73 100644 --- a/piwik/config/piwik.config.php +++ b/piwik/config/piwik.config.php @@ -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, ], ]; diff --git a/piwik/lang/en-gb/messages.po b/piwik/lang/en-gb/messages.po index e55e1a66b..74c95ed73 100644 --- a/piwik/lang/en-gb/messages.po +++ b/piwik/lang/en-gb/messages.po @@ -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 Matomo" " analytics tool." msgstr "This website is tracking, using the Matomo 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 (opt-out)." msgstr "If you do not want that your visits logged in this way you can set a cookie to prevent Matomo / Piwik from tracking further visits of the site (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 diff --git a/piwik/lang/en-gb/strings.php b/piwik/lang/en-gb/strings.php index 7056f878b..4d7e37b87 100644 --- a/piwik/lang/en-gb/strings.php +++ b/piwik/lang/en-gb/strings.php @@ -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 diff --git a/piwik/lang/ru/strings.php b/piwik/lang/ru/strings.php index 8f58ef45b..74ad22a58 100644 --- a/piwik/lang/ru/strings.php +++ b/piwik/lang/ru/strings.php @@ -9,3 +9,4 @@ $a->strings["Site ID"] = "ID сайта"; $a->strings["Show opt-out cookie link?"] = "Показать ссылку opt-out cookie?"; $a->strings["Asynchronous tracking"] = "Асинхронное отслеживание"; $a->strings["Settings updated."] = "Настройки обновлены."; +$a->strings["Shortcut path to the script ('/js/' instead of '/piwik.js')"] = "Сокращенный путь к скрипту ('/js/' вместо '/piwik.js')"; \ No newline at end of file diff --git a/piwik/piwik.php b/piwik/piwik.php index 89893d7a1..fd6d5fc9b 100644 --- a/piwik/piwik.php +++ b/piwik/piwik.php @@ -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'] .= ''; + 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 .= " \r\n"; + if ($async) { - $b .= " \r\n"; - $b .= "
\r\n\r\n
"; - } else { - $b .= " \r\n"; + $b .= "
\r\n\r\n
"; } /* @@ -89,7 +95,7 @@ function piwik_analytics(string &$b) $b .= ""; } @@ -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'] ?? '')); } diff --git a/piwik/templates/admin.tpl b/piwik/templates/admin.tpl index 2ab1869b9..7a9b5d718 100644 --- a/piwik/templates/admin.tpl +++ b/piwik/templates/admin.tpl @@ -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}}