Benutzerdefinierte Variablen in Piwik

Das Open Source Web Analyse Tool Piwik ist eine tolle Alternative zu Google Analytics und anderen kommerziellen Anbietern von Tracking Tools. Besonders für Leute/Firmen die die Kontrolle über die erhobenen Daten gerne selbst in der Hand haben, ist Piwik das Mittel der Wahl, da es auf dem eigenen Server betrieben wird.

Standardmäßig bietet Piwik schon eine Menge Analysemöglichkeiten, von besuchten Seiten über die Herkunft der Besucher bis zu Kampagnen. Besonders praktisch ist auch die Möglichkeit mehrere Webseiten mit einer Piwik Instanz zu überwachen. Allerdings sind die Funktionen von Piwik natürlich nicht so umfangreich wie das Angebot von kommerziellen Anbietern wie eTracker oder Econda.

Custom Variables

Wem die Standard-Analysewerte nicht reichen, der kann auch noch sogenannte “Benutzerdefinierte Variablen” (Custom Variables) einrichten. Mit diesen kann man bspw. eine Kategorie (Sport, Politik, …), oder einen Status (eingeloggt, nicht eingeloggt) mittracken. Die benutzerdefinierten Variablen werden ganz einfach dem JavaScript Tracking Code hinzugefügt.

Dabei gibt es zwei Unterscheidungsmöglichkeiten: Der Gültigkeitsbereich (scope) kann entweder auf “visit” (Zählung pro Besuch) oder auf “page” (Zählung pro Seitenaufruf) gesetzt werden.

Die Funktion zum Aufruf der benutzerdefinierten Variablen heißt setCustomVariable() und muss vor dem Standardaufruf trackPageView() ausgeführt werden.

piwikTracker.setCustomVariable(
1, // Index unter welchem die Variable gespeichert wird. Bis zu 5 Variablen sind möglich
"Kategorie", // Name der Variable
"Sport", // Wert der Variable
"page" // Gültigkeitsbereich. Hier pro Seitenaufruf
);
piwikTracker.trackPageView();

Die Namen und Werte der Custom Variables sind auf maximal 200 Zeichen Länge begrenzt.

In der Piwik Administrationsoberfläche findet man die Custom Variables unter Besucher->Benutzerdefinierte Variablen.

Hier die Links zur offiziellen Dokumentation:

Mehrsprachigkeit in Joomla! aktivieren

Mehrsprachigkeit

Das beliebte Content Management System Joomla! ist standardmäßig fähig, eine mehrsprachige Website zu realisieren. Richtig komfortabel ist diese Funktion zwar nicht, aber es geht – im Gegensatz zu anderen CMS wie WordPress, sogar ohne Erweiterungen.

Mehrsprachigkeit bedeutet, das CMS erlaubt einen einfachen Sprachwechsel, doch Übersetzen müssen immer Sie! Die Mehrsprachigkeit von Joomla! ist etwas nervig, da alles für jede Sprache neu angelegt werden muss: Beiträge, Kategorien, Menüs, Module, etc.

Hier finden Sie eine gute Anleitung, wie man die Mehrsprachigkeit in Joomla! umsetzt:

Mehrsprachigkeit aktivieren

  1. Sprachpakete für die jeweilige Sprache installieren (Erweiterungen/Erweiterungen)
  2. Einstellungen der Sprachen überprüfen (Erweiterungen/Sprachen/Inhalt)
  3. Plugin “System – Sprachenfilter” aktivieren (Erweiterungen/Plugins)
  4. Einstellungen des Plugins überprüfen
  5. Administrator Modul “Multilanguage status” aktivieren (Erweiterungen/Module/Filter Site -> Administrator)
  6. Beiträge in der jeweiligen Sprache anlegen (Titel, Inhalt und Sprache auswählen)
  7. Kategorien & Menüs müssen ebenfalls übersetzt/dupliziert werden

Mehrsprachigkeit auf der Startseite

  1. Neues (Hilfs-) Menü “default” anlegen
  2. Im neuen Menü einen neuen Menüeintrag “default” anlegen (Hauptbeiträge, Sprachen -> alle, Stern für Startseite)
  3. Neues Menü “Main Menu EN” für Englisch anlegen
  4. Neuen Menüeintrag “Home” für englische Startseite anlegen (Hauptbeiträge, Sprachen -> Englisch, Stern für Startseite)
  5. Main Menu umbenennen in Main Menu DE
  6. In Main Menu DE bei Menüeintrag “Home” Sprache Deutsch auswählen
  7. Aufpassen, dass bei allen drei Menüeinträgen der Stern für die Startseite gesetzt wurde!
  8. Das Modul “Main menu” umbenennen in “Main menu DE”
  9. Neues Modul “Main Menu EN” anlegen (Erweiterungen/Module/Neu, gleiche Position wählen wie “Main Menu DE”, Menü “Main Menu EN” auswählen )

jQuery Problem mit anderen JavaScript Bibliotheken

JavaScript Bibliotheken sind eine praktische Sache und erfreuen sich großer Beliebtheit. Besonders hervorgetan aus dem Wust von Libraries à la Prototype, Scriptaculous, Dojo, Mootools, etc. hat sich jQuery. jQuery ermöglicht einem ohne großen Aufwand zahlreiche Problemstellungen wie bspw. nette Effekte sehr schnell zu lösen. Die Bibliothek ist leicht in die eigene Website eingebunden und es kann losgehen. jQuery

Doch beim Einsatz in Content Management Systemen (CMS) kann es plötzlich zu Problemen kommen und die gewünschten Effekte treten nicht ein, oder manch andere Plugins funktionieren nicht mehr. Woran liegt das?

Nun jQuery arbeitet mit der Dollar-Syntax $(…) um DOM-Elemente anzusprechen. Leider verwenden andere JavaScript Bibliotheken auch diese Syntax. Deshalb kann es hier schnell zu Konflikten kommen. Joomla! ist z.B. so ein Kandidat. Joomla! verwendet intern Mootools, weshalb auch viele Joomla! Plugins mit Mootools arbeiten. Wenn Sie also zusätzlich noch jQuery in Ihre Website, bzw. Ihr Template eingebaut haben, dann kann schon mal was schief gehen.

Wie löst man nun diese Konflikte? Glücklicherweise gibt es in jQuery den sogenannten Kompatibilitätsmodus (compatibility mode), welcher einem den Einsatz neben anderen JavaScript Bibliotheken ermöglicht. Das sieht dann so aus:


<script>
jQuery.noConflict();

// Sprich jQuery mit jQuery(...) an statt mit $(...)
jQuery(document).ready(function(){
jQuery("div").hide();
});

// Hier kannst du die anderen JavaScripts mit $ nutzen $(...), etc.
$('someid').hide();
</script>

Das Ganze funktioniert so: erst ruft man die Funktion noConflict() auf, dann folgt der ganz normale jQuery Code, jedoch wird jQuery hier immer mit jQuery(…) angesprochen, statt wie üblich mit dem Dollar Zeichen $(…). Darunter kann man dann seine anderen Bibliotheken mit dem $ ansprechen. Hier die offizielle Dokumentation von jQuery.

Website mit RDFa

Update 23.02.2011: Habe mich entschieden, das RDFa Plugin wieder zu entfernen, da sich der W3C Validator bei der HTML5 Validierung an den RDF Attributen stört.

Mein Blog läuft seit heute mit RDFa (Resource Description Framework in attributes). RDFa ist eine Empfehlung des W3C um Webdokumente mit Hilfe von Attributen mit Metadaten anzureichern. Im Sinne der Vision des Semantic Web, können Artikel damit mit Semantik, also mit Bedeutung aufgeladen werden, damit die Inhalte einer Webseite auch für Maschinen (z.B. semantische Suchmaschinen) verständlich werden.

Was lange nur in akademischen Kreisen durchdacht wurde, wird zurzeit Realität: Das Semantic Web ist im entstehen. Immer mehr Firmen konzentrieren sich auf die zu Grunde liegenden Technologien, wie RDF, RDFS, OWL, oder SPARQL um Wissensnetze und sogenannte Ontologien aufzubauen. Eine Ontologie definiert das Vokabular und die Konzepte sowie deren Bedeutung, die notwendig sind, um ein Wissensgebiet zu beschreiben (Daconta u. a. 2003, S.185).

Auch für WordPress gibt es schon einige Plugins, welche einem den Einstieg ins semantische Web erleichtern:

Tagaroo, Ontos Feeder und Zemanta verfolgen das gleiche Ziel, automatisch Entitäten (Dinge) im Artikel zu erkennen (z.B. Orte, Personen, Länder, etc.) und diese dann sogleich mit Seiten über weitergehende Informationen zu dieser Entität zu verlinken, z.B. mit Wikipedia.

WP-RDFa verfolgt einen etwas anderen Ansatz. Ich habe mich nun für WP-RDFa entschieden, da sich die anderen Plugins nicht mit meinem Syntaxhighlighter Plugin verstehen und das System auch etwas ausbremsen. Diese Erweiterung reichert die Blogposts mit Attributen aus dem Dublin Core und FOAF Namensraum an, um maschinenverständliche Metadaten zu erzeugen. Im Quellcode kann man das sehr schön daran erkennen, dass dem XHTML, bzw. in meinem Fall HTML5 neue Attribute wie “propery”, “content”, oder “resource” hinzugefügt wurden:

<h2><a href="http://www.mountcrow.de/web/wikirebels/"><span property="dc:date" content="2010-12-14 01:26:40" resource="http://www.mountcrow.de/web/wikirebels/" /><span rel="http://www.mountcrow.de/web/wikirebels/" property="dc:title" resource="http://www.mountcrow.de/web/wikirebels/">WikiRebels</span></a></h2>

RDFa arbeitet nach der Logik der Tripel, eine Ressourcenbeschreibung nach dem Schema Subjekt – Prädikat – Objekt, bspw. Darth Vader hat Sohn Luke. “Darth Vader” ist das Subjekt, “hat Sohn” ist das Prädikat und “Luke” ist das Objekt. Alle 3 Elemente können durch Links repräsentiert werden.

Dies soll nur eine kleine Einführung sein. Ich werde in einem weiteren Post noch genauere Informationen über diese Technologien veröffentlichen.

Quellen:

Daconta, M.C., Obrst, L.J. & Smith, K.T., 2003. The Semantic Web: A Guide to the Future of XML, Web Services and Knowledge Management, Indianapolis, IN: Wiley.