VG Wort-Zählmarkenverwaltung mit Widgets

Wer Mitglied bei der Verwertungs­gesellschaft Wort ist und ein Wiki betreibt, der steht vor mehreren Problemen, wenn er am METIS-Programm teilnehmen, also seine Online-Texte zur Monetarisierung anmelden möchte.

METIS steht für „Meldesystem für Texte auf Internet­seiten“. VG Wort verlangt neben einer Mindestlänge der Texte eine Mindest­anzahl von Artikel­betrachtungen („Hits“), die mit dem Einbau von „Zählpixel“ auf der Artikel­seite nach­gewiesen werden muss. Für den Einbau dieser Zählpixel können bei VG Wort „Zählmarken“ bestellt werden, die jeweils aus einem Satz öffentlicher und privater Schlüssel („key“) und einer URL zu einem Zählpixel auf einem Server der VG Wort besteht.

Ein HTML-Code-Schnipsel, wie diese Zählmarke in eine HTML-Seite einzubauen wäre, liegt bei. Bei Webseiten aus den 1980er Jahren, die aus selbst­gestrickten HTML-Seiten bestanden, ist es eine einfache Sache, diesen HTML-Code via Copy&Paste in den HTML-Code der Seite einzufügen. Doch wie sind diese Zählmarken in modernen Content-Management-Systemen einzubinden, die auf sehr komplexe Weise die schließlich an den Leser ausgelieferten Seiten aus Datenbank-Abfragen, Templates und Skins zusammen­bauen?

Eine Möglichkeit, den HTML-Code-Schnipsel für die Zählmarke in ein auf MediaWiki basierendes Wiki einzubauen, sind Widgets. Die Erweiterung Widgets gibt es für die MediaWiki-Versionen 1.23, 1.31, 1.33, 1.35 und höhere.

Diese Methode ist nicht sonderlich elegant, aber immerhin funktioniert sie.

Bevor WikiMANNia die (aufwändigere) Erweiterung in Betrieb genommen hat, hat es die VG Wort-Zählmarken mit einer Kombination von Vorlagen und einem Widget verwaltet.

Der HTML-Code-Schnipsel für die Zählmarke befindet sich in einem Widget:

<includeonly><img src=“https://ssl-vg03.met.vgwort.de/na/<!–{$publiccounter}–>“ height=“1″ width=“1″ border=“0″ />
</includeonly>

wobei {$publiccounter} eine Variable für den öffentlichen Schlüssel darstellt.

Das Widget wiederum wird von dieser Vorlage aufgerufen:

<includeonly>{{#if: {{VGWort-Liste|}} |{{#widget:VGWort|publiccounter={{VGWort-Liste}}}}}}
</includeonly>

Der Aufruf des Widgets ist noch umklammert mit einer If-Abfrage, denn die Zählmarken werden zentral einer eigenen Vorlage verwaltet, damit das sauber vom Programmier-Code getrennt ist:

<includeonly>{{#switch: {{PAGENAME}}
| Artikel 00 = 12345678901234567890123456789000
| Artikel 01 = 12345678901234567890123456789001
| Artikel 02 = 12345678901234567890123456789002
| Artikel 03 = 12345678901234567890123456789003
| Artikel 04 = 12345678901234567890123456789004
| Artikel 05 = 12345678901234567890123456789005
| Artikel 06 = 12345678901234567890123456789006
| Artikel 07 = 12345678901234567890123456789007
| Artikel 08 = 12345678901234567890123456789008
| free = 12345678901234567890123456789009
| free = 12345678901234567890123456789010
| #default = }}
</includeonly>

In dieser Switch-Anweisung wird der aktuelle Artikelname verglichen und in einer Spalte einer Zählmarke zugeordnet. Ist ein Artikelname keiner Zählmarke zugeordnet, wird standard­mäßig („default“) ein leerer String zurückgeliefert. Dieser leerer String bewirkt in der anderen Vorlage, dass der Aufruf des Widgets ausgelassen wird.

Die Idee für diese Lösung stammt von Bikegeissel:

Bikegeissel ist in seinem Wiki einen anderen Weg gegangen und bindet in jedem Artikel den Widget-Aufruf mit einer Zählmarke als Parameter ein:

{{#widget:VGWort|publiccounter=12345678901234567890123456789000}}

Der erste Nachteil dieser Lösung ist, dass man keine Übersicht der vergebenen Zählmarken hat. In der WikiMANNia-Lösung hat man diese Übersicht in einem listen­ähnlichen Switch, wobei noch nicht genutzte Zählmarken bereits eingestellt werden können, indem sie dem (fiktiven) Artikel „free“ zuordnet. So sieht man auf einem Blick, welche Zählmarken noch zur Vergabe zur Verfügung stehen.

Der zweite Nachteil dieser Lösung ist, dass man jeden Artikel einzeln anfassen muss, um den oben stehenden Widget-Aufruf einzufügen. WikiMANNia verwendet am Artikel-Beginn ein so genanntes Krümelmenü. In dieser Vorlage wird elegant die Vorlage {{VGWort}} intern mit aufgerufen wird.

<includeonly>[[Hauptseite]] {{#if: {{{1|}}} | » [[{{{1|}}}]] {{#if: {{{2|}}} | » [[{{{2|}}}]] {{#if: {{{3|}}} | » [[{{{3|}}}]] {{#if: {{{4|}}} | » [[{{{4|}}}]] {{#if: {{{5|}}} | » [[{{{5|}}}]] {{#if: {{{6|}}} | » [[{{{6|}}}]] {{#if: {{{7|}}} | » [[{{{7|}}}]] }} }} }} }} }} }} }} » {{SEITENNAME}} {{VGWort}}
</includeonly>

Eine weitere Variante wäre es, das in einer Vorlage für die Fußnoten-Verwaltung unterzubringen.

<includeonly>== Einzelnachweise ==
<references /> {{VGWort}}
</includeonly>

Quellen für Widget und Vorlagen: