MediaWiki
Dieses Wiki verwendet die Software MediaWiki. Dazu wurde ein Skin erstellt, das auf das Corporate Design des KIT angepasst ist. Weiterhin ist es möglich, sich mit einem KIT-Benutzerkonto anzumelden. Auf dieser Seite beschreiben wir, wie man das Skin und den Login einrichtet. Ansprechperson für diese Erweiterungen ist Erik Burger.
Skin im KIT-Design
Basierend auf dem populären Vector-Skin von MediaWiki wurde das Skin, das auch in diesem Wiki verwendet wird, auf das Corporate Design des KIT angepasst. Das Skin kann hier heruntergeladen werden: https://gitlab.kit.edu/kit/kastel/sdq/code/mediawiki/sdq-vector
Derzeit werden MediaWiki 1.31, 1.35 (LTS) und 1.39 (LTS) unterstützt. Nur die aktuelle LTS-Version wird gepflegt. (Mediawiki 1.43 ist in Arbeit.)
Installation
- Das Skin aus Gitlab in das Verzeichnis
/skins
der MediaWiki-Installation klonen:git clone -b REL1_39 --recurse-submodules https://gitlab.kit.edu/kit/kastel/sdq/code/mediawiki/sdq-vector.git
- Die Roboto-Schriftarten werden dazu aus dem Git-Repository von FontFaceKit (https://github.com/FontFaceKit/roboto) geholt
- Danach liegen die Schriftarten im Verzeichnis
skins/sdq-vector/fonts/roboto
.
- In der
LocalSettings.php
folgende Aufrufe hinzufügen:
wfLoadSkin( 'SDQ-Vector' );
$wgDefaultSkin = "vector-2022";
wgVectorResponsive=true;
/skins
liegen, der Aufruf wfLoadSkin( 'Vector' );
muss jedoch entfernt oder auskommentiert werden.- Das Skin ist bis Version 1.35 nur für den klassischen Stil (Legacy Mode) angepasst, ab Version 1.39 für den modernen Stil (Vector 2022) angepasst.
Anpassungen (≥ 1.39)
Die folgenden Anpassungen können z.B. in MediaWiki:Common.css eingefügt werden.
Das moderne Vector-Layout von 2022 ist standardmäßig in der Breite beschränkt. Um die Vorlage auf Vollbreite umzustellen:
.mw-page-container, .mw-workspace-container, .mw-content-container, #mw-sidebar-checkbox:not(:checked) ~ .vector-sidebar-container-no-toc ~ .mw-content-container, .vector-sticky-header, .mw-article-toolbar-container {
max-width: unset;
}
Der Banner oben kann durch folgendes Schnipsel angepasstwerden, z.B. mit Motiven aus der KIT-Bildwelt:
.kit-banner {
background-image: url(images/KIT-Bildwelt-Faecher_02Ebene_Mobilitaet_1920x140.jpg);
background-color: #1aa0c3;
}
Anmeldung per KIT-Konto
Um sich per KIT-Konto am Wiki anmelden zu können, sind folgende Schritte nötig:
- Beim Dienst OpenID Connect des SCC (Matthias Bonn) anmelden.
- Es ist möglich, nur KIT-Konten die Anmeldung zu erlauben oder mehreren Einrichtungen aus der DFN-Föderation, z.B. andere Universitäten.
- Als URLs muss man die des Wikis nennen. Falls man URL-Rewriting verwendet, sind das zwei URLs, z.B. für dieses Wiki:
- Man erhält eine Client-ID und ein Secret, das man in den u.g. Konfigurationsdateien einfügen muss.
- Im Wiki die Erweiterungen PluggableAuth und OpenID Connect aus dem Master-Branch (Version ≥ 6.0) installieren.
- In der
LocalSettings.php
folgendes einfügen (###CLIENTID###
usw. durch die tatsächlichen Werte ersetzen):
# OpenID Authentification
wfLoadExtension( 'PluggableAuth' );
wfLoadExtension( 'OpenIDConnect' );
$wgPluggableAuth_Config[] = [
'plugin' => 'OpenIDConnect',
'buttonLabelMessage' => 'login-message-kit',
'data' => [
'providerURL' => 'https://oidc.scc.kit.edu/auth/realms/kit', # oder https://bwidm.scc.kit.edu/oidc/realms/bwidm für föderierten Login
'clientID' => '###CLIENTID###',
'clientsecret' => '###CLIENTSECRET###',
'scope' => ['openid', 'profile', 'email'],
'name' => 'KIT-Konto',
'icon' => '###URL_LOGO###'
]
];
$wgGroupPermissions['*']['autocreateaccount'] = true;
$wgPluggableAuth_EnableAutoLogin = true; # nur für private Wikis; Benutzer werden automatisch auf Anmeldeseite geleitet, falls sie nicht angemeldet sind
$wgPluggableAuth_EnableLocalLogin = true; # weiterhin lokale Benutzerkonten erlauben
$wgOpenIDConnect_UseRealNameAsUserName = true;
$wgOpenIDConnect_UseEmailNameAsUserName = true;
$wgOpenIDConnect_MigrateUsersByUserName = true;
# In Benutzernamen das '@'-Symbol und Doppelpunkte erlauben
$wgInvalidUsernameCharacters = '';
# CSS auf Login-Seite erlauben, um z.B. den KIT-Anmeldelink anders zu färben.
$wgAllowSiteCSSOnRestrictedPages = true;
Login-Knopf/-Text
- Auf der Anmeldeseite von Mediawiki sollte man einen Text einfügen, damit Benutzer wissen, dass sie zuerst den Knopf drücken müssen, bevor sie die Benutzerdaten eingeben. Dieser Text kann auf MediaWiki:Loginprompt verändert werden.
- Um den Text des Login-Knopfs zu erstellen, bitte die Seiten MediaWiki:Login-message-kit oder MediaWiki:Login-message-kit/de anlegen und bearbeiten.
- Zum Anmelden müssen die Benutzer dann auf den Knopf Mit KIT-Konto anmelden klicken, ohne zunächst Benutzerdaten einzugeben.
- Die Benutzer werden dann auf die Shibboleth-Seite des SCC weitergeleitet.
- Um dies auf der Anmeldeseite anzuzeigen, kann der Text MediaWiki:Loginprompt des Wikis geändert werden.
- Anmeldung mit lokalen Benutzerkonten des Wikis ist weiterhin möglich.
- Beispiel: Anmeldeseite dieses Wikis
Weiterhin wurde die MediaWiki:Common.css so angepasst, dass der KIT-Login-Knopf in KIT-Grün gefärbt ist und den KIT-Fächer anzeigt.
button#mw-input-pluggableauthlogin0 {
background-color: #00876C;
border-color: transparent;
color: white;
background-image: url(images/kit-faecher-icon-white.svg);
background-size: 1.2em;
background-repeat: no-repeat;
background-position-y: center;
background-position-x: .3em;
padding-left: calc(12px + 1.2em);
}
button#mw-input-pluggableauthlogin0:hover {
background-color: #007755;
border-color: #007755;
}
Benutzergruppen
- Mit der o.g. Konfiguration wird für jeden Benutzer, der sich mit KIT-Konto anmeldet, ein Benutzer im Wiki angelegt
- Dieser Benutzer ist in der Gruppe
user
und hat die entsprechenden Rechte - Es empfiehlt sich daher, der Gruppe
user
minimale Rechte zu erteilen und weitere Gruppen zu erstellen (z.B.mitarbeiter
,studierende
). - Die Benutzer müssen sich dann einmalig per KIT-Konto anmelden, und ein Wiki-Admin/-Bürokrat muss sie über Spezial:Benutzerrechte in die o.g. Gruppen hinzufügen
Klartextnamen für Benutzerkonten
- Standardmäßig werden die Benutzer mit ihrem SCC-Kürzel ab1234 angezeigt.
- Über die Erweiterung Realnames können diese in der UI durch den echten Namen ersetzt werden
- Wir verwenden
$wgRealnamesLinkStyle = "replace";
Semantic Mediawiki
Fehlende Einträge bei Queries mit Property Chains
Semantic Mediawiki bietet die Möglichkeit, Ketten von Eigenschaften in Anfragen zu verwenden. Dies führt jedoch in der Standardkonfiguration von Mediawiki dazu, dass Einträge in Ergebnistabellen fehlen können. Um korrekte Ergebnisse zu erhalten, muss man das folgende, experimentelle Feature abschalten:
$smwgExperimentalFeatures = $smwgExperimentalFeatures & ~SMW_QUERYRESULT_PREFETCH;
Quelle: [1]