Zum Inhalt springen

Installation und Setup

Aus systemic consensing

Installation

Anforderungen

Konfiguration

Nach Installation und Erstkonfiguration haben Sie das LocalSettings.php erhalten. Dieses dient zur weiteren Konfiguration. Nach Änderung dieser Konfiguration muss das update script entweder über SSH oder über die 'mw-config' Seite durchgeführt werden.

Generell

Damit Bilder und Dateien ge-uploaded werden können:

$wgEnableUploads = true;

Um im Fehlerfall genaue Informationen zu erhalten:

$wgShowExceptionDetails = true;

Damit das Suchfeld für die Themen und Vorschläge funktioniert:

$wgNamespacesToBeSearchedDefault = [
	NS_MAIN => true,
    2502 => true,
    2504 =>true
];

Zusätzlich sinnvolle Erweiterungen:

wfLoadExtension( 'Linter' );
wfLoadExtension( 'VisualEditor' );
wfLoadExtension( 'CategoryTree' );
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'DiscussionTools' );

Die Extension für das systemische konsensieren:

wfLoadExtension( 'SystemicConsensus' );

Am Ende von LocalSettings.php muss noch Folgendes stehen um die Zugriffsrechte richtig zu steuern:

define( 'MW_FINAL_SETUP_CALLBACK', 'wfHandleScSetup' );
function wfHandleScSetup() {
	ScGeneralSettings::PerformSettings();
}

Cookiewarnung mit einbelden:

wfLoadExtension( 'CookieWarning' );
$wgCookieWarningEnabled =true;

Skins/Erscheinungsbild

Es muss das 'Vector' Skin verwendet werden. Diese Einstellungen haben sich bewehert:

wfLoadSkin( 'Vector' );
$wgDefaultSkin = 'vector-2022';
$wgAllowUserCss = true;
wfLoadExtension( 'MobileFrontend' );
$wgDefaultUserOptions['vector-main-menu-pinned'] = 1;
$wgDefaultUserOptions['vector-page-tools-pinned'] = 0;
$wgDefaultUserOptions['vector-toc-pinned'] = 0;
$wgDefaultUserOptions['vector-appearance-pinned'] = 0;

Das Optische Erscheinungsbild kann durch die css- und JS-Dateien im Wiki selbst gestalten werden. Dafür sind Benutzeroberflächenadministratoren Rechte erforderlich. Um eine Ordnungsgemäße Funktion zu gewehrleisten, sollten die Ersteinstellungen von der https://volksabstimmung.at/abstimmen übernommen werden (Leseberechtigung für alle ist dabei gegeben) Folgende Dateien sind dabei relevant:

  • /index.php?title=MediaWiki:Common.css : Grundlegendes Style
  • /index.php?title=MediaWiki:Minerva.css : Style für die mobile Ansicht
  • /index.php?title=MediaWiki:Minerva.js : Benötigtes JS für mobile Ansicht

Email einrichten

Für verschieden Services wie z.B.: SMS Registrierung oder Kommunikation zu eingereichten Themen wird ein E-Mail Service benötigt. Für SMTP Emails sieht das so aus:

$wgSMTP = [
    'host'     => 'xxxxxx', // could also be an IP address. Where the SMTP server is located. If using SSL or TLS, add the prefix "ssl://" or "tls://".
    'IDHost'   => '000.000.000.000',      // Generally this will be the domain name of your website (aka mywiki.org) or IP address
    'port'     => 587,                // Port to use when connecting to the SMTP server
    'auth'     => true,               // SMTP authentication
    'username' => 'xxxxxxxxxxx',     // Username to use for SMTP authentication 
    'password' => 'xxxxxxx'       // Password to use for SMTP authentication 
];
$wgAllowHTMLEmail =true;

Nutzer Anbindung

Sie haben derzeit zwei Möglichkeiten die Nutzerverwaltung durchzuführen. Intern über MediaWiki oder über eine Open ID Connect Schnittstelle. Beide Nutzerarten können auch zusammen betrieben werden. Dabei erfolgt die Auswertung der Bewertungen getrennt. Dadurch ist es möglich z.B. einen Leichten Zugang über eine SMS Registrierung zu machen und einen weiteren mit höheren Anforderungen mit Open ID Connect zu verwirklichen.

OPEN ID Connect einrichten

Für Open ID Connect werden die Extensions 'PluggableAuth' und 'OpenIDConnect' benötigt. Schalten sie '$wgPluggableAuth_EnableLocalLogin' nur auf 'true' wenn Sie das System einrichten, damit sie mit den regulären Mediawiki Nutzern noch arbeiten können. Im Produktivbetrieb sollte diese Option auf 'false' gestellt sein. Da das Einloggen nur über die Open ID Connect Schnittstelle dann erfolgen sollte. Die Administratoren müssen dabei im Vorfeld natürlich die entsprechenden Berechtigungen zugewiesen bekommen (unter: /index.php?title=Spezial%3ABenutzerrechte )

wfLoadExtension( 'PluggableAuth' );
wfLoadExtension( 'OpenIDConnect' );
$wgPluggableAuth_EnableLocalLogin = false;

$wgPluggableAuth_Config["XXXXXXXX"] = [
    'plugin' => 'OpenIDConnect',
    'data' => [
        'providerURL' => 'xxxxxx',
        'clientID' => 'xxxxxxx',
        'clientsecret' => 'xxxxxxx',
        'scope' => [ 'profile' ]
    ]
];

Im Mediawiki mit SMS Registrierung

Die SMS Registrierung kann eine Mehrfachanmeldung von Personen zwar nicht ausschließen, aber dennoch reduzieren. Das ist dadurch möglich, dass für viele Länder eine Registrierung der Telefonnummer vorgesehen ist und das die Anmeldung auf bestimmte Ländervorwahlen und auch Mobilfunkanbieter-Vorwahlen eingeschränkt werden kann. Dadurch soll starker Missbrauch vermieden werden. Diese Art der Registrierung führt dann zu einer eigenen Auswertung. Diese hat mehr informativen Charakter und kann dann in Kombination mit Open ID Connect betrieben werden. Beim Open ID Connect Zugang sollte dann jedoch auf höchste Datenintegrität wert gelegt werden, um aussagekräftige Ergebnisse zu erhalten.

Es ist zurzeit nur das smsTools.at API Protokoll implementiert. Soll ein anderes Service benutzt werden, muss das entsprechend im Source Code implementiert werden.

Setup:

wfLoadExtension( 'ScConfirmAccount' );
wfLoadExtension('ConfirmEdit/hCaptcha');

// SMS Einstellungen
$wgSmsSettings = [
        "useSMSregistration" => true,
        "smsServiceType" => 'smsToolsAt',
        "smsServiceClientId"  => "xxxxxxxxxxxx",
        "smsServiceClientSecret"  => "xxxxxxxxxxxx",
        "phoneCountryCodes"  =>  ["+43"],
        "phonePrefixWhiteList" => [664, 699, 664, 681, 680, 688, 688, 667, 699, 676, 650, 678, 677, 650, 644, 660, 665, 686, 690, 670],
        "smsVerifyKey" => "xxxxxxxxxxx"
];

// Captcha Einstellungen für die Anmeldung (damit Missbrauch durch automatisierte Tool erschwert wird):
$wgHCaptchaSiteKey = 'xxxxxxxxxxxxxxx';
$wgHCaptchaSecretKey = 'xxxxxxxxxxxxxx';

Zuordnen der Berechtigungen für die Bewertungen

Um die Bewertungsmöglichkeiten nach Nutzertyp (0..Open ID Connect, 1..SMS Registrierung) durchführen zu können wurden folgende Settings eingeführt:

  • mainType: Der Nurtzertyp an dem sich der Prozess ausrichtet
  • userTypes: Die verwendeten Nutzertypen
  • canTrend: Die Nutzertypen, bei dem ein Stimmungsbild gemacht werden darf
  • canSubVote: Die Nutzertypen, bei der eine Unterabstimmung gemacht werden darf
$wgSCuserTypes['mainType'] =0;
$wgSCuserTypes['userTypes'] =[0,1];
$wgSCuserTypes['canTrend'] =[0,1];
$wgSCuserTypes['canSubVote'] = [0];

Lokalisierungseinstellungen

Es können für einzelne Länder die Bundesländer, Gemeinden und Wahlkreise definiert werden. Dadurch entsteht die Möglichkeit auch für nur einzelne Bereiche eine Konsensierung durchzuführen.

Beispiel Österreich

Beispiel Deutschland

Dabei werden folgende Tabellen definiert:

  • ferderal_states: Bundesländer
  • municipalities: Gemeinden.
    • Hierbei müssen ferderal_state_id mit der federal_state_id in federal_states zusammenstimmen und der municipality_code muss mit der Kodierung z.B. Open ID Connect zusammenstimmen.
  • nationalities: Definition aller Staaten mit einer ID
  • constituencies: Wahlbezirke

Dabei müssen auch das Land in dem das Wiki verwendet wird und der LanguageCode angegeben werden

$wgSChomelandCode = 131; // homeland code for austria based on the nationalities table
$wgSC3digitCountryCode ='GER'; 

Das Übertragen der Lokalisationsdaten in der Datenbank erfolgt am besten durch:

  1. Vorbereiten einer .ods Datei nach oben beschriebenen Schema
  2. Löschen der Tabellen federal_states, municipalities, nationalities, constituencies
  3. Importieren mit phpMyAdmin. Dabei
    1. Auf Reiter imporieren gehen
    2. Datei auswählen
    3. Bei 'Formatspezifische Optionen' die Option 'Die erste Zeile der Datein enthäl die Spaltennamen' aktivieren

Nur Bewerten ohne Entscheidungen

Soll diese Software in einer Form verwendet werden, dass gar nicht der Entscheidungsprozess für die einzelnen Themen durchlaufen wird, sondern nur eine ständige Stimmungsbildbewertung durchgeführt werden soll, dann kann dies folgendes erfoldgen:

$wgSChomelandCode = 131; // homeland code for austria based on the nationalities table
$wgSCstateLessMode = true;

Nutzungsbedingungen

Um den Nutzer vor Nutzung über die Nutzungsbedingungen zu informieren und um die gesetzlichen Vorgaben hierzu zu erfüllen, kann eine Dafür vorgesehne Extension verwendet werden:

wfLoadExtension( 'UserAgreement' );
$wgUserAgreementWhiteList =['Datenschutz'];
$wgUserAgreement_SiteName = 'Haftungsausschluss';

Dabei ist unter $wgUserAgreementWhiteList die Seite unter der der Datenschutz und Nutzungsbedingungen gelistet werden.

Auf Plattformen teilen

Um das Teilen von Inhalten zu erleichtern kann die Extension 'Share' verwendet werden:

wfLoadExtension( 'Share' );
$wgShareEmail = true;
$wgShareTelegram = true;
$wgShareUseButtons = true;
$wgShareWhatsApp = true;

Mehrsprachensupport

Die Software unterstützt Mehrsprachigkeit. Dadurch kann ein Thema und die Vorschläge zu einem Thema in mehreren Sprachen aufbereitet werden um so einem größeren Teilnehmerkreis das mitmachen zu erleichtern

wfLoadExtension( 'LanguageSelector' );
$wgLanguageSelectorLanguages = [ 'it', 'de' ];
$wgMinervaAlwaysShowLanguageButton = false;