Die Vorlage:MitgliedBei funktioniert
im MediaWiki 1.39 nicht mehr und erst Recht nicht in 1.43 siehe
Ticket 45
Die 1.43 Parsoid Umstellung von der z.B. Extension:Arrays - MediaWiki und Extension:Variables - MediaWiki betroffen sind macht es spätestens in wenigen Wochen erforderlich, dass wir mit LUA Modulen arbeiten und die betroffenen Templates durch solche Module ersetzen.
Die Frage ist ob wir jetzt noch an den Template flicken oder gleich LUA Module erstellen. Dazu sollten wir IMHO die Gelegenheit nutzen, und testen, wieviel Aufwand das ist. Wer hat Lust in den nächsten Tagen mal die „MitgliedBei“ Vorlage in diesem Sinne mit mir in Angriff zu nehmen?
Alternativ könnten wir auch gleich Semantifizieren und ein Property „MitgliedBei“ nutzen. Das wäre IMHO deutlich sauberer. Das wäre auch ein schönes Beispiel, um zu zeigen wieviel einfacher Properties im Verhältnis zu Kategorien sind.
Das würde ich bevorzugen. Aber ist es realistisch, dass wir das vor dem Update auf 1.39 schaffen? Ich selbst kann dabei leider nicht unterstützen.
Meiner Ansicht nach ist das möglich. Wir können sogar beide Alternativen in der Testphase untersuchen um den Aufwand und den Nutzen zu vergleichen. Wir werdern noch sicher einige ähnliche Fälle haben und MitgliedBei scheint mir ein einfaches und nützliches Thema zu sein, dass nachvollziehbar ist. Solange das Template einheitliche verwendet worden ist sollte das unproblematisch sein. Bei DjVu ist das Thema z.B. viel schwieriger weil es dort viele cut&paste Kopien der Templates gibt und wenn da die Systematik durchbrochen wird dann ist das mit viel Folgeaufwand verbunden. cut&paste ist meiner Ansicht nach immer gefährlich.
MitgliedBei-Template auf Semantic MediaWiki umstellen
Problem
Die Lösung mit #fornumargs und hardcodierten Switch-Cases aus den Jahren 2011-2013 ist wartungsintensiv und wird mit MediaWiki 1.43 nicht mehr funktionieren.
Die Vorlage wird über 500x genutzt gehört also definitiv zur 80% Regel
Lösung: Semantic Properties mit Lookup/Nachschlagen
1. Properties auf Vereinsseiten definieren
Auf jeder Vereinsseite (z.B. [[Verein für Computergenealogie e.V.]]):
[[Vereinskürzel::CompGen]]
[[Vereinslogo::logo_compgen_small.png]]
2. Template:MitgliedBei
Setzt Properties und zeigt Tabelle:
<includeonly>{{#if:{{{1|}}}|[[Mitglied bei::{{{1}}}]]}}{{#if:{{{2|}}}|[[Mitglied bei::{{{2}}}]]}}{{#if:{{{3|}}}|[[Mitglied bei::{{{3}}}]]}}{{#if:{{{4|}}}|[[Mitglied bei::{{{4}}}]]}}{{#if:{{{5|}}}|[[Mitglied bei::{{{5}}}]]}}{{#if:{{{2|}}}|{{{!}} style="height: 110px; border:solid 1px gray; float: right; background-color:#ffffcc; border-collapse:collapse;" cellpadding=10px
{{!}}-
! colspan="2" style="border-bottom:solid 1px gray" {{!}} [[:Kategorie:Mitgliederübersicht|Mitglied bei:]]
{{#if:{{{1|}}}|{{!}}-
{{MitgliedBeiEinem|{{{1}}}}}}}{{#if:{{{2|}}}|{{!}}-
{{MitgliedBeiEinem|{{{2}}}}}}}{{#if:{{{3|}}}|{{!}}-
{{MitgliedBeiEinem|{{{3}}}}}}}{{#if:{{{4|}}}|{{!}}-
{{MitgliedBeiEinem|{{{4}}}}}}}{{#if:{{{5|}}}|{{!}}-
{{MitgliedBeiEinem|{{{5}}}}}}}
{{!}}}}|{{MitgliedBeiEinem|{{{1}}}}}}}</includeonly>
3. Template:MitgliedBeiEinem
Lookup via Ask-Query:
<includeonly>{{#ask: [[Vereinskürzel::{{{1}}}]]
|?Vereinslogo
|format=template
|template=MitgliedBeiZeile
|link=all
}}[[Kategorie:Mitglied bei {{{1}}}|{{PAGENAME}}]]</includeonly>
4. Template:MitgliedBeiZeile
Formatiert die Tabellenzeile:
{{!}} width="220 px" style="border-bottom:solid 1px gray" {{!}} [[{{{1}}}]]{{!!}} width="120 px" align="center" style="border-bottom:solid 1px gray" {{!}} [[Image:{{{2}}}|100x100px|link={{{1}}}]]
Vorteile
Keine hardcodierten Switch-Cases mehr
Neue Vereine: nur Property auf Vereinsseite setzen
Semantische Abfragen möglich z.B. für Portal:Vereine und Interessengruppen
Bestehende Aufrufe bleiben kompatibel
Aufruf bleibt gleich
{{MitgliedBei|CompGen|ICARUS4all|FamAu}}
oder auch
{{MitgliedBei|CompGen}}
{{MitgliedBei|ICARUS4all}}
{{MitgliedBei|FamAu}}
1 „Gefällt mir“
Das klingt doch super! Was man machen müsste, wäre der Schritt 1, d.h. auf den GenWiki-Seiten der Vereine das Kürzel und das Logo verknüpfen. So viele Vereine/Gruppen sind es ja nicht, das ist machbar. Ich kann helfen.
Dein Browser wird geprüft! hat jetzt schon mal ein bischen Semantik.
Dein Browser wird geprüft! hat einen Beispieleintrag.
Können wir morgen eine Online Sitzung machen, wo ich das erkläre?
Von mir aus gerne, nur nicht von 14:00 bis 15:30.
ab 11 Uhr passt bei mir gut
Grds. Interesse habe ich schon. Dieses Wochenende wird es bei mir nix.
Mich würde auch interessieren, an welchen Stellen die Vorlagen-Programmierung am meisten Sinn ergibt und was man dann besser mit den Möglichkeiten der Semantifizierung “erschlägt”.
Bzgl. LUA hat vielleicht auch @Thomas_Dickel Interesse. Er hatte vor einiger Zeit zum Thema Vorlagenprogrammierung mit Lua im GenWiki angefragt.
LG Bernd