GSB 7.0 Standardlösung

Piwik-Portlet

Als Alternative zu Google Analytics bietet PIWIK die Möglichkeit zur Erfassung und Analyse von Seitenaufrufen. PIWIK wird unter der GPL Lizenz 3 auf http://PIWIK.org/ zum Download angeboten. Das PIWIK-Portlet ermöglicht den Zugriff auf die PIWIK-Analysefunktionen aus dem GSB Adminportal heraus. Dieser Artikel gibt einen Überblick über die Einrichtung des PIWIK-Portlets im GSB Adminportal.

Einleitung

Die Integration von PIWIK in das GSB Adminportal erfolgt mit Hilfe des vom Liferay standardmäßig bereitgestellten IFrame-Portlets. PIWIK ist durch seine umfangreiche API bereits auf die Integration in PIWIK-fremde Webseiten vorbereitet. Eine geeignete Abfrage der PIWIK-API liefert sogenannte Code-Snippets, durch die die Widgets (ein Widget stellt eine Analysefunktion zur Verfügung) von PIWIK und das gesamt Dashboard (Sammlung und Platzierung von Widgets) dargestellt werden (vgl. Benutzeranleitung). Die Generierung der Widgets und die damit verbundene Ausführung der Analysefunktionen obliegen dem PIWIK-System.

Um jedem Benutzer die Möglichkeit der individuellen Gestaltung seines Dashboards zu geben, erfolgt der Zugriff auf das PIWIK durch personalisierte Benutzerkennungen. Daraus folgt, dass jeder Benutzer, der vom GSB Adminportal auf PIWIK zugreift, auch über eine Benutzerkennung im PIWIK verfügen muss. Hieraus ergeben sich einerseits Anforderungen an die Einrichtung der Infrastruktur (insb. der Installation des PIWIK-Systems und der Integration des PIWIK in eine CAS-Authentifizierung), aber andererseits auch Anforderungen an die Einrichtung von Benutzern und Mandanten im PIWIK. Im Folgenden werden zunächst die zur Integration von PIWIK erforderlichen Anforderungen an die Infrastruktur beschrieben. Anschließend erfolgt eine Beschreibung der im PIWIK erforderlichen Einstellungen zur Einrichtung eines Mandanten und zur Konfiguration von Benutzeraccounts. Abschließend wird die Konfiguration des Liferay IFrame-Portlets zur Integration der PIWIK-Funktionalität in das GSB Adminportal beschrieben.

Zur Erfassung der Aufrufe von Webseiten eines Mandanten durch PIWIK ist eine Konfiguration der entsprechenden Webseiten des Mandanten erforderlich. Der Abschnitt "Tracking von Aufrufen" beschreibt die erforderlichen Schritte zur Konfiguration der Webseiten im Kontext der CM-GSB-Umgebung.

Anforderungen an die Infrastruktur

Der PIWIK Service (hier installiert aufpiwik-demodmz) kann durch Plugin-Mechansimen um eine CAS-Funktionalität ergänzt werden.

Das folgenden Plugin wurde eingesetzt, um die CAS-Funktionalität zu etablieren:

CASLogin-0.7.1.tgz

Das Plugin, bzw. neuere Versionen, kann via GITHUBhttps://github.com/fnp/piwik-CASLogingeladen werden.

Installtion des Plugins

Das Plugin wird gemäß Anleitung in das Plugin-Verzeichnis von PIWIK installiert.

Das Plugin steht danach unter (Beispiel fürpiwik-demodmz)/srv/www/htdocs/piwik/plugins/CASLogin zur Verfügung.

Konfiguration des Plugins

Das Plugin muss für PIWIK aktiviert und konfiguriert werden. Dies erfolgt in der Standard-PIWIK Konfigurationsdatei /srv/www/htdocs/piwik/config/config.ini.php (bzw./srv/www/htdocs/piwik/config/global.ini.php) wie folgt:

	Plugins[] = "CASLogin"	PluginsInstalled[] = "CASLogin"		[caslogin]	protocol = SAML_VERSION_1_1	host = liferay-cas-vm	port = 443	uri = /cas


Anpassen des CAS-Plugin

Einzelne Dateien des Plugins müssen nachträglich angepasst werden (bei moderneren CASLogin Versionen kann dies obsolet sein).

CAS.php

Der Name der CAS Web-App muss variable gemacht werden.

// initialize the object $_PHPCAS_CLIENT   self::$_PHPCAS_CLIENT = new CAS_Client(alt -->   //$server_version, false, $server_hostname, $server_port, "/cas",neu -->   $server_version, false, $server_hostname, $server_port, $server_uri,   $changeSessionID   );  phpCAS :: traceEnd();}

CAS/CAS/Client.php

Der Standard-session-Mechanismus muss gegen Zend_Session ausgetauscht werden.

alt --> //session_start();neu --> Zend_Session::start();

Auth.php Der Name der cas web-app muss übergeben werden.

                if (!self::$phpcas_client_called) {                        \phpCAS::client(                                constant( Config::getInstance()->caslogin['protocol'] ),                                Config::getInstance()->caslogin['host'],                                (integer) Config::getInstance()->caslogin['port'],       neu --> '/cas',                false                        );                        self::$phpcas_client_called = true;                }

CASLogin/CAS/CAS/Request/CurlRequest.php

Die SSL Prüfung muss deaktiviert werden, wenn ein Zertifikat mit ungültiger SA vorliegt.

        /*********************************************************         * Set SSL configuration        *********************************************************/  neu -->  /*********************************************************        if ($this->caCertPath) {            if ($this->validateCN) {                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);            } else {                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);            }            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);            curl_setopt($ch, CURLOPT_CAINFO, $this->caCertPath);            phpCAS::trace('CURL: Set CURLOPT_CAINFO ' . $this->caCertPath);        } else {  neu -->  *********************************************************/			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  neu -->  /*********************************************************

Auth.php

Sollte ein zusätzliches Debugging notwendig sein, kann dies durch Einbau des nachfolgenden Befehls, z.B. vor piwik::getAction(); erfolgen.

\phpCAS::setDebug('/tmp/cas.log');

Einstellungen im PIWIK

Webseiten verwalten

Eine Webseite im PIWIK stellt die administrative Einheit dar, um Informationen zu einer Mandanten-Seite zu sammeln und den Zugriff darauf zu verwalten. Zu jeder Mandanten-Seite, die über PIWIK analysiert werden soll, ist eine Webseite im PIWIK anzulegen. Das Anlegen einer Webseite erfolgt im PIWIK unter (Admin - Einstellungen - Verwalten - Webseiten). Eine Webseite kann nur von einem Benutzer mit der Rolle Hauptadministrator angelegt werden. Um eine neue Webseite anzulegen, ist unterhalb der tabellarischen Auflistung der bereits vorhandenen Webseiten die Option Eine neue Webseite hinzufügen auszuwählen. Anschließend können die Informationen zu der Webseite angegeben werden (vgl. nachstehende Abbildung). Durch Betätigen der Schaltfläche Speichern wird die Webseite im PIWIK angelegt.

Piwik Einstellungen

Benutzer verwalten

In den Einstellungen der PIWIK Administrationsoberfläche können Benutzer verwaltet werden (Aufruf über Admin - Einstellungen - Verwalten - Benutzer). Es können neue Benutzer angelegt und vorhandene Benutzer administriert (u.a. zurücksetzen des Passworts). Außerdem können in diesem Bereich die Zugriffsrechte der Benutzer verwaltet werden. Einem Benutzer kann ein Ansichtsrecht oder ein Administrationsrecht eingeräumt werden. Ein Benutzer mit Ansichtsrecht darf ausschließlich auf die zu einer Webseite erfassten Daten zugreifen. Ein Benutzer mit Administrationsrecht hat darüber hinaus die Möglichkeit, die Einstellungen zu einer Webseite zu verändern.

Piwik Benutzerverwaltung

Tracking Code im Editor einfügen

PIWIK ermittelt die Seitenaufrufe durch einen sogenannten Tracking-Code. Mittels JavaScript werden die Informationen eines Besuchers der Webseite an PIWIK gesendet. Der Tracking-Code ist Javascript-Code und wird vom PIWIK bereitgestellt. In dem Bereich zur Verwaltung von Webseiten befindet sich die Option zum Extrahieren des Tracking Codes (Aufruf über: Admin - Einstellungen - Verwalten - Webseite).

Im GSB-Editor wird der Code-Block in das MainLayout eingefügt. Das MainLayout befindet sich im Pfad /MANDANT/SiteGlobals/Layout. Am Ende des Dokuments im Feld HTML-Body-Quelltext ist der Code Block des Tracking-Codes einzufügen (vgl. folgende Abbildung). Das Dokument muss danach freigegeben und die Änderungen publiziert werden. In manchen Fällen wird das MainLayout auf der Mandanten-Seite nicht als solches verwendet, weshalb es ratsam ist, die Verweise auf das Dokument im GSB-Editor zu prüfen und ggf. das alternativ verwendete Layout zu identifizieren.

Piwik Main Layout

Der Code Block ist nun auf der Mandanten-Webseite eingebunden und PIWIK übernimmt die statistische Auswertung der Besucher.

Einrichtung des PIWIK-Portlets

Die Integration von PIWIK in das GSB Adminportal erfolgt mit dem IFrame-Portlet, das standardmäßig vom Liferay bereitgestellt wird. Das PIWIK liefert sogenannte Code-Snippets, mittels derer die Darstellung und die Steuerelemente des Dashboards und der Widgets beschrieben werden. Die Code-Snippets werden vom IFrame-Portlet dargestellt.

In der Administrationsoberfläche vom PIWIK gelangt man über die Navigation Admin - Widgets in einen Bereich, in dem die Verweise auf die Code-Snippes extrahiert werden können. Im Feld unterhalb des Absatzes "Widgetize the full dashboard" wird der Verweis zu Integration des vollständigen Dashboards bereitgestellt. Der Verweis innerhalb des "src"-Elements ist zu kopieren und in die Konfiguration des IFrame-Portlets einzufügen (vgl. Ausführungen weiter unten).

Das IFrame-Portlet wird auf der gewünschten Seite im GSB Adminportal abgelegt. Über die Konfiguration des Portlets, die aus dem Kontextmenü aufgerufen werden kann (vgl. nachfolgende Abbildung), wird der Link zum PIWIK-Dashboard eingefügt.

Piwik Konfiguration

Bei dem Einfügen des Links ist darauf zu achten, dass nur der Inhalt des "src"-Elements aus dem PIWIK kopiert wurde (vgl. Anmerkung weiter oben) und eingefügt wird (vgl. folgende Abbildung). Außerdem muss der kopierte Verweis zusätzlich um den Parameter "&disableLlink=1" ergänzt werden, da sonst ein Klick auf ein Widget auf dem PIWIK-Dashboard dafür sorgt, dass der Inhalt auf einer neuen Seite außerhalb des GSB Adminportals angezeigt wird. Der in das IFrame-Portlet einzufügende Verweis hat dementsprechend folgendes Format:

http://gsbadmin.gsb.materna.de/piwik/index.php?module=Widgetize&action=iframe&moduleToWidgetize=Dashboard&actionToWidgetize=index&idSite=2&period=week&date=yesterday&disableLink=1

Piwik IFrame Konfiguration