Piwik ist durch den einfach zu bedienenden Installer in wenigen Minuten installiert. Lässt es sich auch so einfach in Serendipity einbinden?

Piwik

Piwik ist eine in PHP5 - unter der Verwendung des Zend Frameworks - geschriebene Web-Analyse-Software und stellt eine Alternative zum bekannten Google Analytics dar.

Der größte Unterschied zu Google Analytics ist, dass Piwiks Quellcode unter der GPL steht, es auf dem eigenen Server läuft und seit der Version 0.5.5 das Plugin AnonymizeIP enthält. Wie der Name es schon andeutet, anonymisiert das Plugin bei Aktivierung sämtliche IP-Adressen von Besuchern, so dass es nicht mehr möglich ist direkt auf einen Besucher zuschließen.

Wegen der Speicherung von IP-Adressen ist Google Analytics - neben der Lagerung der Daten auf den Google-Servern in den USA - bei den deutschen Datenschützen schon seit Längerem ein Dorn im Auge. Google selber hat vor Kurzem darauf reagiert und entsprechende Browser-Plugins (Opt-Out) angekündigt.

Piwik in Serendipity

Die 5-Minuten-Installation von Piwik ist wirklich selbsterklärend und kinderleicht, so dass ich hier nicht darauf eingehen werde. Allerdings beherbergt die Integration des JavaScript Fragmentes in Serendipity eine kleine Tücke.

Wenn man das von Piwik für die Domain generierte Fragment

<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://50226.de/piwik/" : "http://50226.de/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
    var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
    piwikTracker.trackPageView();
    piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="/piwik/piwik.php?idsite=1" style="border:0" alt="piwik" /></p></noscript>
<!-- End Piwik Tag -->

in das index-Template einpflegt, begrüßt S9Y einen daraufhin mit folgender Fehlermeldung

Fatal error:  Smarty error: [in /path/to/template/index.tpl line 134]: syntax
error: unrecognized tag 'var' (Smarty_Compiler.class.php, line 590) in /path/to/installation/bundled-libs/Smarty/libs/Smarty.class.php
 on line 1093

Das Problem ist hierbei die Template-Sprache Smarty in Verbindung mit geschweiften Klammern. Ein Grund dafür warum ich mich mit Smarty nie wirklich anfreunden konnte. Um diesen Fehler zu beheben, muss man die im JS-Fragment verwendeten geschweiften Klammern durch {ldelim} bzw {rdelim} ersetzen. Das funktionierende Fragment sieht wie folgt aus:

<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://50226.de/piwik/" : "http://50226.de/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {ldelim}
    var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
    piwikTracker.trackPageView();
    piwikTracker.enableLinkTracking();
{rdelim} catch( err ) {ldelim}{rdelim}
</script><noscript><p><img src="/piwik/piwik.php?idsite=1" style="border:0" alt="piwik" /></p></noscript>
<!-- End Piwik Tag -->
blogroll
tags