diff --git a/system/includes/functions.php b/system/includes/functions.php index 26f3613..911cec3 100644 --- a/system/includes/functions.php +++ b/system/includes/functions.php @@ -5,6 +5,7 @@ use \Michelf\MarkdownExtra; use \Suin\RSSWriter\Feed; use \Suin\RSSWriter\Channel; use \Suin\RSSWriter\Item; +use function Composer\Autoload\includeFile; // Get blog post path. Unsorted. Mostly used on widget. function get_post_unsorted() @@ -2021,6 +2022,62 @@ EOF; } } +// Matomo +function matomo($title) +{ + $matomoURL = config('matomo.url'); + $matomoToken = config('matomo.token'); + $matomoID = config('matomo.id'); + $matomoTracking = config('matomo.tracking'); + + if(empty($matomoURL) || empty($matomoTracking) || empty($matomoID) || empty($matomoToken)) + { + error_log("Please set all Matomo configuration values", 0); + return; + } + + $script = << + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="${matomoURL}"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '{$matomoID}']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); + +EOF; + + if($matomoTracking == 'javascript') + { + return $script; + } + else if($matomoTracking == 'php') + { + $url = 'system/plugins/matomo/MatomoTracker.php'; + require_once ($url); + + MatomoTracker::$URL = $matomoURL; + + // Matomo object + $matomoTracker = new MatomoTracker((int) $matomoID, $matomoURL); + + // Set authentication token + $matomoTracker->setTokenAuth($matomoToken); + + // Track page view + $matomoTracker->doTrackPageView($title); + } + else + { + return "nothing"; + } +} + function slashUrl($url) { return rtrim($url, '/') . '/'; } diff --git a/themes/twentyfifteen/layout.html.php b/themes/twentyfifteen/layout.html.php index 9caa0fa..5dda851 100644 --- a/themes/twentyfifteen/layout.html.php +++ b/themes/twentyfifteen/layout.html.php @@ -132,6 +132,7 @@ +