Installation und Setup
Installation
Anforderungen
- Bitte beachten Sie die Lizenz Bedingungen für die Installation.
- Die Installation Voraussetzungen entsprechen dem vom MediaWiki, da SystemicConcensing eine Extension dieser Software ist.
- Nutzen Sie das vorbereitete Gesamtinstallationspakt, da diese noch weitere für die Funktion erforderliche Extensions und Batches enthält.
- Die Installation erfolgt dann wie bei MediaWiki beschrieben (Installation MediaWiki).
- Die Verwendete Datenbank muss eine Mysql oder MariaDb sein.
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.
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:
- Vorbereiten einer .ods Datei nach oben beschriebenen Schema
- Löschen der Tabellen federal_states, municipalities, nationalities, constituencies
- Importieren mit phpMyAdmin. Dabei
- Auf Reiter imporieren gehen
- Datei auswählen
- 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;