Adm:Einrichtung Wikis MW1.23
Dokumentation zur Bereitstellung von "SalzWiki", "SaltWiki" und "Repository"
Allgemeines[Bearbeiten]
In dieser Dokumentation werden die Installation und Konfiguration der Salzwikis (3 Wikisysteme) und der Erweiterungen (Extensions) beschrieben. Aktuell (seit 23.02.2016) ist Mediawiki Version 1.23.11 LTS installiert.
Ein Update kann durch Installation über die bestehende Version erfolgen oder durch Neuinstallation und Transfer von Konfigurationen und Daten. Um Altlasten in der neueren Version zu vermeiden empfiehlt sich Letzteres.
Das Repositorium-Wiki (deutsch) ist zusammen mit dem allgemeinen Salzwiki (deutsch) zu installieren, bevor die Konfigurationen in den Dateien "LocalSettings.php" geändert und Erweiterungen installiert werden, weil Zugriffe vom allgemeinen Salzwiki auf das Repositorium zu konfigurieren sind.
Sprachvarianten[Bearbeiten]
- Das deutsche SalzWiki ist einsprachig "Deutsch".
- Das englische Saltwiki ist einsprachig "English".
- Das Repositorium ist seit 2012 einsprachig "Englisch" (zuvor "Deutsch") und soll 2-sprachig "Deutsch/English" werden.
Zur Konfiguration der Standardspracheinstellung siehe unter Wiki-Konfiguration -> Spracheinstellungen
Apache-Webserver[Bearbeiten]
Konfiguration allgemein[Bearbeiten]
conf-Dateien mit und ohne XAMPP[Bearbeiten]
Verzeichnispfade anpassen von "C:/Apache24" zu "D:/xampp/apache"
- Datei "apache\conf\httpd.conf
- Verzeichnis "apache\conf\extra\": httpd-autoindex.conf, httpd-dav.conf, httpd-manual.conf, httpd-multilang-errordoc.conf, httpd-ssl.conf, httpd-vhosts.conf
- XAMPP-Konfiguration "apache\conf\extra\httpd-xampp.conf"
- phpMyAdmin-Konfiguration ohne XAMPP "apache\conf\extra\httpd-phpmyadmin.conf"
httpd.conf mit und ohne XAMPP[Bearbeiten]
Bei einer Installation von Apache, PHP, phpMyAdmin und MariaDB ohne XAMPP werden die Verwendung von PHP und die Berechtigungen nicht in der Datei "\conf\extra\httpd-xampp.conf" festgelegt, sondern in den Dateien "httpd.conf" und "\conf\extra\httpd-phpmyadmin.conf".
ServerRoot "D:/xampp/apache" Listen 80 ... LoadModule acces_compat_module modules/mod_access_compat.so LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule allowmethods_module modules/mod_allowmethods.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule dir_module modules/mod_dir.so LoadModule env_module modules/mod_env.so LoadModule include_module modules/mod_include.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule rewrite_module modules/mod_rewrite.so #LoadModule session_module modules/mod_session.so #LoadModule session_cookie_module modules/mod_session_cookie.so #LoadModule session_crypto_module modules/mod_session_crypto.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule ssl_module modules/mod_ssl.so LoadModule status_module modules/mod_status.so ... ServerAdmin webmaster@hornemann-institut.de ServerName localhost:80 ... DocumentRoot D:/xampp/htdocs ... <IfModule dir_module> DirectoryIndex index.php index.shtml index.html index.htm \ default.php default.shtml default.html default.htm \ home.php home.shtml home.html home.htm </IfModule> ... <Files ".ht*"> Require all denied </Files>
httpd.conf für PHP ohne XAMPP[Bearbeiten]
Bei einer Installation von Apache, PHP, phpMyAdmin und MariaDB ohne XAMPP werden die Verwendung von PHP und die Berechtigungen nicht in der Datei "\conf\extra\httpd-xampp.conf" festgelegt, sondern in den Dateien "httpd.conf" und "\conf\extra\httpd-phpmyadmin.conf".
... LoadModule php5_module D:/xampp/php/php5apache2_4.dll <IfModule php5_module> AddHandler application/x-httpd-php .php PHPIniDir "D:/xampp/php" </IfModule> ... <IfModule mime_module> ... # For PHP AddType text/html .php </IfModule> ... # phpMyAdmin settings Include "conf/extra/httpd-phpmyadmin.conf" ...
httpd.conf für XAMPP[Bearbeiten]
Bei einer Installation mit XAMPP werden die Verwendung von PHP und die Berechtigungen in der Datei "\conf\extra\httpd-xampp.conf" festgelegt und in der Datei "httpd.conf" in Z.250 hinzugefügt.
... # XAMPP settings Include "conf/extra/httpd-xampp.conf" ...
Verzeichnisauflistungen verhindern[Bearbeiten]
Um Auflistungen von Dateien und Verzeichnissen im Browser zu verhindern, ist die Angabe "-Indexes" in der Konfigurationsdatei "apache\conf\httpd.conf" Z.227ff und Z.246ff erforderlich:
<Directory /> Options -Indexes +FollowSymLinks AllowOverride none Require all denied </Directory> ... <Directory "/xampp/htdocs"> Options -Indexes +FollowSymLinks +Includes -ExecCGI AllowOverride All Require all granted </Directory>
Verzeichniszugriff per Authentifizierung[Bearbeiten]
Um den Zugriff auf bestimmte Verzeichnisse per Browser nur für bestimmte Anmeldenamen mit Passwort zu erlauben, sind Angaben in folgenden Konfigurationsdateien erforderlich:
- "xampp\apache\conf\httpd.conf"
- "xampp\apache\conf\extra\httpd-default.conf"
- für phpMyAdmin ohne XAMPP
- "xampp\phpMyAdmin\.htaccess"
- "xampp\security\phpmyadmin.htpasswd"
- für XAMPP
- "xampp\htdocs\dashboard\.htaccess"
- "xampp\security\dashboard.htpasswd"
Datei "httpd.conf"[Bearbeiten]
Z.288ff und Z.520f
<Files ".ht*"> Require all denied <Files> ... # XAMPP settings Include "conf/extra/httpd-xampp.conf" # phpMyAdmin settings Include "conf/extra/httpd-phpmyadmin.conf"
Datei "httpd-default.conf"[Bearbeiten]
Z.45
AccessFileName .htaccess
Datei ".htaccess" ohne XAMPP[Bearbeiten]
"\xampp\phpMyAdmin\.htaccess"
AuthType Basic AuthName "phpMyAdmin" AuthUserFile "../security/phpmyadmin.htpasswd" Require valid-user
Datei ".htaccess" mit XAMPP[Bearbeiten]
"\xampp\dashboard\.htaccess"
AuthType Basic AuthName "XAMPP Dashboard" AuthUserFile "../security/dashboard.htpasswd" Require valid-user
Datei "htpasswd"[Bearbeiten]
- ohne XAMPP: "\xampp\security\phpmyadmin.htpasswd"
- mit XAMPP "\xampp\security\dashboard.htpasswd"
username:password
XAMPP absichern[Bearbeiten]
Verzeichniszugriff für "dashboard" einrichten[Bearbeiten]
Um das Verzeichnis "dashboard", das als localhost-Startverzeichnis im Browser geladen wird, vor öffentlichen Zugriffen zu schützen, werden 2 Dateien angelegt:
- "xampp\htdocs\dashboard\.htaccess"
- "xampp\security\dashboard.htpasswd"
Datei ".htaccess" mit "/" statt "\" in der Pfadangabe unter Windows wie bei Linux:
AuthType Basic AuthName "XAMPP Dashboard" AuthUserFile "../security/dashboard.htpasswd" Require valid-user
Datei "dashboard.htpasswd", wobei "username" und "passwort" hier nur exemplarisch angegeben sind:
username:passwort
Verzeichniszugriff für bestimmte Rechner-IPs[Bearbeiten]
Das XAMPP-Sicherheitskonzept ab XAMPP 1.8 erlaubt den Zugriff per Browser auf bestimmte Verzeichnisse wie "phpmyadmin" nur noch vom Server aus ("Require local").
Um von einem Rechner aus, der sich in einem bestimmten Netz befindet oder per VPN mit einer bestimmten IP verbunden ist, per Browser die Verzeichnisse nicht nur mit "localhost" aufrufen zu können, müssen zusätzliche Angaben mit "Require ip ..." erfolgen:
Datei "xampp\apache\conf\extra\httpd-xampp.conf" Z.108ff
# New XAMPP security concept <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))"> Require local Require ip 193.175.110 Require ip 172.16.100.2 </LocationMatch>
Suchmaschinen[Bearbeiten]
robots.txt[Bearbeiten]
Damit Test-Wikis während der Erprobungsphase, das Repositorium und verschiedene Wiki-Unterverzeichnisse nicht von Suchmaschinen durchsucht werden, wird eine Datei "robots.txt" im Verzeichnis "htdocs" gespeichert.
Damit kein Robot irgendetwas liest:
User-agent: * Disallow:
Angaben nach dem Upgrade auf MW1.23 am 26.02.2016, damit Robots nur das jeweilige Hauptverzeichnis von SalzWiki und SaltWiki und sonst nichts durchsuchen:
# robots.txt für Salzwiki und Saltwiki, damit Robots weder Unterverzeichnisse noch das Repositorium noch Test-Wikis durchsuchen User-agent: * Disallow:/dashboard/ Disallow:/webalizer/ Disallow:/xampp/ Disallow:/salzwiki/cache/ Disallow:/salzwiki/docs/ Disallow:/salzwiki/extensions/ Disallow:/salzwiki/images/ Disallow:/salzwiki/includes/ Disallow:/salzwiki/languages/ Disallow:/salzwiki/maintenance/ Disallow:/salzwiki/mw-config/ Disallow:/salzwiki/resources/ Disallow:/salzwiki/serialized/ Disallow:/salzwiki/skins/ Disallow:/salzwiki/tests/ Disallow:/saltwiki/cache/ Disallow:/saltwiki/docs/ Disallow:/saltwiki/extensions/ Disallow:/saltwiki/images/ Disallow:/saltwiki/includes/ Disallow:/saltwiki/languages/ Disallow:/saltwiki/maintenance/ Disallow:/saltwiki/mw-config/ Disallow:/saltwiki/resources/ Disallow:/saltwiki/serialized/ Disallow:/saltwiki/skins/ Disallow:/saltwiki/tests/ Disallow:/repository/ Disallow:/salzwiki_draft/ Disallow:/saltwiki_draft/ Disallow:/repository_draft/ Disallow:/salz_salt_repo/ Disallow:/mediawiki_1_23_11/
Im jeweiligen Wiki-Hauptverzeichnis:
# Robots sollen keine Unterverzeichnisse durchsuchen User-agent: * Disallow:/cache/ Disallow:/docs/ Disallow:/extensions/ Disallow:/images/ Disallow:/includes/ Disallow:/languages/ Disallow:/maintenance/ Disallow:/mw-config/ Disallow:/resources/ Disallow:/serialized/ Disallow:/skins/ Disallow:/tests/
Setzen von Keywords für den Head-Bereich eines Wikis[Bearbeiten]
Hierzu ist in der Datei "LocalSettings.php" die Funktion "efSetKeywords()" mit den entsprechenden Keywords einzufügen. Hier am Beispiel von SaltWiki. Diese sind jedoch nur bei Zugang über die IP-Adresse und nicht über den Frame von 1&1 sichtbar. Damit Keywords über den Frame sichtbar sind, sind diese für unseren Zugang bei 1&1 bei der Einrichtung der Website mit anzugeben. Dasselbe gilt für "description".
##Setzen von keywords function efSetKeywords(){ global $wgOut; $wgOut->addKeyword( 'salt' ); $wgOut->addKeyword( 'desalination' ); $wgOut->addKeyword( 'salt decay' ); $wgOut->addKeyword( 'cultural heritage' ); $wgOut->addKeyword( 'salt damage' ); $wgOut->addKeyword( 'conservation' ); }
E-Mail-Versand[Bearbeiten]
Die HAWK-Outlook-Adressen können nicht für den Versand per SMTP als Absender verwendet werden, sondern nur als Zieladresse.
Die Datei "localSettings.php" wurde in den Verzeichnissen
- salzwiki/
- repository/
- saltwiki/
folgendermaßen für E-Mail-Versand angepasst:
Salzwiki/Repositorium
## E-Mail-Versand angepasst 15.01.2016 G. Werner $wgEmergencyContact = "salzwiki.fb@hawk-hhg.de"; $wgPasswordSender = "service@salzwiki.de"; $wgSMTP = array( 'host' => "smtp.1und1.de", 'IDHost' => "1und1.de", 'port' => "587", 'auth' => true, 'username' => "service@salzwiki.de", 'password' => "********" ); $wgEnotifUserTalk = true; # UPO $wgEnotifWatchlist = true; # UPO $wgEmailAuthentication = true;
Saltwiki
## E-Mail-Versand angepasst 15.01.2016 G. Werner $wgEmergencyContact = "saltwiki.fb@hawk-hhg.de"; $wgPasswordSender = "service@saltwiki.net"; $wgSMTP = array( 'host' => "smtp.1und1.de", 'IDHost' => "1und1.de", 'port' => "587", 'auth' => true, 'username' => "service@saltwiki.net", 'password' => "********" ); $wgEnotifUserTalk = true; # UPO $wgEnotifWatchlist = true; # UPO $wgEmailAuthentication = true;
Externe Links[Bearbeiten]
Damit externe Links in einem neuen Fenster geöffnet werden, ist in die "localsettings.php" einzufügen:
##Externe links erscheinen in einem neuen Fenster $wgExternalLinkTarget = '_blank';
Datenbank-Fehler[Bearbeiten]
Falls ein Hinweis "A database query error has occured" angezeigt wird, kann man sich weitere Angaben anzeigen lassen, indem man in der Datei "LocalSettings.php" unten einfügt:
$wgShowSQLErrors = 1;
Versionshinweise[Bearbeiten]
Betriebssystem und Wiki-Serversysteme[Bearbeiten]
- Beim Testserver mit Windows Server 2012R2 Datacenter wird auf XAMPP verzichtet und werden folgende Einzelsysteme eingerichtet:
- Apache 2.4.20 für Windows und VC11 von http://www.apachelounge.com, alternativ von http://www.apachehaus.com im Verzeichnis "D:\xampp\apache\"
- MariaDB 10.0.17 Server mit libmysql - mysqlnd5.0.11dev Client von http://ftp.hosteurope.de/mirror/archive.mariadb.org/ oder https://downloads.mariadb.org/mariadb/+releases/ bzw. http://archive.mariadb.org/mariadb-10.0.17/
- PHP 5.6.14 für Windows und VC11 von http://windows.php.net/downloads/releases/archives/ im Verzeichnis "D:\xampp\php\"
- phpMyAdmin 4.5.0.2
- Beim Produktivserver mit Windows Server 2008 SP2 (Standard Edition) wird XAMPP 5.6.14.0 verwendet
Datenbanksystem[Bearbeiten]
- MySQL-Upgrade von Version 5.1 zu Version 5.6 ist nur möglich über Version 5.5
- XAMPP hat zuletzt in Version 1.8.2-6 die MySQL-Version 5.5.x, danach die Version 5.6
- XAMPP hat bis Version 5.5.28 bzw. 5.6.12 als Datenbanksystem MySQL, danach MariaDB
- XAMPP hat in Version 5.6.14.0 die MariaDB-Version 10.0.x, aber in Version 5.6.14.3 die MariaDB-Version 10.1.x
XAMPP[Bearbeiten]
XAMPP 5.6.14.3[Bearbeiten]
- PHP 5.6.14 32Bit
- VC11 MS Visual C++ 2012 redistributable x86 Update 4
- MariaDB 10.1.8 Win32 (Server), libmysql - mysqlnd 5.0.11dev (Client)
- Apache 2.4.17 Win32
- phpMyAdmin 4.5.1, Zeichensatz MySQL-Verbindung utf8mb4_unicode_ci
- OpenSSL 1.0.2d
- XAMPP Control Panel 3.2.2
XAMPP 5.5.30/5.6.14.0[Bearbeiten]
- PHP 5.5.30/5.6.14 32Bit + Pear, MS VC11 x86 32Bit ThreadSafe
- VC11 MS Visual C++ 2012 redistributable x86 Update 4
- MariaDB 10.0.17 Win32 (Server), libmysql - mysqlnd 5.0.11dev (Client)
- Apache 2.4.17 Win32
- phpMyAdmin 4.5.0.2, Zeichensatz MySQL-Verbindung utf8mb4_unicode_ci
- OpenSSL 1.0.2d
- XAMPP Control Panel 3.2.1
XAMPP 5.5.28/5.6.12[Bearbeiten]
- PHP 5.5.28/5.6.12 + Pear, MS VC11 x86 32Bit ThreadSafe
- MySQL 5.6.26-Community
- Apache 2.4.16 Win32
- phpMyAdmin 4.4.14
- openSSL 1.0.1i
XAMPP 1.8.2-6[Bearbeiten]
- PHP 5.4.31, MS VC9
- MySQL 5.5.32-Community
- Apache 2.4.4 Win32
- phpMyAdmin 4.0.4
- openSSL 0.9.8y mit OpenSSL-Bug "Heartbleed"
XAMPP 1.8.0[Bearbeiten]
Neues Sicherheitskonzept: Zugriff per Browser auf Verzeichnisse wie "phpmyadmin" nur noch direkt vom Server aus ("Require local")
XAMPP 1.7.1[Bearbeiten]
- PHP 5.2.9, MS Visual C++ 2008 redistributable x86 9.0...
- MySQL 5.1.33-Community Client 5.0.51a
- Apache 2.2.11 Win32
- phpMyAdmin 3.1.3.1
MediaWiki[Bearbeiten]
MW Version 1.25[Bearbeiten]
- Skins
- "Autodiscovery mechanism" entfällt
- Die Skin-Datei "MonoBookSW.php" anpassen an die neue Version, siehe https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery#Migration_guide
- Datei "LocalSettings.php" anpassen
- $wgDisableCounters entfällt; für Seitenbesuchszahlen ist die Erweiteerung "HitCounters" erforderlich
- Skin-Registrierung
- Erweiterungen-Registrierung
Skin-Registrierung
wfLoadSkin("MonoBook"); //statt require_once "$IP/skins/MonoBook.php";
Erweiterungen-Registrierung
wfLoadExtension("Cite"); //statt require_once "$IP/extensions/Cite/Cite.php";
MW Version 1.24[Bearbeiten]
- Logo-Speicherort geändert von "skins/common/images/" zu "resources/assets/" bzw. "images/..."
- Bisher mitgelieferte Skins sind nicht mehr enthalten; die jeweiligenSkins-php-Dateien und Ordner sind gegebenenfalls aus dem Verzeichnis "skins/" zu entfernen:
- CologneBlue.php, cologneblue
- Modern.php, modern
- MonoBook.php, monobook
- Vector.php, vector
- Datei "LocalSettings.php" eventuell an neue Skin-Registrierung anpassen
require_once "$IP/skins/MonoBookSW.php"; //statt $wgDefaultSkin = "monobooksw";
- Nicht mehr unterstützt wird "register_globals => Bei PHP vor Version 5.4 in der Datei "php.ini" angeben "register_globals=Off"
- Erweiterung "OggHandler" wird nicht mehr unterstützt
MW Version 1.23[Bearbeiten]
- Skins werden anders eingebunden
- Das jeweilige Skin-Unterverzeichnis sollte wie die php-Datei die Groß-Klein-Schreibweise berücksichtigen ("monobooksw/" => "MonoBookSW/")
- Kleinbuchstaben bei $wgDefaultSkin = "monobooksw"; in der Datei "LocalSettings.php"
- Die Skin-php-Datei, z. B. "MonoBookSW.php", ist nicht mehr im Verzeichnis "skins/", sondern im Unterverzeichnis, z. B. "skins/MonoBookSW/"
- Die Skin-Datei "MonoBookSW.php" anpassen an die neue Version, siehe www.mediawiki.org/wiki/Manual:Skin_autodiscovery#Migration_guide
- "Autodiscovery mechanism" für "Core Skins" gilt als "deprecated" und schreibt Warnungen in die Log-Dateien. Folgende Dateien und Ordner sind gegebenenfalls aus dem Verzeichnis "skins/" zu entfernen:
- Chick.php, chick
- Nostalgia.php, nostalgia
- Simple.php, simple
- Standard.php, standard
- "The info page action, which provides useful statistics for any given page, has been improved and turned on by default."
- Bei "Spezialseiten" wird die "ISBN-Suche" unter "Daten und Werkzeuge" statt unter "Andere Spezialseiten" angezeigt.
- $wgPasswordSenderName wurde abgeschafft; der Name für die E-Mail-Adresse von $wgPasswordSender kann nur noch in der Seite "MediaWiki:Emailsender" angepasst werden
MW Version 1.21[Bearbeiten]
- implementierte Erweiterungen
- Cite
- ImageMap
- TitleBlacklist
- SpamBlacklist
- Interwiki bzw. SpecialInterwiki u. a.
- Änderungen
- Die Funktion "wfLoadExtensionMessages()" existiert nicht mehr, wird aber von BibManager REL1_23 verwendet und muss auskommentiert werden
MW Version 1.20[Bearbeiten]
- PHP 5.3.2 oder neuer ist erforderlich
- Erweiterungen, die Elemente der neuen Version voraussetzen
- ApprovedRevs
- Cite u. a.
MW Version 1.19[Bearbeiten]
- $wgEnableCreativeCommonsRdf für "LocalSettings.php" wird nicht mehr unterstützt; stattdessen gibt es eine Erweiterung "CreativeCommonsRdf", die Beta-Status hat (2015-09-21).
- In der revision-Tabelle ist eine neue Spalte "rev_sha1" hinzugekommen, die in der alten Verison vor einem Update hinzugefügt werden muss; siehe FAQ Punkt 3.2, Manual Revision_table und http://www.mediawiki.org/wiki/Thread:Project:Support_desk/upgrade_problems:_1.11_--_1.21:
ALTER TABLE /*$wgDBprefix*/revision ADD rev_sha1 varbinary(32) NOT NULL default '';
MW Version 1.18[Bearbeiten]
- MySQL 5.0.2 oder neuer ist erforderlich
- mehr Genderneutralität bei Sprachdateien
- implementierte Erweiterungen:
- ConfirmEdit
- ParserFunctions mit Control Structure Functions ohne Loops
- RenameUser
- Nuke u. a.
- Neue Erweiterung "Math", bisher Datei "\includes\math.php", siehe https://www.mediawiki.org/wiki/Texvc/de, verwendet "texvc", welches 3 Zusatzprogramme benötigt:
- ocaml
- LaTeX
- dvipng
MW Version 1.17[Bearbeiten]
- PHP 5.2.3 oder neuer ist erforderlich
- neuer Installationsvorgang
- Kategoriensortierung geändert
- Interwiki-Verweise werden in gesonderten Tabellen gespeichert
- Standard-Skin "vector" statt "monobook"
- neue Variable $wgPasswordSenderName (existiert nur bis Version 1.22)
SalzWiki[Bearbeiten]
Datenbank mittels XAMPP und phpmyAdmin anlegen[Bearbeiten]
Seit der Version 1.16.1 kann die jeweilige Datenbank statt mit phpMyAdmin während der Installation mittels Browser (/[wikiverzeichnis]/config/index.php) angelegt werden, sofern der Superuser-Account (Datenbank-Hauptadministrator) bekannt ist:
salzwiki[Bearbeiten]
Database name: salzwiki Benutzer: SW_sawi Host: localhost Global Rechte: all privileges Grant: ja database table prefix: sw_
repository[Bearbeiten]
Database name: repository Benutzer: SW_repo Host: localhost Global Rechte: all privileges Grant: ja database table prefix: sr_
saltwiki[Bearbeiten]
Database name: saltwiki Benutzer: SW_sawi Host: localhost Global Rechte: all privileges Grant: ja database table prefix: sw_
Mediawiki Installieren[Bearbeiten]
- Für die jeweiligen Wikis einen entsprechenden Wiki- und Verzeichnisnamen festlegen: "salzwiki", "repository", "saltwiki".
- Die Dateien und Verzeichnisse aus der tar.gz-Datei in das jeweilige Wiki-Verzeichnis entpacken:
"D:\xampp\htdocs\[wikiverzeichnisname]\"
- Nach Installationsanweisung das jeweilige Wiki installieren; hierzu im Browser die Adresse "D:\xampp\htdocs\[wikiverzeichnisname]\config\index.php" aufrufen.
- Contact e-mail: service@salzwiki.hawk-hhg.de
- Language: Je nach Wiki Deutsch oder English
- Copyright/license: Creative Commons
- Admin username: Hornemann
- Object caching: No
- E-Mail
- E-mail features: enabled
- User-to-user e-mail: enabled
- E-mail notification: enabled for discussion pages nad watchlists
- E-mail address authentication: enabled
- Datenbank
- Database type: MySQL
- Database host: localhost
- Database name: [wikiname]
- DB username: hschwarz (besser: hi_wiki_1)
- Superuser account: yes
- Superuser name: root
- Database table prefix: sw_ (SalzWiki, Saltwiki) bzw. sr_ (Repositorium)
- Storage Engine: InnoDB
- Database character set: MySQL 4.1/5.0 binary
Lizenz für das jeweilige Wiki[Bearbeiten]
Die Lizenzkonfiguration in der Datei "LocalSettings.php" bearbeiten:
- Salzwiki
## For attaching licensing metadata to pages, and displaying an ## appropriate copyright notice / icon. GNU Free Documentation ## License and Creative Commons licenses are supported so far. $wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright ## Deutsch $wgRightsUrl = "http://creativecommons.org/licenses/by-nc-sa/3.0/de/"; $wgRightsText = "Namensnennung-Nicht-kommerziell-Weitergabe unter gleichen Bedingungen 3.0 Deutschland"; // bei MW 1.23 $wgRightsIcon = "{$wgStylePath}/common/images/cc-by-nc-sa.png"; # $wgRightsCode = "[license_code]"; # Not yet used
- Saltwiki und Repositorium
## For attaching licensing metadata to pages, and displaying an ## appropriate copyright notice / icon. GNU Free Documentation ## License and Creative Commons licenses are supported so far. $wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright ## English und Repositorium $wgRightsUrl = "http://creativecommons.org/licenses/by-nc-sa/3.0/"; $wgRightsText = "Attribution-Noncommercial-Share Alike 3.0 Unported"; // bei MW 1.23 $wgRightsIcon = "{$wgStylePath}/common/images/cc-by-nc-sa.png"; # $wgRightsCode = "[license_code]"; # Not yet used
Style/Skin[Bearbeiten]
MW 1.23 LTS MonoBook[Bearbeiten]
Das Design für das Salzwiki basiert wegen der Hintergrundgrafik und der links angeordneten Footer-Icons weiter auf dem Stil (Skin) "Monobook", obwohl der Stil seit MW 1.17 von "Vector" als Standardstil abgelöst wurde. Dazu wird die Original-Datei "MonoBook.php" wegen der veralteten Auto-discovery-Funktion, die "Monobook" bei MW 1.23 LTS noch hat, als Kopie namens "MonoBook_Original.php" im Verzeichnis "skins\monobook\" gespeichert.
In der Datei "LocalSettings.php" heißt die entsprechende Zuweisung dann
$wgDefaultSkin = "monobook";.
Zusätzlich sind darunter folgende Zeilen erforderlich:
// CC-Icon rechts unten für "MonoBook" angepasst 2015-09-28: $wgFooterIcon_copyright['copyright'] = array( "src" => $wgRightsIcon, // Icon "url" => $wgRightsUrl, "alt" => $wgRightsText, //"height" => "", // Icon-Höhe //"width" => "" // Icon-Breite ); unset($wgFooterIcons['copyright']); $wgFooterIcons_r['poweredby'] = array_merge($wgFooterIcon_copyright,$wgFooterIcons['poweredby']); // für "MonoBook" und "Vector" ergänzt ## FOOTER-Icons links, wobei der erste Schlüssel zu <li id="footer-...ico"> verarbeitet wird $wgFooterIcons_l['copyright']['hornemanninstitut'] = array( "src" => "$wgScriptPath/images/common/HI.png", // Icon "url" => "http://www.hornemann-institut.de", "alt" => "Hornemann Institut", //"height" => "", // Icon-Höhe //"width" => "" // Icon-Breite ); $wgFooterIcons_l['copyright']['hawk'] = array( "src" => "$wgScriptPath/images/common/hawk.png", // Icon "url" => "http://www.hawk-hhg.de", "alt" => "HAWK HHG", //"height" => "", // Icon-Höhe //"width" => "" // Icon-Breite ); $wgFooterIcons_l['copyright']['dfg'] = array( "src" => "$wgScriptPath/images/common/DFG.jpg", // Icon "url" => "http://www.dfg.de", "alt" => "DFG", //"height" => "", // Icon-Höhe //"width" => "" // Icon-Breite ); // für "Vector" #$wgFooterIcons_r = $wgFooterIcons; unset($wgFooterIcons); $wgFooterIcons = array_merge($wgFooterIcons_l, $wgFooterIcons_r);
MW 1.23 LTS Vector[Bearbeiten]
Bei der Verwendung von "Vector" wird die Original-Datei "skins\Vector.php" wegen der veralteten Auto-discovery-Funktion, die "Vector" bei MW 1.23 LTS noch hat, als Kopie namens "Vector_Original.php" im Verzeichnis "skins\vector\" gespeichert.
In der Datei "LocalSettings.php" heißt die entsprechende Zuweisung dann
$wgDefaultSkin = "vector";.
Im Verzeichnis "vector/components/footer.less" wird für die eigenen Icons im Footer unten links die Definition von "#footer-icons" kopiert und umbenannt in "#footer-icons-left" und folgendermaßen angepasst:
/* SalzWiki eingefügt 2015-09-28 */ #footer-icons-left { float: left; li { float: left; margin-right: 0.5em; line-height: 2em; text-align: left; } }
Im Verzeichnis "vector/images/" wird die Datei "headbg.jpg" für ein eigenes Hintergrundbild eingefügt.
Im Verzeichnis "vector/components/common.less" wird für das Hintergrundbild "body" folgendermaßen angepasst:
body { /* SalzWiki eingefügt 2015-09-28 */ background: #F9F9F4 url("headbg.jpg"); /*background-color: @menu-background-color*/ }
HAWK-Design[Bearbeiten]
Für Anpassungen der StyleSheets an das HAWK-Design siehe Adm:HAWK-Design.
Logo[Bearbeiten]
Die Datei für das Logo links oben ist hochzuladen und in der Datei "LocalSettings.php" zuzuweisen:
- Salzwiki
##Logo MW1.23 $wgLogo = $wgScriptPath."/images/common/Logo_Salz.png";
- Saltwiki
##Logo MW1.23 $wgLogo = $wgScriptPath."/images/common/Logo_Salt.png";
- Repositorium
##Logo MW1.23 $wgLogo = $wgScriptPath."/images/common/Logo_Repo.png";
[Bearbeiten]
[Bearbeiten]
- Grafiken wie die Logos "HI.png", "HAWK.png" und
"DFG.jpg""SIK.png" im Verzeichnis "[wikiverzeichnisname]/images/common/" speichern. - LocalSettings.php anpassen
- MonoBook.php anpassen (Wiki-Code)
LocalSettings.php anpassen[Bearbeiten]
Änderungen in der Datei "LocalSettings.php" "MonoBookSW.php": Zeile 141ff:
Die Anzeige der Texte von "lastmodified", "Anzahl der Seitenabrufe" und "CC-Lizenz" kann wie folgt unterbunden werden. Hierbei wird "Anzahl der Seitenabrufe" in der Datei "LocalSettings.php" festgelegt:
$wgDisableCounters = true;
#### Beginn FOOTER ab Version MW1.23
// CC-Icon rechts unten für "MonoBook" angepasst 2015-09-28:
$wgFooterIcon_copyright['copyright'] = array(
"src" => $wgRightsIcon, // Icon
"url" => $wgRightsUrl,
"alt" => $wgRightsText,
//"height" => "", // Icon-Höhe
//"width" => "" // Icon-Breite
);
unset($wgFooterIcons['copyright']);
$wgFooterIcons_r['poweredby'] = array_merge($wgFooterIcon_copyright,$wgFooterIcons['poweredby']);
// für "MonoBook" und "Vector" ergänzt
## FOOTER-Icons links, wobei der erste Schlüssel zu <li id="footer-...ico"> verarbeitet wird
$wgFooterIcons_l['copyright']['hornemanninstitut'] = array(
"src" => "$wgScriptPath/images/common/HI.png", // Icon
"url" => "http://www.hornemann-institut.de",
"alt" => "Hornemann Institut",
//"height" => "", // Icon-Höhe
//"width" => "" // Icon-Breite
);
$wgFooterIcons_l['copyright']['hawk'] = array(
"src" => "$wgScriptPath/images/common/hawk.png", // Icon
"url" => "http://www.hawk-hhg.de",
"alt" => "HAWK HHG",
//"height" => "", // Icon-Höhe
//"width" => "" // Icon-Breite
);
$wgFooterIcons_l['copyright']['sik'] = array(
"src" => "$wgScriptPath/images/common/SIK.png", // Icon
"url" => "http://http://www.salze-kulturgut.de",
"alt" => "SIK",
"height" => "30px", // Icon-Höhe
"width" => "30px" // Icon-Breite
);
// für "Vector"
#$wgFooterIcons_r = $wgFooterIcons;
unset($wgFooterIcons);
$wgFooterIcons = array_merge($wgFooterIcons_l, $wgFooterIcons_r);
#### Ende FOOTER ab Version MW1.23
MonoBook.php anpassen (Wiki-Code)[Bearbeiten]
Da die Datei "[wikiname]\skins\MonoBook.php" bearbeitet werden muss, wird im Verzeichnis "[wikiname]\skins\monobook" eine Kopie der Datei als "MonoBook_original.php" gespeichert und von der geänderten Datei als Backup für Wiki-Updates ebenfalls im Verzeichnis "\monobook" eine Kopie als "MonoBookSW.php" gespeichert.
In der Datei "MonoBook.php" werden die Texte von "lastmodified" und "CC-Lizenz" sowie der Verweis zu "Über" bzw. "About" durch eigenen Code unter Zeile 154 herausgefiltert:
<?php foreach ( $validFooterLinks as $aLink ) { ?> <?php if($aLink!=="lastmod" && $aLink!=="copyright" && $aLink!=="about"){ /*eingefügt für HAWK HHG 2015-12-07 u. 2016-03-29*/ ?> <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?> <?php } /*eingefügt für HAWK HHG 2015-12-07*/ } ?>
Original:
<?php foreach ( $validFooterLinks as $aLink ) { ?> <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?> <?php } ?>
CSS-Anpassungen als Alternative[Bearbeiten]
Alternativ kann in der Datei "\skins\monobook\main.css" unterhalb der Angaben für den Footerbereich in Zeile 550 die Anzeige verhindert werden, wobei der HTML-Quelltext für die Listenelemente aber trotzdem erzeugt wird:
/* eingefügt für HAWK HHG 2015-12-07 */
#f-list #lastmod, #f-list #copyright {
display:none;
}
[Bearbeiten]
Die Variable $wgFooterIcons kann nur für Icons rechts unten im Footer erweitert werden. Der Footer-Container besteht aus folgenden Bereichen:
- ul id="footer-info" (oberer Footer-Bereich)
* li id="footer-info-lastmod" * li id="footer-info-copyright"
- ul id="footer-places" (unterer Footer-Bereich links)
* ul id="footer-places-privacy" * ul id="footer-places-about" * ul id="footer-places-disclaimer"
- ul id="footer-icons" (unterer Footer-Bereich rechts)
* ul id="footer-copyrightico" * ul id="footer-poweredbyico"
$wgHooks entfällt[Bearbeiten]
Nicht mehr erforderlich: Anpassungen mit $wgHooks in der Datei "LocalSettings.php" für neue Footer-Verweise, siehe auch https://www.mediawiki.org/wiki/Manual:Footer:
$wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'lfDatenschutz'; function lfDatenschutz($sk, &$tpl){ $tpl->set('Datenschutz', $sk->footerLink('Datenschutz', 'Salzwiki:Datenschutz')); $tpl->data['footerlinks']['places'][] = 'Datenschutz'; return true; } $wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'lfProjektverbund'; function lfProjektverbund($sk, &$tpl){ $tpl->set('Projektverbund', $sk->footerLink('Projektverbund', 'Projektverbund')); $tpl->data['footerlinks']['places'][] = 'Projektverbund'; return true; } $wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'lfImpressum'; function lfImpressum($sk, &$tpl){ $tpl->set('Impressum', $sk->footerLink('Impressum', 'Salzwiki:Impressum')); $tpl->data['footerlinks']['places'][] = 'Impressum'; return true; }
"Forschungsverbund"/"Projektverbund" statt "Über [Wiki-Name]"[Bearbeiten]
Damit im "Footer" statt auf die Seite "Über SalzWiki" auf die Seite "Forschungsverbund" "Projektverbund" bzw. "Research Network" verlinkt wird, sind Änderungen an "Aboutsite" und "Aboutpage" vorzunehmen. Hierzu entweder über "Spezialseiten->Systemdaten und Werkzeuge->MediaWiki-Systemtexte" gehen oder folgende Adressen eingeben:
"[Wiki-Verzeichnis]/index.php?title=MediaWiki:Aboutsite/de[-formal|-at|-ch]&action=edit" bzw. "[Wiki-Verzeichnis]/index.php?title=MediaWiki:Aboutpage/de&action=edit"
- Link-Text in "aboutsite" bearbeiten:
Projektverbund <!--Über {{SITENAME}}-->
- Seitenname, zu dem verlinkt wird, in "aboutpage" bearbeiten:
Project:Über
ersetzen durch
Forschungsverbund
Diese Änderungen müssen auf allen Sprach-Subpages für Aboutsite und Aboutpage - nämlich für "de", "de-formal", "de-at" und "de-ch" - durchgeführt werden, da die Änderungen an den Seiten "Aboutpage" und "Aboutsite" sich nur bei den Standard-Sprachversion wie "de" auswirken, jedoch nicht z. B. bei "de-formal". Deshalb wurden als auszuwählende Sprachen "de-formal", "de-at" und "de-ch" vorerst deaktiviert in der Datei [wikiverzeichnisname]\languages\Names.php Wenn ein User in den Profileinstellungen die Sprache abweichend von der Festlegung "de-formal" in der Datei "LocalSettings.php" auf "de" einstellt, funktioniert eventuell "Forschungsverbund" erst, nachdem "English" oder eine andere nicht-deutsche Sprache eingestellt wurde.
'de' => 'Deutsch', # German ("Du") ##'de-at' => 'Österreichisches Deutsch', # Austrian German ##'de-ch' => 'Schweizer Hochdeutsch', # Swiss Standard German ##'de-formal' => 'Deutsch (Sie-Form)', # German - formal address ("Sie")
Um im "Footer" den Hyperlink "Forschungsverbund" statt "Projektverbund" angezeigt zu bekommmen, wird in der Skin-Datei der Code angepasst.
- MW 1.23 Datei "monobook.php"
MW 1.23
???
Favicon[Bearbeiten]
Damit in der Browser-Adresszeile ein Favicon dargestellt wird, ist eine Datei "salzwiki.ico" in das jeweilige Wiki-Verzeichnis hochzuladen und folgender Eintrag in der jeweiligen Datei "LocalSettings.php" vorzunehmen:
$wgFavicon = "/[wikiverzeichnisname]/salzwiki.ico";
Darstellung in einem Frame[Bearbeiten]
Seit Version 1.16.1 gibt es Vorkehrungen gegen CrossSiteScripting, was Seiten, die in Frames dargestellt werden und somit die Weiterleitung des Salzwiki-Hosters zur IP des HAWK-Rechenzentrumsservers, betrifft.
Die neuen Versionen des Internet Explorers und des Firefox zeigen eine Fehlermeldung, wenn man sich anmelden möchte, da der Inhalt in einem Frame angezeigt werden soll. Meist hilft die Nutzung eines Links zur IP-Seite weiter.
Dies ist zu umgehen, d.h. es tritt keine Fehlermeldung auf, wenn man in den localsetting.php einfügt:
$wgEditPageFrameOptions = 'false';
* The X-Frame-Options header to send on pages sensitive to clickjacking * attacks, such as edit pages. This prevents those pages from being displayed * in a frame or iframe. The options are: * * - 'DENY': Do not allow framing. This is recommended for most wikis. * * - 'SAMEORIGIN': Allow framing by pages on the same domain. This can be used * to allow framing within a trusted domain. This is insecure if there * is a page on the same domain which allows framing of arbitrary URLs. * * - false: Allow all framing. This opens up the wiki to XSS attacks and thus * full compromise of local user accounts. Private wikis behind a * corporate firewall are especially vulnerable. This is not * recommended. * * For extra safety, set $wgBreakFrames = true, to prevent framing on all pages, * not just edit pages.
Wiki-Konfiguration[Bearbeiten]
Die Konfiguration eines Wikis erfolgt hauptsächlich mit PHP-Variablen in der Datei "xampp\htdocs\[wikiname]\LocalSettings.php".
Spracheinstellungen[Bearbeiten]
Standardsprache[Bearbeiten]
Die Standardsprache wird in der Datei "LocalSettings.php" festgelegt, kann von den Usern in den Profileinstellungen aber nach den persönnlichen Bedürfnissen angepasst werden.
- Salzwiki: $wgLanguageCode = "de-formal";
- Saltwiki: $wgLanguageCode = "en";
- Repositorium: $wgLanguageCode = "en";
de-formal korrigieren (Wiki-Code)[Bearbeiten]
Die Datei "[wikiname]\languages\i18n\de-formal.json" wird wegen einer Du-Form ergänzt. Zuvor ist die Datei als Kopie "de-formal_original.json" zu speichern. Nach der Korrektur ist für Wiki-Updates eine Kopie als "de-formalSW.json" zu speichern.
Für die Sie-Form wird aus der Datei "de.json" von Zeile 1759 "emailccme" mit Du-Form verwendet: "Sende eine Kopie der E-Mail an mich"; deshalb ist in der Datei "de-formal.json" in Zeile 216f zwischen "emailpagetext" und "emailccsubject" einzufügen:
"emailccme": "Eine Kopie der E-Mail an mich senden",
Zugangsberechtigungen[Bearbeiten]
Gruppen für Berechtigungen[Bearbeiten]
- Administratoren = Chef-Redakteure für Accounts erstellen/sperren, Systemtexte bearbeiten, Wiki-Inhalte verschieben, löschen, importieren etc.
- autor = Autor/in für Wiki-Inhalte
- Benutzer = nur Diskussionsseiten
- Bots (Systemgruppe)
- Bürokraten = Rechtevergabe, Account-Vereinigung
- Editor (saltwiki, repository) = Wiki-Inhalte-Kontrolle
- Redakteur (salzwiki) = siehe Editor
- Sicherheit = Seitensperre für Spezialseiten und gesperrte Seiten bei deaktiviertem JavaScript
- Salzwiki, HAWK etc. = Gruppen im Repository
- sysop = Hauptadministrator
Spezial-Seiten verbergen bzw. verstecken (Wiki-Code)[Bearbeiten]
Spezialseiten, die nur mit besonderen Berechtigungen verfügbar sind, werden nach Anmeldung bei einem Konto mit besonderen Berechtigungen auf der Seite "Spezialseiten" per CSS fett-formatiert dargestellt:
<li class="mw-specialpagerestricted">...
Für Berechtigungen von Spezialseiten siehe auch https://www.mediawiki.org/wiki/Manual:Special_pages/de#Seitenzugriff_beschr.C3.A4nken
http://phlow.net/magazin/netzkultur/technik/445-mediawiki-spezialseiten-vor-unerlaubtem-zugriff-sperren (2015-12-04 nicht mehr vorhanden)
Datei "LocalSettings:php"
##Benutzergruppe um zu verhindern, dass Seiten der Specialpages ##von jedem anderen außer Bürokraten und Admin und Sicherheit ##aufgerufen werden können. Risos 08.02.2012 $wgGroupPermissions['Sicherheit']['read'] = true; $wgGroupPermissions['Sicherheit']['Sicherheit'] = true;
MW 1.23[Bearbeiten]
Wiki-Code anders als in MW 1.16:
- Datei "includes\specialpage\SpecialPageFactory.php" statt Datei "includes\SpecialPage.php"
- Variable "private static $list" statt "static public $mList"
- Assoziative Array-Elemente haben geänderte Werte, die nicht mehr in Arrays, sondern nur noch als Text-Strings angegeben sind
- Bereich "Media reports and uploads" ab Zeile 114
- Bereich "Unlisted / redirects" in Zeile 171
// Media reports and uploads 'Listfiles' => 'SpecialListFiles, 'Filepath' => 'SpecialFilePath', ... // Unlisted / redirects 'Specialpages' => 'SpecialSpecialpages', ...
Eventuell muss die Datei "\includes\SkinTemplate.php" bei der Funktion "buildNavUrls()" in den Zeilen 1247 und 1262 angepasst werden - siehe http://nullraffer.de/wiki/index.php?title=Mediawiki_absichern:
global $wgUploadNavigationUrl; global $wgUser; // eingefügt 2015-12-04 für HAWK HHG ... // Bedingung eingefügt 2015-12-04 für HAWK HHG if(!$wgUser->isAnon()){ $nav_urls['specialpages'] = array( 'href' => self::makeSpecialUrl( 'Upload' ) ); } ...
Vergabe von Nutzerrechten durch den Hauptadministrator (sysop)[Bearbeiten]
Damit die unten beschriebenen Rechtevergaben umgesetzt werden können, erhält der Sysop zunächst den Zugang zu den SpecialPages, um auch nach Änderung der Datei "SpecialPage.php" Zugriff auf die Spezialseiten zu haben. Folgende Zeile ist in "LocalSettings.php" einzufügen:
$wgGroupPermissions['sysop']['restrictusers'] = true; ##HJschwarz 22.02.2011, Ersteinstellung für "restrictusers" zum Einstellen der Rechte
Anschließend über SpecialPages->UserRightsManagement->[Username] die Rechte erweitern und alle Gruppen aktivieren.
Nutzerrechte bis zum Freischalten von Saltwiki[Bearbeiten]
Kein "normaler" Nutzer kann Seiten in SaltWiki lesen:
$wgGroupPermissions['*']['read'] =false;
Folgende Seiten werden durch $wgWhitelistRead dennoch für alle zum Lesen freigegegben:
$wgWhitelistRead = array("Main_Page", "Saltwiki:About", "Saltwiki:General disclaimer", "Saltwiki:Privacy policy");
Benutzer-Rechte in SalzWiki und SaltWiki[Bearbeiten]
Die aktuelle Benutzerrechteschema ist:
# alle duerfen '''nur''' lesen $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['createpage'] = false; $wgGroupPermissions['*']['createtalk'] = false; $wgGroupPermissions['*']['writeapi'] = false; # Benutzer duerfen: lesen, Diskussionsseiten erstellen und darin schreiben $wgGroupPermissions['user']['read'] = true; $wgGroupPermissions['user']['createtalk'] = true; $wgGroupPermissions['user']['move'] = false; $wgGroupPermissions['user']['move-rootuserpages'] = false; $wgGroupPermissions['user']['move-subpages'] = false; $wgGroupPermissions['user']['edit'] = true; $wgGroupPermissions['user']['createpage'] = false; $wgGroupPermissions['user']['upload'] = false; $wgGroupPermissions['user']['reupload'] = false; $wgGroupPermissions['user']['reupload-shared'] = false; $wgGroupPermissions['user']['minoredit'] = false; $wgGroupPermissions['user']['purge'] = false; #$wgGroupPermissions['emailconfirmed']['emailconfirmed'] = true; # Spezialgruppe Autor $wgGroupPermissions['autor']['emailconfirmed'] = true; $wgGroupPermissions['autor']['createpage'] = true; $wgGroupPermissions['autor']['createtalk'] = true; $wgGroupPermissions['autor']['edit'] = true; $wgGroupPermissions['autor']['protect'] = true; $wgGroupPermissions['autor']['editprotected'] = true; $wgGroupPermissions['autor']['read'] = true; $wgGroupPermissions['autor']['upload'] = true; $wgGroupPermissions['autor']['move'] = true;
Spezialseiten dürfen nur AutorInnen lesen (Wiki-Code)[Bearbeiten]
Diese Änderungen dienen dazu, dass nur Autoren die SpecialPages lesen dürfen und keine normalen Nutzer oder angemeldeten Nutzer.
Achtung: Muss bei MW 1.16 in "includes/SpecialPage.php" nach jedem mediawiki-Update auf Vorhandensein überprüft werden! Siehe Spezial-Seiten verbergen bzw. verstecken (Wiki-Code)
in LocalSettings.php einfügen:
$wgGroupPermissions['autor']['restrictusers'] = true;
und folgende Zeile wieder auskommentieren:
$wgGroupPermissions['sysop']['restrictusers'] = true;
Weiterleitungen[Bearbeiten]
Für einige Seiten werden Weiterleitungen eingerichtet. Für eine Übersicht der bestehenden Weiterleitungen siehe bei den Spezialseiten http://193.175.110.91/[wikiverzeichnis]/index.php/Spezial:Weiterleitungen bzw. http://193.175.110.91/[wikiverzeichnis]/index.php/Special:ListRedirects:
Für die Navigation links (Sidebar), den Footer-Bereich und dergleichen gibt es folgende Weiterleitungen:
- SalzWiki
- Aktuelles => Startseite#Aktuelles
- Bibliographie => Special:BibMangerList
- Forschungsverbund => Informationen zum DFG-Projekt#Projektverbund
- Hauptseite => Startseite
- Projektverbund => Informationen zum DFG-Projekt#Projektverbund
- Willkommen im SalzWiki => Informationen zum DFG-Projekt
- Über => Informationen zum DFG-Projekt
- Über SalzWiki => Informationen zum DFG-Projekt
- Über Salzwiki => Informationen zum DFG-Projekt
- Diskussion:Hauptseite => Diskussion:Startseite
- Diskussion:Willkommen im SalzWiki => Diskussion:Informationen zum DFG-Projekt
- Salzwiki:Forschungsverbund => Informationen zum DFG-Projekt#Projektverbund
- Salzwiki:Portal => Informationen zum DFG-Projekt
- Salzwiki:Projektverbund => Informationen zum DFG-Projekt#Projektverbund
- Salzwiki Diskussion:Portal => Diskussion:Informationen zum DFG-Projekt
- Hilfe:Variables => Help:Magic words
- Adm:ToDo-Liste => Salzwiki:ToDo-Liste
- SaltWiki
- Literature and Data => Literature and Programs
- News => Home
- Project Network => About the project#Research Network
- Research Network => About the project#Research Network
- Welcome to SaltWiki => About the project
- Talk:Welcome to SaltWiki => Talk:About the project
- Saltwiki:Portal => Home
- Saltwiki:Research Network => About the project#Research Network
- Help:Tex/de => Help:TeX/de
- Help:Variables => Help:Magic words
Sidebar anpassen (Wiki-Code, JS)[Bearbeiten]
Logo-Hyperlink[Bearbeiten]
Die Seite, die beim Klick auf das Logo aufgerufen werden soll, wird in der Seite "MediaWiki:Mainpage" angegeben.
[Bearbeiten]
Es gibt zwei Varianten; die Standardvariante für angemeldete Standard-User und die Autor-Variante für AutorInnen, AdministratorInnen und ForscherInnen. Nicht-angemeldete User können Wiki-Seiten nur ansehen.
[Bearbeiten]
Die Standardvariante ist zu erreichen über:
http://193.175.110.91/[wikiverzeichnis]/index.php/MediaWiki:Sidebar
<!-- Salzwiki -->
*navigation
**Mainpage|Startseite
<del>**Salzwiki:Portal|SalzWiki:Portal</del>
<!--**Informationen zum DFG-Projekt|SalzWiki-Portal-->
<!--**Aktuelles|Aktuelles-->
Special:BibManager_Overview|Bibliographie
**Glossar|Glossar
<!--**Autorenanmeldung|Autorenanmedlung-->
**Redaktion SalzWiki|Redaktion
**Autoren/innen_von_SalzWiki|Autor/inn/en
**recentchanges-url|Recentchanges
**special:contact|Kontakt
**Hilfe:Contents/de|Hilfe
*SEARCH
<!--*Umfrage-->
<!--**http://www.worktogether51.net/gc/wsl.php?I=Y4TTY7YTOTTYT47TTUTTBT4NTTYT4BT40 |Ihre Meinung zu SalzWiki-->
*TOOLBOX
*andere Sprachen
**http://www.saltwiki.net/|English
<-- Repositorium --> *Navigation **Hauptseite|Home *Other Wikis **http://www.salzwiki.de|SalzWiki **http://www.saltwiki.net|SaltWiki
<-- Saltwiki --> * navigation ** mainpage|Home <!--** portal-url|SaltWiki-Portal--> <!--** About_the_project|SaltWiki Portal--> <!--** News|News--> ** Special:BibManager_Overview|Bibliography|Literature ** Glossary|Glossary ** Editorial Board|Editorial Board ** Authors in SaltWiki|Authors ** Special:Contact|Contact ** Help:Contents|Help * SEARCH * TOOLBOX *Languages **http://www.salzwiki.de/|German
[Bearbeiten]
Die Autor-Variante muss durch Erstellung einer neuen Seite (Adminrechte erforderlich) erfolgen:
- Erst folgende Adresse im Browser eingeben:
http://193.175.110.91/[wikiverzeichnis]/index.php/MediaWiki:Autor_sidebar - Danach mit Karteikarte "Erstellen" folgenden Quelltext eingeben:
<!-- Salzwiki -->
*Navigation
**Mainpage|Startseite
<del>**SalzWiki:Portal|SalzWiki:Portal</del>
<!--**Informationen zum DFG-Projekt|SalzWiki-Portal-->
<!--**Aktuelles|Aktuelles-->
**http://193.175.110.91/repository/index.php/Main_Page |Repositorium
**Spezial:Bibliographieeinträge_verwalten|Bibliographie
**Glossar|Glossar
**Redaktion_SalzWiki|Redaktion
**Autoren/innen von SalzWiki|Autor/inn/en
**recentchanges-url|recentchanges
**special:contact|Kontakt
**help:contents/de|help
<!--
*Umfrage
**http://www.worktogether51.net/gc/wsl.php?I=Y4TTY7YTOTTYT47TTUTTBT4NTTYT4BT40ON84RMK758E |Ihre Meinung als Autor zu SalzWiki
**http://www.worktogether51.net/gc/wsl.php?I=Y4TTY7YTOTTYT47TTUTTBT4NTTYT4BT40 |Ihre Meinung als Nutzer zu SalzWiki -->
* Autor/inn/en-Seiten
**Autoren|Richtlinien/Übersichten
**Nutzungsrechte|Nutzungsrechte
**Review|Review
**Kategorie|Kategorienbaum
**Vorlagen|Vorlagen
<!--**sandkasten|Sandbox-->
*SEARCH
*TOOLBOX
*Andere Sprachen
**http://www.saltwiki.net/ |English
<-- Saltwiki --> *Navigation **Mainpage|Home <!--**Saltwiki:Community_portal|SaltWiki:Portal--> <!--**About_the_Project|SaltWiki Portal--> <!--**News|News--> **http://193.175.110.91/repository/index.php/Main_Page |Repository **Special:BibManager_Overview|Bibliography **Glossary|Glossary **Editorial_Board|Editorial Board **Authors in Saltwiki|Authors **recentchanges-url|recentchanges **Special:Contact|Contact **Help:Contents|Help <!--**Helppage|help--> * Author Pages **Authors_Page|Guidelines **Rights|Rights **Review|Review **categories|Category tree **Templates|Templates <!--**sandbox|Sandbox--> *SEARCH *TOOLBOX *Languages **http://www.salzwiki.de/ |German
<-- Repositorium --> *Navigation <!--*Research Environment--> **Mainpage|Home <!--**Repository Portal|Repository Portal--> **News|News **Projekte|Projects **Communication|Communication **Publications|Publication * **Special:BibManager_Overview|Bibliography **terminology|Glossary **Category:Author|Authors' Contents **recentchanges-url|Recent changes **Special:Contact|Contact **Help:Contents|Help * author pages **Rights|Rights **Kategorienbaum|Category tree * other wikis **Vorlagen|Templates **http://www.salzwiki.de/ |SalzWiki **http://www.saltwiki.net/ |SaltWiki *SEARCH *TOOLBOX *LANGUAGES
[Bearbeiten]
Um die Navigation links ("Sidebar") anzupassen wurden Änderungen an den Dateien "includes\Skin.php" und "skins\MonoBook.php" vorgenommen.
Sidebar-Einschränkung (Wiki-Code)[Bearbeiten]
In der Datei "includes\Skin.php" in der Funktion "function buildSidebar()" in der zweiten Zeile die globale Variable "$wgUser" hinzufügen, um später die Gruppenrechte abfragen zu können:
<!--MW1.23, Z.1249--> global $wgMemc, $wgEnableSidebarCache, $wgSidebarCacheExpiry, $wgUser;
Nach der Zeile mit "$bar = array();" (MW1.23 Z.1263, MW1.16 Z.2085) folgende Zeile auskommentieren:
#$this->addToSidebar( $bar, 'sidebar' );
und folgenden Code einfügen:
$groups = $wgUser->getEffectiveGroups(); ## add here admin support if (in_array("autor", $groups) || in_array("Administrators", $groups) || in_array("forschung", $groups)) { //$lines = explode( "\n", wfMsgForContent( 'autor_sidebar' ) ); $this->addToSidebar( $bar, 'autor_sidebar' ); } else { //$lines = explode( "\n", wfMsgForContent( 'sidebar' ) ); $this->addToSidebar( $bar, 'sidebar' ); }
Die Zeile "$lines = explode( "\n", wfMsgForContent( 'sidebar' ) );" muss auskommentiert oder gelöscht werden.
Nun gibt es zwei Sidebars die man unterschiedlich "bestücken" kann.
Sollte es danach PHP-Warnungen wie "Warning: Call-time pass-by-reference has been deprecated ..." geben, gibt es folgende vorübergehende Notlösung: In der Datei "php.ini" in Zeile 165 "allow_call_time_pass_reference = On" statt "Off" setzen. Diese Möglichkeit gilt als veraltet und wird in Zukunft nicht mehr von PHP unterstützt werden, so dass der oben beschriebene Code der Funktion dann geändert werden muss!
ACHTUNG: Wenn das Mediawiki aktualisiert wird, muss die Änderung in der Datei "Skin.php" wieder eingefügt werden, um die Funktionalität zu erhalten! Deshalb ist von der geänderten Datei "Skin.php" zusätzlich eine Kopie "SkinSW.php" im Verzeichnis "includes" zu speichern.
Werkzeuge/Toolbox (Wiki-Code)[Bearbeiten]
Die Sidebar im Bereich "Werkzeuge" wird mit einem Eingriff in den Wiki-Code bei "skins/MonoBook.php" für alle Gruppen außer "autor", "admin" und "forschung" manipuliert. Hierzu wird in der Funktion "toolbox()" Z.254ff die Variable "global $wgUser;" eingefügt und bei "foreach" die Z.262 bei "$this->makeListItem" mit einer Bedingung versehen:
function toolbox(); global $wgUser; // Für HAWK HHG $groups = $wgUser->getEffecitveGroups(); // Für HAWK HHG ... foreach ( $this->getToolbox() as $key => $tbitem ) { // Für HAWK HHG: Alle Werkzeuge für die Gruppen autor, Administrators und forschung, sonst nur Werkzeug "Druckversion" if(in_array("autor", $groups) || in_array("Administrators", $groups) || in_array("forschung", $groups) || $key==="print"){ <?php echo $this->makeListItem( $key, $tbitem); ?> } }
Achtung: Code-Anpassung muss in "skins/MonoBook.php" nach jedem mediawiki-Update auf Vorhandensein und Funktion überprüft werden!
Werkzeuge-Schlüsselwörter[Bearbeiten]
- Links auf diese Seite: key = whatlinkshere
- Änderungen an verlinkten Seiten: key = recentchangeslinked
- Datei hochladen: key = upload
- Spezialseiten: key = specialpages
- Druckversion: key = print
- Permanenter Link: key = permalink
- Seiteninformationen: key = info
sichtbare Toolbox-Menüpunkte[Bearbeiten]
- SalzWiki, Repositorium: alle Gruppen und User
- Druckversion
- SaltWiki: alle Gruppen und User
- Printable version
ausgeblendete Toolbox-Menüpunkte[Bearbeiten]
- SalzWiki: Nicht-Mitglieder der Gruppen "autor", "Administrators", "forschung"
- "Links auf diese Seite" (Special:WhatLinksHere/Main_Page)
- "Änderungen an verlinkten Seiten" (Spezial:%C3%84nderungen_an_verlinkten_Seiten)
- "Hochladen" (Special:Upload)
- "Spezialseiten" (Special:SpecialPages)
- "Permanenter Link" (Main_page&oldid=921)
- "Seiteninformationen" ([Seitentitel]&action=info])
- SaltWiki: Nicht-Mitglieder der Gruppen "autor", "Administrators", "forschung"
- "What links here" (Special:WhatLinksHere/Main_Page)
- "Related changes" (Special:RecentChangesLinked)
- "Hochladen" (Special:Upload)
- "Spezialseiten" (Special:SpecialPages)
- "Permanent link" (Main_page&oldid=921)
- "Page information" ([Seitentitel]&action=info])
- Repository: Nicht-Mitglieder der Gruppen "autor", "Administrators", "forschung"
- "Links auf diese Seite" (Special:WhatLinksHere/Main_Page)
- "Änderungen an verlinkten Seiten" (Spezial:%C3%84nderungen_an_verlinkten_Seiten)
- "Datei Hochladen" (Special:Upload)
- "Spezialseiten" (Spezial:Spezialseiten)
- "Permanent link" (Main_page&oldid=9522)
- "Seiteninformationen" ([Seitentitel]&action=info])
Überschrift der Hauptseite/Mainpage ändern[Bearbeiten]
Die Überschrift ist auf der Systemseite "Mediawiki:Mainpage" eingetragen und muss dort geändert werden. Die Überschrift, die per Voreinstellung Main Page (Hauptseite in der deutschen Übersetzung) heißt, ist in die entsprechende Titelzeile zu ändern.
Repositorium-Dateien im SalzWiki[Bearbeiten]
Hochladen von Dateien[Bearbeiten]
Das Hochladen von Dateien geschieht immer in das Repositorium.
Hierzu sind folgende Änderungen in der Datei "LocalSettings.php" des SalzWikis vorzunehmen:
$wgUploadNavigationUrl = "/repository/index.php/Special:Upload"; $wgEnableUploads = false; ##damit kein Upload in SalzWiki möglich ist
Zudem sind folgende Änderungen in der Datei "LocalSettings.php" des Repositoriums vorzunehmen:
$wgEnableUploads = true; ## Erlaubte Dateitypen $wgFileExtensions = array('png', 'gif', 'tiff','tif','jpg', 'jpeg', 'doc', 'xls', 'xml','pdf', 'svg', 'avi', 'mpeg','ogg', 'ogv', 'oga','mov');
Übergreifende Suche im SalzWiki und Repositorium[Bearbeiten]
Für den Zugriff vom SalzWiki auf das Repositorium mittels "http" durch anonyme User ist in der Datei "LocalSettings.php" des SalzWikis folgender Code hinzuzufügen:
$wgFetchCommonsDescriptions = true;
Findet das Salzwiki eine Datei oder ein Bild nicht im eigenen Wiki, schaut es mit Hilfe von Shared-Einstellungen automatisch im Repositorium nach und sucht dort. Dazu wurde in der Datei "LocalSettings.php" des SalzWikis folgender Code hinzugefügt:
$wgUseSharedUploads = true; $wgSharedUploadPath = "/repository/images"; #$wgSharedUploadPath = 'http://193.175.110.91/repository/images; $wgSharedUploadDirectory = "D:/xampp/htdocs/repository/images"; $wgHashedSharedUploadDirectory = true; $wgSharedUploadDBname = "repository"; $wgSharedUploadDBprefix = "sr_"; $wgRepositoryBaseUrl = 'http://193.175.110.91/repository/index.php/Datei:'; #$wgRepositoryBaseUrl = 'http://193.175.110.91/repository/index.php/file:'; #wenn auf ein englischsprachiges Repositorium verwiesen wird, ist "Datei" durch "file" zu ersetzen, #damit die Metadaten auch ausgelesen werden können.
Metadaten aus Repositoriumsdateien im SalzWiki sichtbar[Bearbeiten]
Da alle Dateien wie z.B Fotos im Repositorium liegen, muss vom SalzWiki aus der Zugriff nicht nur auf die Dateien, sondern auch auf die dazugehörigen Metadaten erfolgen. Dazu ist nicht nur
$wgFetchCommonsDescriptions = true;
erforderlich, sondern auch eine Änderung in der PHP-Konfigurationsdatei "php.ini" in Zeile 523:
allow_url_fopen = On
So kann fopen() ausgeführt werden, um Beschreibungsdaten vom Repositorium zu holen.
Zugriff auf ein geschütztes Repository (Wiki-Code)[Bearbeiten]
Die beschriebene Vorgehenssweise erlaubt es, auf ein für den normalen User gesperrtes Wiki = Repositorium zuzugreifen und die Metadaten der Abbildungen/Dateien auszulesen und in SalzWiki widerzugeben. Nach jedem mediawiki-Update muss die Datei "includes/httpFunctions.php" auf Änderungen überprüft werden!
- Zunächst ist die Datei "httpFunctions.php" im Verzeichnis includes von SalzWiki zu modifizieren. Dazu wird von der Datei eine Kopie "httpFunctions_original.php" gespeichert. Danach wird folgender Code eingefügt:
- für die Mediawiki-Version 16.0:
--- HttpFunctions.php 2010-06-09 05:49:34.000000000 +0200 +++ HttpFunctions_new.php 2010-11-22 17:09:33.000000000 +0100 @@ -744,7 +744,7 @@ $this->curlOptions[CURLOPT_CUSTOMREQUEST] = $this->method; } $this->curlOptions[CURLOPT_HTTPHEADER] = $this->getHeaderList(); $curlHandle = curl_init( $this->url ); if ( !curl_setopt_array( $curlHandle, $this->curlOptions ) ) { @@ -755,14 +755,97 @@ /* Continue the processing. If it were in curl_setopt_array, processing would have halted on its entry */ } - if ( false === curl_exec( $curlHandle ) ) { - $code = curl_error( $curlHandle ); - - if ( isset( self::$curlMessageMap[$code] ) ) { - $this->status->fatal( self::$curlMessageMap[$code] ); - } else { - $this->status->fatal( 'http-curl-error', curl_error( $curlHandle ) ); - } - } else { - $this->headerList = explode("\r\n", $this->headerText); - } - - curl_close( $curlHandle ); - + /* + * START: + * Add code to access restricted repositories. + * Add the following line in the LocalSettings.php + * $wgAuthenticatedRepository = true; + * $wgAuthenticatedRepositoryUser = 'WikiSysop'; + * $wgAuthenticatedRepositoryPassword = 'dev2010wer'; + * $wgShowAuthenticatedRepositoryError = true; + */ + + global $wgAuthenticatedRepository, $wgAuthenticatedRepositoryUser, $wgAuthenticatedRepositoryPassword, $wgShowAuthenticatedRepositoryError; + $error = true; + $text = ''; + $token2 = array(); + + /* run the code only if the user activate is in the LocalSettings.php*/ + if ( $wgAuthenticatedRepository ) { + require_once 'extensions/Snoopy-1.2.4/Snoopy.class.php'; + $index = ''; + $login = ''; + + /* Get all relevat url informations */ + /* URL: http://localhost/mediawiki/mediawiki-repository/index.php/File:MediawikiExampleImageFlower.jpg?action=render&uselang=en */ + $wikiPath = ""; + if (!preg_match('/(.*)\/index.php\/(.*)\?(.*)/', $this->url, $matches)) { + echo "nicht gefunden"; + } else { + $wikiPath = $matches[1]; + /* If the url contains special characters, when these characters must be convert */ + $title = rawurldecode($matches[2]); + } + + $apiPath = "$wikiPath/api.php"; + $indexPath = "$wikiPath/index.php"; + + $snoopy = new Snoopy; + /* Start request to get an token */ + $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'format' => 'php'); + if(!$snoopy->submit($apiPath, $request_vars)) + $this->status->fatal("Snoopy error: {$snoopy->error}"); + + // We're only really interested in the cookies + $snoopy->setcookies(); + $token = unserialize($snoopy->results); + + /* Use the Token to login */ + if ( $token['login']['result'] == 'NeedToken') { + $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'lgtoken' => $token['login']['token'], 'format' => 'php'); + if(!$snoopy->submit($apiPath, $request_vars)) + $this->status->fatal("Snoopy error: {$snoopy->error}"); + $token2 = unserialize($snoopy->results); + } + else if ( ($token['login']['result'] == 'NoName') ) { + wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" ); + if ( $wgShowAuthenticatedRepositoryError ) $this->content = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>"; + } + + /* If the login was successful, get the Information from the File Description */ + if ( ($token2['login']['result'] == 'Success') or ($token['login']['result'] == 'Success') ) { + $request_vars = array('action' => 'render', 'title'=> $title, 'lgtoken' => $token['login']['token'], 'format' => 'php'); + if(!$snoopy->submit($indexPath, $request_vars)) + $this->status->fatal("Snoopy error: {$snoopy->error}"); + $this->content = $snoopy->results; + } + else if ( ($token2['login']['result'] == 'WrongPass') or ($token2['login']['result'] == 'WrongPluginPass') or ($token2['login']['result'] == 'EmptyPass') ) { + wfDebug( __METHOD__ . ": Wrong or no Password for wgAuthenticatedRepositoryPassword in the LocalSetting." ); + if ( $wgShowAuthenticatedRepositoryError ) $this->content = "Wrong or no Password for <i>wgAuthenticatedRepositoryPassword</i> in the LocalSetting.<br/>"; + } + else if ( ($token2['login']['result'] == 'NotExists') ) { + wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" ); + if ( $wgShowAuthenticatedRepositoryError ) $this->content = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>"; + } + $this->headerList = explode("\r\n", $this->headerText); + } + else + { + /* + * START: Original Code - now in a if statement + */ + + if ( false === curl_exec( $curlHandle ) ) { + $code = curl_error( $curlHandle ); + + if ( isset( self::$curlMessageMap[$code] ) ) { + $this->status->fatal( self::$curlMessageMap[$code] ); + } else { + $this->status->fatal( 'http-curl-error', curl_error( $curlHandle ) ); + } + } else { + $this->headerList = explode("\r\n", $this->headerText); + } + curl_close( $curlHandle ); + + /* + * END: Original Code - now in a if statement + */ + } + /* + * END: Add code to access restricted repositories + */ + $this->parseHeader(); $this->setStatus(); return $this->status; } } class PhpHttpRequest extends HttpRequest {
Es wurden hauptsächlich Anpassungen gemacht, die den Text zurückgeben, sowie an der Abarbeitung von Fehlern.
Für das korrekte Bearbeiten von Sonderzeichen in der url wurde rawurldecode() hinzugefügt.
- Die geänderte Datei "httpFunctions.php" als Sicherung für Mediawiki-Updates kopieren und speichern als "httpFunctions_sw.php".
- Die Erweiterung "Snoopy-1.2.4" von "http://sourceforge.net/projects/snoopy/" herunterladen, zip-Dateien auspacken und die Erweiterung in das Verzeichnis "extensions" des SalzWikis bzw. Saltwikis kopieren.
- Das Modul "curl" muss beim Apache-Webserver aktiviert sein; dazu kommentiert man in der Datei "D:\xampp\php\php.ini" die folgende Zeile ein:
extension=php_curl.dll
Den Apache-Dienst über das XAMPP-Control-Panel neu starten, damit die Änderungen wirksam werden.
- Der Zugriff auf das Repositorium wird gesperrt durch folgenden Eintrag in der Datei "LocalSettings.php" des Repositoriums:
$wgGroupPermissions['*']['read'] = false;
- Um den Zugriff auf das geschützte Repositorium durchführen zu können, ist folgende Konfiguration der Datei "LocalSettings.php" des Salzwikis bzw. Saltwikis vorzunehmen:
$wgAuthenticatedRepository = true; $wgAuthenticatedRepositoryUser = 'WikiSysop'; $wgAuthenticatedRepositoryPassword = 'xxx'; $wgShowAuthenticatedRepositoryError = false;
$wgAuthenticatedRepository - aktiviert den Zugriff auf ein gesichertes Repository. Wenn dies nicht notwendig ist, bitte abstellen, da die Funktion zusätzliche Abfragen schickt, was die Zugriffe bei hoher Last verlangsamen kann.
$wgShowAuthenticatedRepositoryError - Gibt Fehlermeldungen in die Log Dateien. Für den Live Betrieb bitte abstellen.
- Konfiguration für das allgemeine Salzwiki, um die Daten aus der Datenbank zu holen. Folgende Zeilen in die Datei "LocalSettings.php" des Salzwikis bzw. Saltwikis einfügen:
$wgForeignFileRepos[] = array( 'class' => 'ForeignDBRepo', 'name' => 'mediawiki-repository', 'url' => $wgSharedUploadPath, 'directory' => $wgSharedUploadDirectory, 'hashLevels' => 2, // This must be the same for the other family member 'dbType' => $wgDBtype, 'dbServer' => $wgDBserver, 'dbUser' => $wgDBuser, 'dbPassword' => $wgDBpassword, 'dbFlags' => DBO_DEFAULT, 'dbName' => $wgSharedUploadDBname, 'tablePrefix' => $wgSharedUploadDBprefix, 'hasSharedCache' => false, 'descBaseUrl' => $wgRepositoryBaseUrl, 'fetchDescription' => $wgFetchCommonsDescriptions );
Vorlagen[Bearbeiten]
Vorlagen = Templates finden sich beispielhaft auf der Seite Vorlagen dargestellt.
Die einzelnen Vorlagen sind im Namensraum "Vorlage" bzw. "Template" zu finden. Für jede Vorlage ist eine eigene Wiki-Seite zu erstellen, um diese Vorlage dann im Wiki mit {{Vorlagenname}} verwenden zu können. Die Vorlage ist anschließend auf der Seite "Vorlagen" beispielhaft aufzuführen. Die vorhandene Vorlage "Languages" wird ersetzt durch eine eigene Vorlage.
- Vorlagen für SalzWiki und Saltwiki
- Infobox_Salz bzw. Infobox_Salt
- MetadatenFoto_upload (wird im Artikel Vorlagen/Templates verwendet)
- Vorlagen für das Repositorium
- MetadatenFoto_upload
- MetadatenDaten_upload
- MetadatenLiteratur_upload
- MetadatenProben_upload
- MetadatenText_upload
- Untersuchungsmethoden
- Lizenzvorlagen: Eine neue Kategorie "Kategorie:Lizenzenvorlagen" erstellen mit folgenden Vorlagen:
- CC-by-nc-nd,CC-by-nc-nd/de
- CC-by-nc-sa,CC-by-nc-sa/de
- PD
- PD Help Page, PD Help Page/de, PD Help Page/fr
- GFDL,GFDL/de (nur im Repositorium)
Alle anderen Vorlagen wurden beim Einbinden der Hilfeseiten bzw. Extensions eingestellt.
Lizenzen-Auswahl im Upload-Formular[Bearbeiten]
Um neue Lizenzen im Klappfeld im Upload-Formular einzugeben muss die Datei Mediawiki:Licenses (http://193.175.110.91/repository_1.16.1/index.php?title=MediaWiki:Licenses) editiert werden, nach dem vorgegebene Schema:
*Free licenses: <!-- Lizenztyp --> **PD|PD: public domain <!--einzelne Lizenz--> **GNU|GFDL: GNU Free Documentation License *Creative Commons **CC-by-nc-nd|Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0) **CC-by-nc-sa|Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)
XEB Extra Edit Buttons (Wiki-Code, JS)[Bearbeiten]
Achtung: Funktioniert nur bei Browsern mit aktiviertem JavaScript und muss in "includes/EditPage.php" nach jedem mediawiki-Update auf Vorhandensein überprüft werden!
Die Funktionen bzw. verfügbaren Schaltflächensymbole des Editors wurden durch nachfolgenden Scriptcode erweitert.
Die im Code benannten Bilder "Button_[...].png" im Verzeichnis skins/common/images/" speichern.
Den Code im Verzeichnis "includes" in der "EditPage.php" bei der Array-Variablen "$Toolarray" (ab Zeile 2110) am Ende einfügen (Z. 2210) - Komma nicht vergessen! - (siehe auch http://meta.wikimedia.org/wiki/Help_talk:Edit_toolbar). Hier können noch weitere eigene Funktionen implementiert werden.
, array( 'image' => "Button_redirect.png", 'id' => "Button_redirect", 'tip' => "Redirect", 'open' => "#REDIRECT [[", 'close' => "]]", 'sample'=> "Insert text" ), array( 'image' => "Button_strike.png", 'id' => "Button_strike", 'tip' => "Strike", 'open' => "<s>", 'close' => "</s>", 'sample'=> "Strike-through text" ), array( 'image' => "Button_enter.png", 'id' => "Button_enter", 'tip' => "Line break", 'open' => "<br />", 'close' => "", 'sample'=> "" ), array( 'image' => "Button_upper_letter.png", 'id' => "Button_upper_letter", 'tip' => "Superscript", 'open' => "<sup>", 'close' => "</sup>", 'sample'=> "Superscript text" ), array( 'image' => "Button_lower_letter.png", 'id' => "Button_lower_letter", 'tip' => "Subscript", 'open' => "<sub>", 'close' => "</sub>", 'sample'=> "Subscript text" ), array( 'image' => "Button_small.png", 'id' => "Button_small", 'tip' => "Small", 'open' => "<small>", 'close' => "</small>", 'sample'=> "Small Text" ), array( 'image' => "Button_hide_comment.png", 'id' => "Button_hide_comment", 'tip' => "Insert hidden Comment", 'open' => "<!-- ", 'close' => " -->", 'sample'=> "Comment" ), array( 'image' => "Button_Bibliogryphy.png", 'id' => "Button_insert Literature", 'tip' => "Literturzitat einfügen", 'open' => '<bib id="', 'close' => '"/>', 'sample'=> 'Mueller:2009' ), array( 'image' => "Button_blockquote.png", 'id' => "Button_blockquote", 'tip' => "Insert block of quoted text", 'open' => "<blockquote>\\n", 'close' => "\\n</blockquote>", 'sample'=> "Block quote" ), array( 'image' => "Button_insert_table.png", 'id' => "Button_insert_table", 'tip' => "Insert a table", 'open' => '{| class="wikitable"\\n|-\\n', 'close' => "\\n|}", 'sample'=> "! header 1\n! header 2\n! header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3" ), array( 'image' => "Button_reflink.png", 'id' => "Button_reflink", 'tip' => "Insert a reference", 'open' => "<ref>", 'close' => "</ref>", 'sample'=> "Insert footnote text here" )
Je nach Sprachvariante sind die Texte hinter "tip" und "sample" zu übersetzen.
ACHTUNG: Nach jedem mediawiki-Update muss überprüft werden, ob die vorgenommene Änderung in der Datei "EditPage.php" noch existiert und funktioniert. Deshalb ist von der Datei eine Kopie "EditPageSW.php" im Verzeichnis "inludes" zu speichern. Sollten die Übersetzungen in der entsprechenden Übersetzungsdatei statt in "EditPage.php" hinzugefügt werden, wäre die Übersetzungsdatei nach jedem mediawiki-Update ebenfalls zu überprüfen.
Einrichten von Namensräumen
[Bearbeiten]
Es werden folgende Namensräume eingerichtet:
- "ADM" bzw. "Access": "ADM" bei Salzwiki und Saltwiki, "Access" bei Repository) für Dokumente der Administratoren, den nur diese bearbeiten können,
- "Bearbeitung": nur bei Saltwiki zum erstmaligen Erstellen von Dokumenten, die kein Leser sehen soll
- "Literature": für die Bibliographie - Achtung: Bei der Zuweisung in $wgExtraNamespaces ist ein Leerzeichen vor "_talk"!
- "SalzeImPorenraum": nur bei Repository
- "RBKLuebeck": nur bei Repository - Achtung: Ursprüngliche Konstante "RBK-Luebeck" mit Bindestrich erzeugt bei MW 1.23 eine Fehlermeldung und Bindestrich ist auch nicht bei $wgExtraNamespaces enthalten
Leerzeichen und Bindestriche sind für selbst definierte Namensräume (custom namespaces) nicht zulässig, siehe https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces
Salzwiki
# Einrichten der Namensräume Adm, Bearbeitung und Literature define("NS_ADM", 100); define("NS_ADM_TALK", 101); #define("NS_Bearbeitung", 120); #define("NS_Bearbeitung_TALK", 121); define("NS_Literature", 110); define("NS_Literature_TALK", 111); # Create namespaces $wgExtraNamespaces = array( NS_ADM => 'Adm', NS_ADM_TALK => 'Adm_talk', #NS_Bearbeitung => 'Bearbeitung', #NS_Bearbeitung_TALK => 'Bearbeitung_talk', NS_Literature => 'Literature', NS_Literature_TALK => 'Literature _talk' ); $wgNamespacesWithSubpages[NS_HELP] = true; #subpages enabled for the Helpnamespace $wgNamespaceProtection[NS_ADM] = array( 'editadm' ); #permission "editadmin" required to edit the Adm namespace $wgNamespacesWithSubpages[NS_ADM] = true; #subpages enabled for the ADM namespace $wgGroupPermissions['Administrator']['editadm'] = true;
Saltwiki
# Einrichten der Namensräume Adm, Bearbeitung und Literature define("NS_ADM", 100); define("NS_ADM_TALK", 101); define("NS_Bearbeitung", 120); define("NS_Bearbeitung_TALK", 121); define("NS_Literature", 110); define("NS_Literature_TALK", 111); # Create namespaces $wgExtraNamespaces = array( NS_ADM => 'Adm', NS_ADM_TALK => 'Adm_talk', NS_Bearbeitung => 'Bearbeitung', NS_Bearbeitung_TALK => 'Bearbeitung_talk', NS_Literature => 'Literature', NS_Literature_TALK => 'Literature _talk' ); $wgNamespacesWithSubpages[NS_HELP] = true; #subpages enabled for the Helpnamespace $wgNamespaceProtection[NS_ADM] = array( 'editadm' ); #permission "editadmin" required to edit the Adm namespace $wgNamespacesWithSubpages[NS_ADM] = true; #subpages enabled for the ADM namespace $wgGroupPermissions['Sysadmin']['editadm'] = true;
Repository
# Einrichten der Namensräume Adm, Bearbeitung und Literature define("NS_Access", 100); define("NS_Access_TALK", 101); #define("NS_Bearbeitung", 120); #define("NS_Bearbeitung_TALK", 121); define("NS_Literature", 110); define("NS_Literature_TALK", 111); # Create namespaces $wgExtraNamespaces = array( NS_Access => 'Access', NS_Access_TALK => 'Access_talk', #NS_Bearbeitung => 'Bearbeitung', #NS_Bearbeitung_TALK => 'Bearbeitung_talk', NS_Literature => 'Literature', NS_Literature_TALK => 'Literature _talk' ); ##Anlegen von Namensräumen für Projekte define('NS_SalzeImPorenraum', 1010); define('NS_SalzeImPorenraum_TALK', 1011); $wgExtraNamespaces[NS_SalzeImPorenraum] = 'SIPP'; $wgExtraNamespaces[NS_SalzeImPorenraum_TALK] = 'SIPP_talk'; #define('NS_RBK-Luebeck', 1020); //Achtung: Bindestrich darf nicht sein und ist auch nicht bei $wgExtraNamespaces enthalten #define('NS_RBK-Luebeck_TALK', 1021); //Achtung: Bindestrich darf nicht sein und ist auch nicht bei $wgExtraNamespaces enthalten define('NS_RBKLuebeck', 1021); define('NS_RBKLuebeck_TALK', 1021); $wgExtraNamespaces[NS_RBKLuebeck] = 'Rbkl'; $wgExtraNamespaces[NS_RBKLuebeck_TALK] = 'Rbkl_talk'; #$wgNamespacesWithSubpages[NS_HELP] = true; #subpages enabled for the Helpnamespace #$wgNamespaceProtection[NS_ADM] = array( 'editadm' ); #permission "editadmin" required to edit the Adm namespace #$wgNamespacesWithSubpages[NS_ADM] = true; #subpages enabled for the ADM namespace #$wgGroupPermissions['Sysadmin']['editadm'] = true;
Extensions[Bearbeiten]
Welche Erweiterungen in welcher Distribution enthalten sind, erfährt man auf der Seite https://www.mediawiki.org/wiki/Comparison_of_extensions_in_distributions
AccessControl[Bearbeiten]
Verwendungszweck[Bearbeiten]
Die Erweiterung dient dazu, Seiten beispielsweise auch zum Lesen zu sperren, wenn wie im Repositorium Inhalte zwar bereits bearbeitet und ins Wiki eingestellt werden, aber noch nicht öffentlich zugänglich sein sollen.
Der Zugang auf eine Seite wird durch Eingabe einer Nutzergruppe (Beispiel: "parole") erlaubt, die vorher z.B. in "LocalSettings.php" definiert wird:
$wgGroupPermissions['parole']['read'] = true;
Damit nur Mitglieder der Gruppe "parole" Zugang zu einer Seite erhalten, wird auf der jeweiligen Seite oben folgende Zeile eingegeben (siehe dazu auch http://www.mediawiki.org/wiki/Extension:AccessControl):
<accesscontrol>parole</accesscontrol>
AccessControl v2.4 fehlerhaft bei MW 1.23[Bearbeiten]
Für MW 1.23 wurde versucht, AccessControl v2.5 zu verwenden. Der Download enthält aber nicht wie in Aussicht gestellt Version 2.5, sondern Version v2.4, bei welcher in der Datei "changelog.txt" nur Änderungen bis v2.3 aufgelistet sind. Die Version 2.4 hat mehrere Fehler:
- Z.21: "$wgAccessControlRedirect = true;" fehlt
- Z.136: in Funktion getTemplatePage() ist ein Rückgabewert auskommentiert
- Z.173: php-Warnung, weil "isset($allow)" fehlt
- Z.225: php-Warnung, weil "isset($rights)" fehlt
- Z.202, Z.210: in Funktion fromTemplates() wird dieselbe Funktion evtl. endlos aufgerufen
- Z.284: in Funktion allRightsTag() wird die Funktion fromTemplates() aufgerufen, die wiederum evtl. die Funktion allRightsTag() in Z.213, Z.218 und Z.220 endlos aufruft
- Funktion doRedirect() ist im Vergleich zu v2.5 anders
AccessControl v2.5 für MW 1.23[Bearbeiten]
Siehe auch https://www.mediawiki.org/wiki/Extension:AccessControl
Achtung: Version 2.5 ist nicht zum Herunterladen bei REL1.23, sondern erst bei REL1.24 verfügbar.
- Die Extension wird als (REL1.24 oder) REL1.26 heruntergeladen und nach dem Extrahieren in das Verzeichnis "extensions" kopiert.
- v2.5 "...REL1.26...", Datei "version": 2016-01-09T22:48:53 1a2ce27 [verwendet]
- v2.5 "...REL1.24...", Datei "version": 2016-01-09T22:48:53 c7e1e54 [nicht verwendet]
- v2.4 "...REL1.23...", Datei "version": 2015-06-16T21:00:32 befc02e [nicht verwendet]
- Einfügen in Datei "LocalSettings.php":
require_once("$IP/extensions/AccessControl/AccessControl.php");
PHP erzeugt evtl. eine Meldung "Notice: Undefined variable: allow ... on line 174". Es fehlt bei $allow die Abfrage "isset(...)".
Die Datei "AccessControl.php" ist zur Verhinderung von php-Warnungen wie folgt zu bearbeiten:
In Zeile 174 "if(is_array($allow)){" mit "isset($allow) &&" ergänzen:
if(isset($allow) && is_array($allow)){
Weitere Probleme mit Script-Timeout wie bei AccessControl v2.4:
- Z.206, Z.214: in Funktion fromTemplates() wird dieselbe Funktion evtl. endlos aufgerufen
- Z.290: in Funktion allRightsTag() wird die Funktion fromTemplates() aufgerufen, die wiederum evtl. die Funktion allRightsTag() in Z.217, Z.222 und Z.224 endlos aufruft
Timeout-Ursache sind in den Templates "Ynotice" und "Baustelle" die noinclude-Bereiche, in denen der Template-Name erneut auftaucht. Der erste Buchstabe muss entweder kleingeschrieben werden oder - besser - durch Hexadezimal-HTML-Zeichen ersetzt werden:
<noinclude> === Beispielvorlage === {{bnotice|text= }} </noinclude> <noinclude> === Beispielvorlage === {{Baustelle}} </noinclude>
Abhilfe schaffen folgende Änderungen von https://www.mediawiki.org/wiki/Extension_talk:AccessControl#Selected_fixes_against_2.5:
//function makeGroupArray(...) //Z.94 $usersreadonly[] = (string)$user; #$usersreadonly[] = $user; //Z.97 $userswrite[] = (string)$user; #$userswrite[] = $user; //function getUsersFromPages(...) //Z.150 $gt = $Title->newFromText( $group ); #$gt = $Title->makeTitle( 0, $group ); //function fromTemplates(...) //Z.231 if ( $wgUser->isAnon() ) { #if ( $wgUser->mID === 0 ) { //Z.236 if ( in_array( 'sysop', $wgUser->getGroups(), true) ) { #if ( in_array( 'sysop', $wgUser->mGroups, true) ) { //Z.244 if ( ! in_array( $wgUser->getName(), $users[0], true) ) { #if ( ! in_array( $wgUser->mName, $users[0], true) ) { //Z.255 if ( ! in_array( $wgUser->getName(), $users[1], true) ) { #if ( ! in_array( $wgUser->mName, $users[1], true) ) { //Z.298 $gt = $Title->newFromText( $redirecttarget ); #$gt = $Title->makeTitle( 0, $redirecttarget ); //function hookUserCan(...) //Z.322 if ( $wgUser->isAnon() ) { #if ( $wgUser->mID === 0 ) { //Z.338 if ( $wgUser->isAnon() ) { #if ( $wgUser->mID === 0 ) { //Z.351 if ( in_array( $wgUser->getName(), $users[0], true) ) { #if ( in_array( $wgUser->mName, $users[0], true) ) { //Z.364 if ( in_array( $wgUser->getName(), $users[1], true) ) { #if ( in_array( $wgUser->mName, $users[1], true) ) {
Einrichten einer Nutzungsgruppe[Bearbeiten]
Eine Gruppe von Usern, die alleine Zugang auf bestimmte Seiten haben soll, wird z. b. beim Repositorium im Namensrauam "ACCESS" wie unten eingerichtet.
- Speichern der Liste auf der Seite Access:SIP
<accesscontrol>Access:SIP</accesscontrol># Schutz der eigenen Seite *Hschwarz # einfache Liste der User *HJuling *MSteiger *SLaue *SBrueggerhoff *Testuser
Approved_Revs[Bearbeiten]
Mit dieser Erweiterung können Revisionen (Versionen einer SalzWiki-Seite) bestätigt oder abgelehnt werden.
Installation der Erweiterung "Approved_Revs"
- Die Erweiterung wird mit der Version 0.7.0 REL1.23 2015-06-16T21:01:12 513cff5 heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis des jeweiligen Wikis kopiert.
- Es muss bei einem neuen Wiki eine Datenbank-Tabelle mit dem Präfix "sw_" (SalzWiki, SaltWiki) bzw. "sr_" (Repository) und dem Namen "approved_revs" angelegt werden. Hierzu gibt es zwei Möglichkeiten:
- Das Skript "update.php" von "MediaWiki's/maintenance" benutzen oder
- Mittels "phpMyAdmin" in der Datenbank die Tabelle mit den beiden SQL-Befehlen, die in der Datei "ApprovedRevs.sql" der Erweiterung zu finden sind, erstellen.
- Konfiguration von den Approved_Revs in der LocalSettings.php
// SalzWiki require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" ); $wgGroupPermissions['Redakteur']['approverevisions'] = true; $wgGroupPermissions['sysop']['approverevisions'] = true; $wgGroupPermissions['autor']['viewlinktolatest'] = true; $wgGroupPermissions['*']['viewlinktolatest'] = false; $wgGroupPermissions['sysop']['viewlinktolatest'] = true;
// SaltWiki require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" ); $wgGroupPermissions['Editor']['approverevisions'] = true; $wgGroupPermissions['sysop']['approverevisions'] = true; $wgGroupPermissions['autor']['viewlinktolatest'] = true; $wgGroupPermissions['*']['viewlinktolatest'] = false; $wgGroupPermissions['sysop']['viewlinktolatest'] = true;
// Repository require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" ); $wgGroupPermissions['Editor']['approverevisions'] = true; $wgGroupPermissions['sysop']['approverevisions'] = true; #$wgGroupPermissions['autor']['viewlinktolatest'] = true; $wgGroupPermissions['*']['viewlinktolatest'] = false; $wgGroupPermissions['sysop']['viewlinktolatest'] = true;
Funktionsweise
Man kann Revisionen bestätigen - oder wieder ablehnen. Die bestätigte Version wird allen Usern angezeigt.
- Aktivierung von Approved_Revs, z.B. alle Autoren können Seiten als geprüft markieren
$wgGroupPermissions['autor']['approverevisions'] = true;
- Für alle wird der Approved_Revs Link deaktiviert.
$wgGroupPermissions['*']['viewlinktolatest'] = false;
- Für alle Autoren werden diese wieder eingeblendet
$wgGroupPermissions['autor']['viewlinktolatest'] = true; $wgGroupPermissions['sysops']['viewlinktolatest'] = true;
Diejenigen, die das Recht "viewlinktolatest" haben, sehen einen Link unter dem Titel des Artikels, um zur aktuellsten Version zu
kommen.
Diejenigen, die das Recht "approverevisions" haben, sehen die "Bestätigen" und "Ablehnen" Links in der History (Versionen).
Nur Administratoren, d.h. Redakteure können eine Version bestätigen bzw. Ablehnen!
Ausblenden von der History (wurde nicht aktiviert)
Wenn nur die Autoren, Redakteure und Admins die History sehen sollen ist Folgendes in der Datei "LocalSettings.php" zu ergänzen:
## Bei der angegebenen User-Gruppe wird der Versionen-Button angezeigt. Der Admin sieht diesen immer! $groupToShowHistory = 'autor'; ## Code um die Histroy zu verstecken - sreher 20101105 $wgHooks['SkinTemplateContentActions'][] = 'removeHistory'; function removeHistory( $content_actions ) { global $wgUser, $groupToShowHistory; # print_r ($wgUser); if ( ! (in_array( $groupToShowHistory, $wgUser->mGroups ) or in_array( 'sysop', $wgUser- >mGroups) ) ) { #print "drin!"; unset( $content_actions['history'] ); // only this to remove an action } return true; }
Bibliography[Bearbeiten]
Die Extension Bibliography wurde durch die Erweiterung BibManager ersetzt. Siehe hierzu unter "Erweiterungen - BibManager".
BibManager[Bearbeiten]
Versionen[Bearbeiten]
Für MediaWiki 1.23 LTS wird wegen diverser Probleme bei der BibManager-Version v1.1.0 die Version 1.23 REL1.26 2015-11-17T01:01:50 d824ce8 installiert.
- v1.23.0 master 2016-01-15T07:01:22 951b12f
- v1.23.0 REL1.26 2015-11-17T01:01:50 d824ce8
- v1.1.0 REL1.23 2015-06-16T21:02:02 6218f71 (angeboten für MW 1.22+)
- v1 (verwendet bei MW1.16)
Installation[Bearbeiten]
Die Erweiterung wird zur Erstellung und Verwaltung der Literaturhinweise bzw. zum Einbinden der Zitate in Artikel benutzt.
Sie besteht aus der Grunderweiterung "BibManager" und der Erweiterung "Saltwiki" mit weiteren für SalzWiki spezifischen Feldern, die nicht im original BibTeX spezifiziert sind, wie DOI und Fulltext, sowie der Erweiterung "SaltwikiUpload" für den Dateiupload im Repositorium.
Bei der Installeion wird die Erweiterung "BibManager" in den Ordner "\extensions\BibManager\" kopiert.
In die Localsettings.php wird Folgendes eingefügt.
#Definition eines Namensraumes , in dem nachher alle Literaturseiten liegen define("NS_CITATION", 800); define("NS_CITATION_TALK", 801); $wgExtraNamespaces[NS_CITATION] = 'Cit'; $wgExtraNamespaces[NS_CITATION_TALK] = 'Cit_talk'; $wgBibManagerCitationArticleNamespace = NS_CITATION;
##Freischalten der Erweiterungen require_once('extensions/BibManager/BibManager.php'); require_once('extensions/SaltWiki/SaltWiki.php' ); #nur im Repositorium: require_once('extensions/SaltWikiUpload/SaltWikiUpload.php' );
$wgBibManagerCitationArticleNamespace = NS_CITATION;
#### RepoClass und ScholarLink auskommentiert 2012-05-11 wg. neuer Version inkl. GoogleScholar ## Option zur Weiterentwickung zur Benutzung einer zentralen Bibliographie #$wgBibManagerRepoClass = 'BibManagerLocalMWDatabaseRepo'; ## Verlinkung zu GoogleScholar wird konfiguriert #$wgBibManagerScholarLink = 'http://scholar.google.com/scholar?q=%title%';
## Anpassung an die gewünschte Zitierweise $wgBibManagerCitationFormats = array ( '-' => '%author%: %title%, %year% %url%, %doi%.', 'article' => '%author% (%year%): %title%. %journal%, %volume% (%number%), %pages%, %url%, %doi%.', 'book' => '%editor% %author% (%year%): %title%, %edition%, %publisher%, %address%, %pages%, %url%., %doi%', 'booklet' => '%title% %url%, %doi%.', 'conference' => '%author% (%year%): %title%. %booktitle% %url%, %doi%.', 'inbook' => '%author% (%year%): %title%. In: %editor%: %edition%, %publisher%, %address%, %pages% %url%, %doi%.', 'incollection' => '%author% (%year%): %title%. In: %editor%: %booktitle%, %publisher%, %pages%, %url%, %doi%.', 'inproceedings' => '%author% (%year%): %title%. In: %editor%: %booktitle%,%publisher%, %pages%, %url%, %doi%.', 'manual' => '%title% %url%, %doi%.', 'mastersthesis' => '%author% (%year%): %title%, %type%, %school%, %address%, %url%, %doi%.', 'misc' => '%author% (%year%): %title%, %howpublished%, %pages% %url%, %doi%.', 'phdthesis' => '%author% (%year%): %title%. %type%, %school%, %url%, %doi%.', 'proceedings' => '%editor% (%year%): %title%, %publisher%, %url%, %doi%.', 'techreport' => '%author% (%year%): %title%. %institution% %url%, %doi%.', 'unpublished' => '%author% (%year%): %title%. %note%, %url%, %doi%.' );
BibManager v1.23 REL1_26 und v1.23 master[Bearbeiten]
- Fehler bei "Edit" mit Fehlermeldung zu bereits vorhandenem Schlüssel
- Fehler bei "Delete" wegen fehlender Datensatzkennung
- Bei "Verwalten" fehlen rechts die Icons für "Edit" und "Delete" sowie die Trennung zwischen beiden Texten: css-Datei fehlt im head-Bereich
- In der Datei "\extensions\BibManager\includes\BibManagerHooks.php" ist in der Funktion "getIcons(...)" der Pfad 2-mal hart-codiert statt mit einer Variablen angegeben:
... htmlspecialchars( $wgScriptPath . '/extensions/BibManager/resources/images/[pencil.png|book.png]' );
BibManager v1.1.0 REL1_23[Bearbeiten]
- Fehler bei "Create", "Edit" und "Delete" wegen fehlender Datensatzkennung.
- In der Datei "\extensions\BibManager\includes\BibManagerHooks.php" ist in der Funktion "onBeforePageDisplay(...)" der Pfad zur Erweiterung 3-mal hart-codiert statt mit einer Variablen angegeben:
... htmlspecialchars( $wgScriptPath . '/extensions/BibManager/client/[BibManagerCommon.css|BibManagerEdit.js|BibManagerList.js]' );
- Für ebenfalls hart-codierte Pfadangaben in der Funktion "getIcons(...)" siehe #BibManager 1.23 REL1_26 und 1.23 master
Spezialseiten-Gruppe[Bearbeiten]
Verfügbarkeit in Abhängigkeit vom Status
- Ohne Anmeldung sollen nur die Verweise zu "Bibliographien anzeigen: Autoren" und "Bibliographien verwalten" sichtbar sein. Bei "Bibliographien verwalten" sind dann die Funktionen "Edit" und "Delete" nicht vorhanden, sondern nur "Export".
- Nach Anmeldung sind auch die Funktionen "Bibliographieeintrag anlegen" und "Bibliographien importieren" verfügbar.
Von den zu ändernden Dateien bzw. Verzeichnissen ist nach den Anpassungen jeweils eine Kopie mit dem Suffix "SW" im Dateinamen bzw. Verzeichnisnamen zu speichern, um nach Updates von MediaWiki oder Erweiterungen die Änderungen übernehmen zu können.
Es sollte eine Datei "\i18n\qqq.json" mit folgendem Code erstellt werden:
{ "@metadata": { "authors": [] }, "bibmanager": "BibManager", "bibmanager-desc": "{{desc}}" }
BibManager v1.23.0 REL1.26 Datei-Anpassungen[Bearbeiten]
- \i18n\ => \i18nSW\
- de.json
- de-formal.json
- en.json
- qqq.json
- \includes\
- BibManagerHooks.php => BibManagerHooksSW.php
- BibManagerPagerList.php =>BibManagerPagerListSW.php
- \includes\specials\
- SpecialBibManagerDelete.php => SpecialBibManagerDeleteSW.php
- SpecialBibManagerEdit.php => SpecialBibManagerEditSW.php
- \resources\ext.bibManager.css =ext.bibManagerSW.css>
BibManager v1.1.0 REL1.23 Datei-Anpassungen[Bearbeiten]
- BibManager.php => BibManagerSW.php
BibManager.alias.php => BibManager.aliasSW.php- \i18n\ => \i18nSW\
- de.json
- de-formal.json
- en.json
- qqq.json
- \specialpages\ => \specialpagesSW\
- BibManagerCreate_body.php
- BibManagerDelete_body.php
- BibManagerEdit_body.php
- BibManagerExport_body.php
- BibManagerImport_body.php
- BibManagerList_body.php
- BibManagerListAuthors_body.php
Die Spezialseiten-Gruppe "BibManager" und die darin angezeigten Spezialseiten werden in der Datei "\extensions\BibManager\i18n\[Sprache].json" festgelegt; siehe https://www.mediawiki.org/wiki/Manual:Special_pages#The_localisation_file. Die Einbindung funktioniert mit MW1.23 fehlerhaft: Entweder werden die Seiten nicht angezeigt (Schlüssel mit Großbuchstaben wie bisher) oder werden die Seiten nicht gefunden (Schlüssel insgesamt in Kleinbuchstaben).
In den Zeilen 5 und 13 der json-Sprachdateien wäre der Array-Schlüssel von "BibManager" in Kleinbuchstaben zu ändern:
... "specialpages-group-bibmanager": "BibManager", ... "bibmanager": "BibManager", ...
Die Variable $wgSpecialPageGroups in der Datei "BibManager.php" gilt als "deprecated" seit MW 1.21 (https://gerrit.wikimedia.org/r/#/c/220819/3) und kann auskommentiert werden, wenn im Verzeichnis "\specialpages\" in den jeweiligen Dateien "BibManager..._body.php" am Ende der Klasse folgende Funktion eingefügt wird (https://www.mediawiki.org/wiki/Manual:Special_pages => Special page group):
protected function getGroupName(){ return 'bibmanager'; }
Systemnachrichten für Gruppe prüfen
Ob die Gruppe "BibManager" in den Systemnachrichten auftaucht, lässt sich durch Aufruf der MediaWiki-Systemnachrichten bei den Spezialseiten überprüfen, indem als Präfixfilter "Specialpages-group" angegeben wird. Dann sollte bei den Ergebnissen der Name "specialpages-group-bibmanager" mit dem Text "BibManager" aufgelistet werden.
Einschränkungen für Darstellung in der Spezialseiten-Gruppe überprüfen
Wenn die BibManager-Spezialseiten nicht angezeigt werden, folgendes prüfen:
- In den Dateien "BibManager.php" oder "LocalSettings.php" die Gruppenberechtigung ändern:
- Bibliographien anlegen: $wgGroupPermissions['sysop']['bibmanagercreate'] => $wgGroupPermissions['*']['bibmanagercreate']
- Bibliographien importieren: $wgGroupPermissions['sysop']['bibmanageredit'] => $wgGroupPermissions['*']['bibmanageredit']
- Beim Klassen-Konstruktor "parent::__construct('...', '...')" den 2. Parameter (Kleinbuchstaben) für $restriction weggelassen in folgenden Dateien:
- "\specialpages\BibManagerCreate_body.php" in Zeile 6
- "\specialpages\BibManagerImport_body.php" in Zeile 6
Fehler korrigieren[Bearbeiten]
Fehler beim Speichern nach Bearbeitung[Bearbeiten]
Der bearbeitete Datensatz kann nicht gespeichert werden, weil die Prüfung des Bearbeitungsmodus fehlerhaft ist und der Datensatz wie ein Neueintrag auf einen bereits vorhandenen Zitatschlüssel überprüft wird.
In der Datei "\extensions\BibManager\includes\specials\SpecialBibManagerEdit.php" muss in der Funktion "execute(...)" in Zeile 69 "bm_edit_mode" zu "wpbm_edit_mode" geändert werden:
$editMode = $wgRequest->getBool( 'wpbm_edit_mode' ); #$editMode = $wgRequest->getBool( 'bm_edit_mode' ); für HAWK HHG geändert 2016-02-16
Anschließend ist eine Kopie der Datei mit dem Suffix "SW" zu speichern.
Fehler bei Löschvorgang[Bearbeiten]
Der Datensatz kann wegen fehlender Angaben nach der Löschbestätigung nicht gelöscht werden:
- Element "bm_bibtexCitation" existiert nicht im Formular, sondern "wpbm_bibtexCitation"
- Element "bm_delete" existiert nicht im Formular, sondern "wpbm_delete"
- $deleteSubmit ist immer falsch, weil String (Zeichenkette) mit Boolean (Wahrheitswert) verglichen wird
In der Datei "\extensions\BibManager\includes\specials\SpecialBibManagerDelete.php" folgende Anpassungen vornehmen:
- Bei Array "$formDescriptor" einen Namen für das Formularfeld "bm_delete" vorgeben
- Bei Array "$formDescriptor" einen Namen für das Formularfeld "bm_bibtexCitation" vorgeben
- In Funktion "formSubmit(...)" bei der Prüfung von "$formdata['bm_delete']" Umwandlung von Boolean in String einfügen
//Z.59ff $formDescriptor = array ( 'bm_delete' = array ( 'class' => 'HTMLHiddenField'; 'default' => true, 'name' => 'bm_delete', // für HAWK HHG eingefügt 2016-02-09 ) 'bm_bibtexCitation' = array ( 'class' => 'HTMLHiddenField'; 'default' => $citation, 'name' => 'bm_bibtexCitation', // für HAWK HHG eingefügt 2016-02-09 ) ); //Z.89 if ( empty( $formData['bm_delete'] ) || $formData['bm_delete'] !== (string)true ) // für HAWK HHG ergänzt mit (string) 2016-02-09
Falscher Text nach Löschvorgang[Bearbeiten]
Nachdem ein Eintrag gelöscht wurde, erscheint "Ihre Daten wurden erfolgreich gespeichert!" (auch schon in MW1.16).
In der Datei "\extensions\BibManager\includes\specials\SpecialBibManagerDelete.php" in der Funktion "formSubmit(...)" wird in Z.94 fälschlicherweise "bm_success_save-complete" verwendet. Da es kein Text-Element "bm_success_delete" gibt, muss es in den Dateien "\i18n\[en|de|de-formal].json" für "en", "de" und "de-formal" in der Zeile nach "bm_success_save-complete" ergänzt werden, damit es in der Datei "BibManagerDelete_body.php" verwendet werden kann.
Nach den Anpassungen ist die Delete-Datei als Kopie mit dem Suffix "SW" im Verzeichnis "specials" und das Verzeichnis "i18n" als Kopie "i18nSW" zu speichern.
//de.json Z.135f "bm_success_save-complete": "<div class=\"successbox\"><strong>Deine Daten wurden erfolgreich gespeichert!</strong></div><div class=\"visualClear\" id=\"mw-pref-clear\"></div>", "bm_success_delete": "<div class=\"successbox\"><strong>Die Daten wurden erfolgreich gelöscht!</strong></div><div class=\"visualClear\" id=\"mw-pref-clear\"></div>", //de-formal.json Z.135f "bm_success_save-complete": "<div class=\"successbox\"><strong>Ihre Daten wurden erfolgreich gespeichert!</strong></div><div class=\"visualClear\" id=\"mw-pref-clear\"></div>", "bm_success_delete": "<div class=\"successbox\"><strong>Die Daten wurden erfolgreich gelöscht!</strong></div><div class=\"visualClear\" id=\"mw-pref-clear\"></div>", //en.json Z.135f "bm_success_save-complete": "<div class=\"successbox\"><strong>Your data was successfully saved!</strong></div><div class=\"visualClear\" id=\"mw-pref-clear\"></div>", "bm_success_delete": "<div class=\"successbox\"><strong>The data were successfully deleted!</strong></div><div class=\"visualClear\" id=\"mw-pref-clear\"></div>",
//SpecialBibManagerDelete.php Z.92ff // für HAWK HHG geändert zu "delete"-Text statt "save-complete" 2016-02-15 if ( $result === true ) { $wgOut->addHtml( wfMessage( 'bm_success_delete') ); #wfMsg( 'bm_success_save-complete') für HAWK HHG korrigiert 2016-02-08 ... }
Außerdem kann in der Datei "SpecialBibManagerDelete.php" wie in Z.94 die Funktion "wfMsg()" ersetzt werden durch "wfMessage()" in den Zeilen 24, 29, 35, 43, 54, 71.
Fehler im HTML-Code korrigieren[Bearbeiten]
Bei der BibManager-Übesicht wird für jede Tabellenzeile ein statt eines erzeugt (auch schon in MW1.16). Im Verzeichnis "BibManager\includes\" in der Datei "bibManagerPagerList.php" in Zeile 133 den fehlenden Schrägstrich einfügen:
$tablerow[] = '</tr>'; // Schrägstrich für schließendes Tag eingefügt 2012-09-17 G. Werner
Fehlende Icons bei Verweisen rechts für "edit" und "delete"[Bearbeiten]
In der BibManager-Übersicht sind rechts Text-Hyperlinks ohne Abstand für "edit" und "delete" anstatt Icons; es sind in folgenden Dateien Anpassungen vorzunehmen:
- "\extensions\BibManager\includes\BibManagerHooks.php"
- "\extensions\BibManager\resources\ext.bibManager.css"
- "\extensions\BibManager\includes\BibManagerPagerList.php"
Nach den Anpassungen ist jeweils eine Kopie der Datei mit dem Suffix "SW" zu speichern.
Bei "BibManagerHooks.php" ist in Funktion "onBeforePageDisplay(...)" am Anfang, vor Zeile 29 (Eindbindung der JS-Module), die Einbindung der css-Datei einzufügen:
// für HAWK HHG eingefügt 2016-02-12
$out->addModuleStyles( 'ext.bibManager.styles' );
Bei "ext.bibManager.css" in Zeile 96 einen Kommentar einfügen und zwischen "width: 16px;" und "text-indent: 9999px;", Z.99f, eine neue Zeile "height: 15px;" einfügen
/* für HAWK HHG wg. nicht sichtbarer Icons, die bei BibManager v1 ohne "overflow:hidden" sehr weit rechts waren, geändert 2016-02-15 */
#bm_table a.icon {
...
height: 15 px; /*text-indent: 9999px;*/
...
}
Bei "BibManagerPagerList.php" in Funktion "formatRow(...)" in den Zeilen 104, 108, 117 und 120 die "wfMsg"-Funktionen ersetzen durch "wfMessage"-Funktionen:
if ($wgUser->isAllowed('bibmanageredit')){
// für HAWK HHG "wfMsg()" zu "wfMessage()" geändert 2016-02-15
$editLink = Linker::link(
SpecialPage::getTitleFor( 'BibManagerEdit' ),
wfMessage( 'bm_list_table_edit' ), /*wfMsg( 'bm_list_table_edit' )*/
array (
'class' => 'icon edit',
'title' => wfMessage( 'bm_list_table_edit' ) /*wfMsg( 'bm_list_table_edit' )*/
),
$specialPageQuery
);
}
if ($wgUser->isAllowed('bibmanagerdelete')){
$deleteLink = Linker::link(
SpecialPage::getTitleFor( 'BibManagerDelete' ),
wfMessage( 'bm_list_table_delete' ),
array (
...
),
$specialPageQuery
);
}
In BibManager v1.1.0 Fehler bei SpecialPageAliases[Bearbeiten]
In der Datei "BibManager.alias.php" müssen die Array-Schlüssel von $specialPageAliases wie z. B. 'BibManagerCreate' für die jeweilige Sprache in Kleinbuchstaben angegeben werden, damit die BibManager-Seiten bei den Spezialseiten aufgelistet werden, allerdings werden die Seiten dann nicht mehr gefunden, wenn man auf die Verweise klickt.
Einzige Lösung scheint zu sein, in der Datei "BibManager.php" die Zeile 66 auszukommentieren:
#$wgExtensionMessagesFiles['BibManagerAlias'] = $dir . 'BibManager.alias.php'; // Fehlfunktion in MW 1.23
In BibManager v1.1.0 fehlerhafte Funktionen auskommentieren bzw. ändern[Bearbeiten]
BibManager v1.1.0 (REL1.23) verwendet in mehreren Dateien die Funktion "wfLoadExtensionMessages()", die seit MW 1.21 nicht mehr existiert, so dass die Zeile in folgenden Dateien auskommentiert werden muss:
- "\specialpages\BibManagerCreate_body.php" in Zeile 7
- "\specialpages\BibManagerEdit_body.php" in Zeile 7
- "\specialpages\BibManagerDelete_body.php" in Zeile 7
- "\specialpages\BibManagerList_body.php" in Zeile 7
- "\specialpages\BibManagerListAuthors_body.php" in Zeile 7
BibManager v1.1.0 (REL1.23) verwendet in der Datei "\specialpages\BibManagerList_body.php" in den Zeilen 25 und 29 die Methode "SpecialPageFactory::getPage('...')->getDescription()", die einen Fehler "Call to a member function getDescription() on null" verursacht, weil "getPage('...') als Ergebnis NULL hat und "getDescription()" nicht darauf angewendet werden kann. Ursache ist der Name bei "getPage('...')", der mit dem Alias ersetzt werden muss. Der Alias der Sprachvarianten befindet sich in der Datei "\BibManager\BibManager.alias.php". Um den Alias für "getPage('...')" zu erhalten, wird die Methode "SpecialPageFactory::getLocalNameFor('...')" benötigt:
// $linkDescription eingefügt und $createLink angepasst 2015-12-01 G. Werner für HAWK HHG
$linkDescription = array();
if(SpecialPageFactory::getPage(SpecialPageFactory::getLocalNameFor('BibManagerCreate'))===NULL){
$linkDescription['Create'] = NULL;
}
else{
$linkDescription['Create'] = SpecialPageFactory::getPage(SpecialPageFactory::getLocalNameFor('BibManagerCreate'))->getDescription();
}
if(SpecialPageFactory::getPage(SpecialPageFactory::getLocalNameFor('BibManagerImport'))===NULL){
$linkDescription['Import'] = NULL;
}
else{
$linkDescription['Import'] = SpecialPageFactory::getPage(SpecialPageFactory::getLocalNameFor('BibManagerImport'))->getDescription();
}
$createLink = Linker::link(
SpecialPage::getTitleFor('BibManagerCreate'),
/*SpecialPageFactory::getPage('BibManagerCreate')->getDescription()*/
$linkDescription['Create']
);
$importLink = Linker::link(
SpecialPage::getTitleFor('BibManagerImport'),
/*SpecialPageFactory::getPage('BibManagerImport')->getDescription()*/
$linkDescription['BibManagerImport']
);
In BibManager v1.1.0 Fehler bei neuem Eintrag und Eintragsbearbeitung[Bearbeiten]
Der Fehler bei einem Neueintrag in BibManager v1.1.0 REL1.23 2015-06-16 resultiert aus der Weiterleitung zur Datei für Bearbeitungen "specialpages\BibManagerEdit_body.php".
In der Datei "specialpages\BibManagerCreate_body.php" kann in der Funktion "execute()" das Array "$formDescriptor" zwischen "id" und "options" um die Angabe eines Namens ergänzt werden, damit das Formularfeld "bm_select_type" nicht "wpbm_select_type" heißt:
//Z.26ff $formDescriptor = array ( 'bm_select_type' => array ( 'class' => 'HTMLSelectField', ... 'id' => '', 'name' => 'bm_select_type', 'options' => ... ) )
BibManager-Berechtigungen[Bearbeiten]
Rechte-Vergabe für BibManager
In der Datei "LocalSettings.php" werden zwischen "include_once(...)" und dem Array für die Zitierweise folgende Berechtigungen definiert, wobei im deutschen Salzwiki "Redakteur" statt "Editor" anzugeben ist:
## Berechtigungen eingefügt 2012-05-11 $wgGroupPermissions['*']['bibmanagercreate'] = false; $wgGroupPermissions['*']['bibmanageredit'] = false; $wgGroupPermissions['*']['bibmanagerdelete'] = false; $wgGroupPermissions['autor']['bibmanagercreate'] = true; $wgGroupPermissions['autor']['bibmanageredit'] = true; #$wgGroupPermissions['autor']['bibmanagerdelete'] = false; $wgGroupPermissions['Redakteur|Editor']['bibmanagercreate'] = true; $wgGroupPermissions['Redakteur|Editor']['bibmanageredit'] = true; $wgGroupPermissions['Redakteur|Editor']['bibmanagerdelete'] = true; $wgGroupPermissions['sysop']['bibmanagercreate'] = true; $wgGroupPermissions['sysop']['bibmanageredit'] = true; $wgGroupPermissions['sysop']['bibmanagerdelete'] = true;
Entfernen der Löschen- und Editier-Buttons ohne Rechte-Vergabe
Das Entfernen der Schaltflächen funktionierte bis April 2012 auf nachfolgend beschriebene Weise, solange es noch kein Rechte-Management für den BibManager gab.
In der Datei BibManager/includes/BibManagerPagerList.php werden in den Zeilen 57ff dazu die Variablen "$editLink" und "$deleteLink" entfernt.
Mit ein wenig PHP-Kenntnissen kann man auch die Anzeige des Links schaltbar machen:
$tablerow = array ( );
$tablerow[] = ''; $tablerow[] = ' ' . $citationLink . ''; $tablerow[] = ' ' . $format . ''; #$tablerow[] = ' ' . $editLink . $deleteLink . ''; if($_REQUEST['showDelete'] == 1){$tablerow[] = ' ' . $editLink . $deleteLink . '';} else{$tablerow[] = ' ' . $editLink . '';} $tablerow[] = ' ' . $exportLink . ''; $tablerow[] = ''; So würde der Link nur angezeigt werden, wenn in der Url "&showDelete=1" vorkommt. Wenn die Löschen-Funktion vollständig deaktiviert und nicht nur den Link versteckt werden soll, müssen in der Datei BibManager/BibManager.php folgende Zeilen auskommentiert werden: $wgAutoloadClasses['BibManagerDelete'] = $dir . 'specialpages/BibManagerDelete_body.php'; $wgSpecialPages['BibManagerDelete'] = 'BibManagerDelete';
Anleitung anpassen und installieren[Bearbeiten]
Die von halloWelt! gelieferte Datei "manual.xml" enthält alle 4 Anleitungen: Benutzerhandbuch, User manual, Administrationshandbuch und Admin manual, die jeweils durch die <page>-Elemente gegliedert sind.
- Für das SalzWiki ist nur der <page>-Bereich "BibManager:Benutzerhandbuch" für den Import relevant, so dass eine Kopie der Datei unter "bibmanager_manual_user_de.xml" gespeichert wird und in dieser Datei die 3 anderen <page>-Bereiche entfernt werden.
- Für das SaltWiki und das Repositorium ist jeweils nur der <page>-Bereich "BibManager:User manual" für den Import relevant, so dass eine Kopie der Datei unter "bibmanager_manual_user_en.xml" gespeichert wird und in dieser Datei die 3 anderen <page>-Bereiche entfernt werden.
- Der Bilder-Import für das Handbuch findet nur im Repositorium statt.
Anleitung anpassen[Bearbeiten]
Im <title>-Element nach <page> ist jeweils "HalloWelt:" vor "BibManager:..." zu entfernen:
<page> <title>HalloWelt:BibManager:...</title>
Ebenso ist der Teil "Project:" vor "BibManager:..." in den Admin-Anleitungen am Ende des <text>-Elementes zu entfernen:
[[Project:BibManager:...]] [[Project:BibManager:...]]</text> </revision> </page>
Anleitung im Wiki installieren[Bearbeiten]
- Die angepasste xml-Datei über "Spezialseiten->Import" ins Wiki laden.
- Anschließend sind die Bilder für das Project:BibManager:... im Repositorium mittels DOS-Konsole und PHP hochzuladen, um sie ins Wiki zu bringen:
D:\ xampp\php\php.exe xampp\htdocs\saltwiki\maintenance\importImages.php xampp\htdocs\saltwiki\images_en
CategoryTree[Bearbeiten]
Die Extension dient zur Darstellung der Kategorienbäzme, damit schnell den Artikeln und Dokumenten die richtigen Kategorien zugewiesen werden können.
- Extension unter http://www.mediawiki.org/wiki/Categorytree herunterladen und in den Extensionsordner kopieren.
- In den Localsettinge eingefügen.
$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");
CharacterEscapes, LOParserFunctions, ControlStructureFunctions[Bearbeiten]
Notwendig für #if: und #switch-Anweisungen (z. B. beim Einsetzen des Seitentitels im Kopf von Vorlage:Infobox_Salz und bei den Hilfe-Seiten.
"ControlStructureFunctions" soll laut "mediawiki.org" nur bis Version 1.12 erforderlich und danach im Wiki-Code integriert sein, was aber scheinbar nicht zutrifft.
Alternativ zu "LOParserFunctions" und "ControlStructureFunctions" kann möglicherweise auch die Erweiterung "ParserFunctions" (http://www.mediawiki.org/wiki/Help:ParserFunctions) in Kombination mit der Erweiterung "Loop" (http://www.mediawiki.org/wiki/Help:Loop) verwendet werden, wobei Folgendes zu berücksichtigen ist:
Don't These Parser Functions Already Exist? Yes and no. The ParserFunctions extension has #if, #ifeq, #ifexpr, #switch, and #ifexist, and Loop Functions extension has #for and #foreach. The limitation of all those parser functions is that wiki markup is parsed before any parameters are passed to the underlying function. These functions bypass that limitation through character escapes (see below), and allow wiki markup to be parsed after the parameters have been passed.
- Extensions unter http://www.mediawiki.org/wiki/Extension:Character_Escapes, http://www.mediawiki.org/wiki/Extension:LO_Parser_Functions und http://www.mediawiki.org/wiki/Extension:Control_Structure_Functions/ControlStructureFunctions.php herunterladen und in den Ordner "extensions" kopieren.
- Extension CharacterEscapes
- Im Verzeichnis "extensions" ein Unterverzeichnis "CharacterEscapes" und darin eine Datei "CharacterEscapes.php" anlegen.
- In der Datei das Quelltext-Beispiel von http://www.mediawiki.org/wiki/Extension:Character_Escapes einfügen.
- LOParserFunctions
- Im Verzeichnis "extensions" ein Unterverzeichnis "LOParserFunctions" und darin eine Datei "LOParserFunctions.php" und eine Datei "LOParserFunctions.i18n.php" anlegen.
- In den Dateien die Quelltext-Beispiele von http://www.mediawiki.org/wiki/Extension:LO_Parser_Functions einfügen und jeweils die fehlenden php-Tags "?>" am Ende ergänzen.
- In das Verzeichnis die Datei "expr.php" von http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/ParserFunctions/Expr.php?revision=25357 kopieren
- Extension ControlStructureFunctions
- Im Verzeichnis "extensions" ein Unterverzeichnis "ControlStructureFunctions" und darin eine Datei "ControlStructureFunctions.php" und eine Datei "ControlStructureFunctions.i18n.php" anlegen.
- In den Dateien die Quelltext-Beispiele von "http://www.mediawiki.org/wiki/Extension:Control_Structure_Functions" einfügen und jeweils die fehlenden php-Tags "?>" am Ende ergänzen.
- Extension CharacterEscapes
- Erweiterungen in Datei "LocalSettings.php" eingefügen.
##Extension CharacterEscapes fuer Helppages require_once("extensions/CharacterEscapes/CharacterEscapes.php"); ##Extension LOParserFunctions fuer Helppages require_once( "extensions/LOParserFunctions/LOParserFunctions.php" ); ##Extension ControlStructureFunctions fuer Helppages # require_once( "extensions/ControlStructureFunctions/ControlStructureFunctions.php" );
CharInsert[Bearbeiten]
Diese Extension dient dazu Editierhilfen zum Einfügen von Spezialzeichen und Formatierungshilfen zur Verfügung zu stellen.Diese Hilfe wird im Bearbeitungsmodus und beim UpLoad-Formular zur Verfügung gestellt. Diese Erweiterung wurde Testweise installiert und dann wieder deaktiviert.
Die Extension wird bei http://www.mediawiki.org/wiki/Extension:CharInsert heruntergeladen und in ...Extensions/CharInsert extrahiert.
In die localsettings ist einzufügen:
require_once("$IP/extensions/CharInsert/CharInsert.php");
In Mediawiki:Edittools werden die entsprechenden Zeichen bzw. Hilfen mit
<charinsert> .. </charinsert>
eingefügt.
Cite[Bearbeiten]
Dient zum Erstellen von Fußnoten in SalzWiki Artikeln.
- Extension unter http://www.mediawiki.org/wiki/Cite herunterladen.
- Extrahieren der Dateien nach extensions/Cite
- In den Localsettings eingefügen
require_once("$IP/extensions/Cite/Cite.php");
Siehe näheres zum Einfügen von Fußnoten unter http://193.175.110.91/salzwiki/index.php/Autor#Fu.C3.9Fnoten.
ConfirmEdit[Bearbeiten]
Registrierte Nutzer dürfen auf die Diskussionseiten schreiben. Damit dies etwas sicherer vonstatten geht, wird mit ConfirmEdit ein Captcha eingeführt (bisher nur bei Salzwiki und Saltwiki, nicht bei Repositorium).
- Dateien unter http://www.mediawiki.org/wiki/Confirmedit herunterladen und unter "extensions\ConfirmEdit\" speichern.
- In der Datei "LocalSettings.php" einfügen:
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
ContactPage - Kontaktseite (Wiki-Code de-Formal)[Bearbeiten]
Für Mitteilungen allgemeiner Art wird eine Kontaktformular-Seite eingesetzt, die im Repositorium nur nach Anmeldung zur Verfügung steht. Bei Versand einer Kopie an eine im Formular eingetragene E-Mail-Adresse steht im Betreff: "Kopie Ihrer Nachricht an Hornemann (von [Ihr Name])"
Für das Kontaktformular muss als Empfangsadresse ein bestehendes Wiki-Konto angegeben werden und muss als E-Mail-Absender wegen Authentifizierung beim Versand die Angabe von $wgPasswordSender übernommen werden:
$wgContactConfig['default'] = array( 'RecipientUser' => 'Hornemann', //'WikiUser' // Must be a valid account //vormals $wgContactUser ... 'SenderEmail' => null, // Defaults to $wgPasswordSender, may be changed as required ...);
Im jeweiligen Wiki-Konto "Hornemann" wird als E-Mail-Adresse "service@salzwiki.de" bzw. "service@saltwiki.net" angegeben. Es kann auch "salzwiki.fb@hawk-hhg.de" bzw. "saltwiki.fb@hawk-hhg.de" angegeben werden.
Für das Formular wird die Erweiterung "ContactPage" benutzt. Die Sie-Form der Wiki-Übersetzungsdatei ist um einen Eintrag zu ergänzen.
Das Absenden des Kontaktformulars wird bei Nutzung ohne Anmeldung zum Verhindern von Spam über ein Captcha abgesichert. Hierfür sind bei der Erweiterung für MW 1.23 (REL1_23) Anpassungen am Code der Dateien "ContactPage_body.php", "\i18n\de.json" und "\i18n\en.json" sowie "\i18n\qqq.json" erforderlich.
- Dateien unter http://www.mediawiki.org/wiki/Extension:ContactPage bzw. für MW 1.23 unter https://git.wikimedia.org/zip/?r=mediawiki/extensions/ContactPage&h=daa666dec4793a2ce9675dbb8b6c365d105e8986&format=zip herunterladen und die Dateien unter "Extensions/ContactPage" speichern.
- Für MediaWiki 1.23 in den Übersetzungsdateien "de.json", "en.json" und "qqq.json" Zeilen einfügen (siehe weiter unten)
- In der Wiki-Systemtexte-Datei vor "'emailccsubject '=> '...'" das Array-Element "'emailccme' => 'Sende eine Kopie der E-Mail an mich'," einfügen und an Sie-Form anpassen: "Eine Kopie der E-Mail an mich senden"
- Für MediaWiki 1.23 im Verzeichnis "[wikiverzeichnis]\languages\i18n\" aus der Datei "de.json" aus Zeile 1759 in Datei "de-formal.json" in Zeile 217 einfügen
- Erweiterung mit Variablenzuweisungen in der Datei "LocalSettings.php" einfügen
ACHTUNG: Nach jedem mediawiki-Update muss überprüft werden, ob die vorgenommene Änderung in den Sprachdateien noch existiert. Deshalb ist von den Dateien jeweils eine Kopie "...SW.json" bzw. "...SW.php" zu speichern:
- MW1.23
- "[wikiverzeichnis]\languages\i18n\de.json"
- "...\extensions\ContactPage\i18n\de.json", "...de-formal.json", "...en.json" und "...qqq.json"
MW 1.23 Code-Anpassungen[Bearbeiten]
Zur Code-Anpassung siehe auch https://gerrit.wikimedia.org/r/#/c/156052/
In der Datei "\extensions\ContactPage\i18n\qqq.json" Ergänzung bei "authors" hinter "Shirayuki" sowie in Zeile 25 am Ende ein Komma und darunter eine Zeile für "contactpage-captcha-error" einfügen:
{
"metadata": {
"authors": [
...
"Shirayuki",
"Gunnar Werner HAWK HHG"
]
},
...
"contactpage-usermailererror": "...",
"contactpage-captcha-error": "Error message displayed when ehter was a CAPTCHA error (i.e. the user failed to enter the correct CAPTCHA, or didn't enter one at all, etc.)"
}
In der Datei "\extensions\ContactPage\i18n\en.json" Ergänzung bei "authors" hinter "Reedy" sowie in Zeile 20 am Ende ein Komma einfügen und darunter eine Zeile für "contactpage-captcha-error" einfügen:
{
"metadata": {
"authors": [
...
"Umherirrender",
"Gunnar Werner HAWK HHG"
]
},
...
"contactpage-usermailererror": "Mail object returned error:",
"contactpage-captcha-error": "CAPTCHA error"
}
In der Datei "\extensions\ContactPage\i18n\de.json" Ergänzung bei "authors" hinter "Umherirrender", außerdem die Menüleisten-Bezeichnung "Kontaktseite" sowie Captcha-Texte einfügen:
{
"metadata": {
"authors": [
...
"Umherirrender",
"Gunnar Werner HAWK HHG"
]
},
"contact": "Kontaktseite",
...
"contactpage-captcha": "Um die Nachricht senden zu können, bitte das Captcha lösen ([[Special:Captcha/help|weitere Informationen]])",
"contactpage-captcha-error": "Captcha-Fehlfunktion",
"contactpage-captcha-failed": "Captcha-Test nicht bestanden! ([[Special:Captcha/help|weitere Informationen]])"
}
Datei "ContactPage_body.php" vor Zeile 185 und nach Zeile 217+11 (228), vor Zeile 341+11+1 (353), nach Zeile 393+11+1+6 (411):
... // Captcha-Verwendung eingefügt für HAWK HHG 2015-12-07 if ( $this->useCaptcha() ) { $formItems['Captcha'] = array( 'label-message' => 'captcha-label', 'type' => 'info', 'default' => $this->getCaptcha(), 'raw' => true, ); } $form = new HTMLForm( $formItems, $this->getContext(), "contactpage-{$this->formType}" ); ... public function processInput( $formData ) { global $wgUserEmailUseReplyTo, $wgPasswordSender; global $wgCaptcha; // Captcha-Verwendung eingefügt für HAWK HHG 2015-12-07 ... // Captcha-Verwendung eingefügt für HAWK HHG 2015-12-07 if ( $this->useCaptcha() && !$wgCaptcha->passCaptcha() ) { // TODO proper i18n message return wfMessage( 'contactpage-captcha-error' )->plain(); } // Stolen from Special:EmailUser $error = ''; ... private static function getYesOrNoMsg( $value ) { return wfMessage( $value ? 'htmlform-yes' : 'htmlform-no' )->inContentLanguage()->text(); } // Captcha-Verwendung eingefügt für HAWK HHG 2015-12-07 /** * @return boolean True if CAPTCHA should be used, false otherwise */ private function useCaptcha() { global $wgCaptchaClass, $wgCaptchaTriggers; return $wgCaptchaClass && isset( $wgCaptchaTriggers['contactpage'] ) && $wgCaptchaTriggers['contactpage'] && !$this->getUser()->isAllowed( 'skipcaptcha' ); } // Captcha-Verwendung eingefügt für HAWK HHG 2015-12-07 /** * @return string CAPTCHA form HTML */ private function getCaptcha() { // NOTE: make sure we have a session. May be required for CAPTCHAs to work. wfSetupSession(); $captcha = ConfirmEditHooks::getInstance(); $captcha->trigger = 'contactpage'; $captcha->action = 'contact'; return '<div class="captcha">' . $captcha->getForm() . "</div>\n"; } }
LocalSettings.php[Bearbeiten]
// Version 2.2 für MediaWiki 1.25 #wfLoadExtension("ContactPage.php"); // Version 2.2 für MediaWiki 1.23 require_once( "$IP/extensions/ContactPage/ContactPage.php" ); $wgContactConfig['default'] = array( 'RecipientUser' => 'Hornemann', //'WikiUser' // Must be the name of a valid account //vormals $wgContactUser 'SenderName'=> 'Kontaktformular ' . $wgSitename, //"Contact Form " // "Contact Form on" needs to be translated //vormals $wgContactSenderName 'SenderEmail'=> null // Defaults to $wgPasswordSender, may be changed as required 'RequireDetails'=> true, // Whether users will be required to supply a name and an email address on Special:Contact 'IncludeIP'=> false, // Whether the form will include a checkbox offering to put the IP address of the submitter in the subject line 'AdditonalFields'=> array( 'Text'=> array( 'label-message'=> 'E-Mail-Nachricht', //'e-mail-message' //'emailmessage', 'type'=> 'textarea', 'rows'=> 20, 'cols'=> 80, 'required' => true, //Pflichtfeld ), ), // Added in MW 1.26 #'DisplayFormat' => 'table', // See HTMLForm documentation for available values. #'RLModules' => array(), // Resource loader modules to add to the form display page. #'RLStyleModules' => array(), // Resource loader CSS modules to add to the form display page. );
CreativeCommonsRdf[Bearbeiten]
Die Erweiterung soll ab MW-Version 1.19 die Variable "$wgEnableCreativeCommonsRdf" in der Datei "LocalSettings.php" ersetzen, hat aber noch Beta-Status (2015-09-21). Die 3 Dateien der Erweiterung können heruntergeladen werden bei https://www.mediawiki.org/wiki/Extension:CreativeCommonsRdf
DynamicPageList[Bearbeiten]
Es gibt 3 Erweiterungen mit der Bezeichnung "DynamicPageList", wobei die erste mit dem Alias "Intersection" nicht verwendet wird (siehe auch https://www.mediawiki.org/wiki/Extension:DPL).
MediaWiki 1.23[Bearbeiten]
- Für MW 1.23 wird die Erweiterung "DynamicPageList" mit dem Alias "DynamicPageList3" von https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:DynamicPageList3 heruntergeladen und nach dem Extrahieren in das Verzeichnis "extensions" des jeweiligen Wikis extrahiert.
- Einfügen in LocalSettings:
include("$IP/extensions/DynamicPageList3/DynamicPageList.php");
Inline SVG Extension[Bearbeiten]
Diese Erweiterung wird ab Mediawiki 1.23 nicht mehr verwendet, weil die üblichen Browser inzwischen SVG-Elemente darstellen können.
Die php-Datei "SVGtag.php" sorgt dafür, dass Inline-SVG-Code im Upload-Verzeichnis gespeichert und in einem "iframe" geladen wird. Dies ist erforderlich für ältere Browser, insbesondere für Internet Explorer bis einschließlich Version 8.
- Extension unter http://www.mediawiki.org/wiki/Extension:Inline_SVG_extension herunterladen.
- Datei in das Verzeichnis "extensions" kopieren
- In der Datei "LocalSettings.php" einfügen:
require_once("$IP/extensions/SVGtag.php");
JavaScript[Bearbeiten]
Entfällt bei MW 1.23.11 LTS und wird ersetzt durch eine Anpassung in der Datei "skins\MonoBook.php".
Die Erweiterung hat den Status "unmaintained" (Stand 2015-09-15); die Version 3.0.8 (2012-02-15) kann wegen einer ungültigen Internetadresse nicht heruntergeladen werden, doch gibt es auf der Internetseite https://www.organicdesign.co.nz/Extension:Javascript den Hinweis, dass die Erweiterung obsolet ist, seitdem MediaWiki den ResourceLoader bereitstellt, siehe https://www.mediawiki.org/wiki/ResourceLoader.
Diese Erweiterung diente zusammen mit der von S. Reher gelieferten Datei "customizeSidebar.js" dazu, den Navigationsbereich "Werkzeuge" in der Sidebar entsprechend dem Anmeldestatus zu manipulieren - siehe hierzu Sidebar anpassen. Dies funktionierte allerdings nur, wenn beim Browser JavaScript aktiviert war.
sichtbare Toolbox-Menüpunkte[Bearbeiten]
- SalzWiki: alle Gruppen und User
- Druckversion
- SaltWiki: alle Gruppen und User
- Printable version
- Repository: alle Gruppen und User
- Printable version
ausgeblendete Toolbox-Menüpunkte[Bearbeiten]
- SalzWiki: Nicht-Mitglieder der Gruppen "autor", "Administrators", "forschung"
- "Links auf diese Seite" (Special:WhatLinksHere/Main_Page)
- "Änderungen an verlinkten Seiten" (Spezial:%C3%84nderungen_an_verlinkten_Seiten)
- "Hochladen" (Special:Upload)
- "Spezialseiten" (Special:SpecialPages)
- "Permanenter Link" (Main_page&oldid=921)
- "Seiteninformationen" ([Seitentitel]&action=info])
- SaltWiki: Nicht-Mitglieder der Gruppen "autor", "Administrators", "forschung"
- "What links here" (Special:WhatLinksHere/Main_Page)
- "Related changes" (Special:RecentChangesLinked)
- "Hochladen" (Special:Upload)
- "Spezialseiten" (Special:SpecialPages)
- "Permanent link" (Main_page&oldid=921)
- "Page information" ([Seitentitel]&action=info])
- Repository: Nicht-Mitglieder der Gruppen "autor", "Administrators", "forschung"
- "Links auf diese Seite" (Special:WhatLinksHere/Main_Page)
- "Änderungen an verlinkten Seiten" (Spezial:%C3%84nderungen_an_verlinkten_Seiten)
- "Datei Hochladen" (Special:Upload)
- "Spezialseiten" (Spezial:Spezialseiten)
- "Permanent link" (Main_page&oldid=9522)
- "Seiteninformationen" ([Seitentitel]&action=info])
Math (Wiki-Code)[Bearbeiten]
"Math" kann heruntergeladen werden von https://www.mediawiki.org/wiki/Extension:Math/de. Es ist inzwischen eine Erweiterung; bei MW1.16 wurde hingegen die Datei "[wikiname]\includes\math.php" angepasst.
Die Erweiterung "Math" ist für die Darstellung von Formeln erforderlich und nutzt standardmäßig "texvc", wobei das mitgelieferte "texvc" nur unter Linux genutzt werden kann und für Windows erst kompiliert werden muss und problembehaftet sein soll.
Getestet werden kann die Erweiterung "Math" über die Kommandozeile:
D: cd xampp\htdocs\[wikiname] D:\xampp\php\php.exe tests\phpunit\phpunit.php extensions\Math\tests\
= ImageMagick für Math statt Texvc[Bearbeiten]
Bei MW1.23 soll zwar "Math" anstatt wie bei MW 1.16 "ImageMagick" verwendet werden (siehe https://www.mediawiki.org/Manual:Running_MediaWiki_on_Windows#ImageMagick), doch funktioniert dies nicht mit "texvc" unter Windows. In MW1.23 würde "ImageMagick" folgendermaßen deaktiviert werden:
$wgUseImageMagick = false;
Da "texvc" unter Windows ausscheidet, muss wie bei MW1.16 der Wiki-Code angepasst werden:
- in der Datei "math.php" in Z.191 und Z.195
#$wgAutoloadClasses['MathTexvc']
#$wgAutoloadClasses['MathInputCheckTexvc']
- zusätzlich in der Datei "MathRenderer.php" in Funktion "getRenderer(...)" in Z.123 unter "default:"
$renderer = new MathLaTeXML( $tex, $params ); #$renderer = new MathTexvc( $tex, $params );
- Die heruntergeladene Erweiterung entpacken in das Verzeichnis "extensions\"
- Die Erweiterung in der Datei "LocalSettings.php" einbinden
require_once "$IP/extensions/Math/Math.php";
- Existenz der Datenbanktabelle "math" überprüfen, ansonsten erstellen
- entweder SQL-Befehl für MySQL/MariaDB aus der Datei "\extensions\Math\db\math.sql" mit phpMyAdmin ausführen
- oder per Kommandozeile eine Aktualisierung ausführen:
D:\xampp\php\php.exe D:\xampp\htdocs\[wikiname]\maintenance\update.php
In der Datei "readme" gibt es folgende Hinweise:
- Seit MW1.19 beschränken sich die Rendering-Optionen auf "Always PNG" und "Leave it as TeX".
- Statt Bildern kann "MathML" mittels "LaTeXML" verwendet werden
- Für LaTeXML ist "php5-curl" erforderlich; bei Windows ist es im Verzeichnis "\php\ext\" die Datei "php_curl.dll", die als Modul in der Datei "php.ini" eingebunden sein muss
- In der Datei "LocalSettings.php" wird LaTeXML für die Konvertierung zu MathML verwendet: "$wgMathUseLaTeXML = true;"
- In der Datei "LocalSettings.php" wird für anonyme Seitenaufrufe angegeben: "$wgDefaultUserOptions['math'] = MW_MATH_LATEXML"
- Empfohlen wird eine Core-Version von wmf/1.22wmf7 oder neuer
== Texvc für Math kompilieren[Bearbeiten]
Für die Kompilierung ist MinGW gegenüber Cygwin vorzuziehen, weil es unabhängig von den dll-Dateien und deren MS-Lizenzen mit der MSVC-Runtime funktioniert (siehe http://stackoverflow.com/questions/771756/what-is-the-difference-between-cygwin-and-mingw).
MwEmbedSupport[Bearbeiten]
Die Erweiterung wird für die Wiedergabe von Videodateien mit der Erweiterung "TimedMediaHandler" benötigt. Sie kann heruntergeladen werden bei https://www.mediawiki.org/wiki/Extension:MwEmbedSupport
OggHandler[Bearbeiten]
Die Erweiterung wird ab Mediawiki 1.24 nicht mehr unterstützt; empfohlen wird die Erweiterung "TimedMediaHandler", die die Erweiterung "MwEmbedSupport" benötigt.
Diese Erweiterung dient zum Darstellen von Videodateien in SalzWiki-Artikeln. Da es sich beim OGG-Format um ein freies Format handelt, benötigt man keine Lizenz zum Darstellen der Inhalte. Es ist noch zu klären, ob eventuell das MPEG Format für eine Hochschulanwendung lizenzfrei sein könnte.
Für die Erweiterung sind "PEAR" und "FFmpeg" erforderlich.
- "PEAR" ist in der PHP-Installation des Servers enthalten.
- "FFmpeg" ist herunterzuladen von ??? und wird dann gespeichert unter "D:\ffmpeg-wiki\"
Installation der Erweiterung:
- Extension unter http://www.mediawiki.org/wiki/Extension:OggHandler herunterladen.
- Extrahieren der Dateien nach extensions/OggHandler
- In der Datei "LocalSettings.php" einfügen:
require( "$IP/extensions/OggHandler/OggHandler.php" ); $wgFFmpegLocation = 'd:\ffmpeg-wiki\bin\ffmpeg';
QuestyCaptcha[Bearbeiten]
Für SaltWiki wird zusätzlich zu "ConfirmEdit" als Erweiterung das Captcha "QuestyCaptcha" gegen Spam-Anmeldungen genutzt, da das Standard-Mathe-Captcha nicht ausreichte. Die anderen angebotenen Captchas werden in zukünftigen Mediawiki-Versionen nicht mehr unterstützt oder funktionieren nicht mit allen gängigen Browsern oder funktionieren mit nicht-barrierefreien Bildern und/oder benötigen zusätzliche Installationen auf dem Wiki-Server mit Administrationsrechten, weshalb "QuestyCaptcha" trotz Beta-Status als einzig brauchbare Möglichkeit verwendet werden muss.
- Dateien "QuestyCaptcha.php", "QuestyCaptcha.class.php" und "QuestyCaptcha.i18n.php" unter http://www.mediawiki.org/wiki/Extension:QuestyCaptcha herunterladen und unter "extensions\ConfirmEdit\" speichern.
- In der Datei "LocalSettings.php" nach "require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );" einfügen:
## ## EXTENSIONS ... require_once( "$IP/extensions/ConfirmEdit/QuestyCaptcha.php" ); $wgCaptchaClass = "QuestyCaptcha"; # Salzwiki $wgCaptchaQuestions[] = array('question' => 'Welches Wort fehlt: "Eine Frage stellen, eine ... geben"?', 'answer' => '***' ); $wgCaptchaQuestions[] = array('question' => 'Um welche Art von Webseiteninhalt handelt es sich hier: Blog oder Wiki?', 'answer' => '***' ); $wgCaptchaQuestions[] = array('question' => 'Wie lautet der Name dieses Wikis?', 'answer' => $wgSitename ); $wgCaptchaQuestions[] = array('question' => 'Bitte das magische Wort - Salz - hier eingeben:', 'answer' => '***' ); $wgCaptchaQuestions[] = array('question' => 'Bitte das Spezialwort - 8Acht8 - hier eingeben:', 'answer' => '***' ); # Saltwiki $wgCaptchaQuestions[] = array('question' => 'Which is the language of this question: Dutch, English, French, German or Spanish?', 'answer' => '***' ); $wgCaptchaQuestions[] = array( 'question' => 'Please write the following word backwards: '.$wgSitename, 'answer' => strrev($wgSitename) ); #'ikiwtlaS' $wgCaptchaQuestions[] = array( 'question' => 'The taste of salt is neither bitter nor sweet nor sourish but …', 'answer' => '***' ); $wgCaptchaQuestions[] = array('question' => 'What is the missing word: "Ask a question, give an …"', 'answer' => ***''); $wgCaptchaQuestions[] = array('question' => 'What kind of web content is this: Blog or Wiki?', 'answer' => '***'); $wgCaptchaQuestions[] = array( 'question' => 'What is this wiki\'s name (in capital letters)?', 'answer' => strtoupper($wgSitename) ); #'SALTWIKI' # Repository $wgCaptchaQuestions[] = array('question' => 'Which is the language of this question: Dutch, English, French, German or Spanish?', 'answer' => '***' ); $wgCaptchaQuestions[] = array( 'question' => 'Please write the following word backwards: '.$wgSitename, 'answer' => strrev($wgSitename) ); #'yrotisopeR' $wgCaptchaQuestions[] = array( 'question' => 'The taste of salt is neither bitter nor sweet nor sourish but …', 'answer' => '***' ); $wgCaptchaQuestions[] = array('question' => 'What is the missing word: "Ask a question, give an …"', 'answer' => ***''); $wgCaptchaQuestions[] = array('question' => 'What kind of web content is this: Blog or Wiki?', 'answer' => '***'); $wgCaptchaQuestions[] = array( 'question' => 'What is this wiki\'s name (in capital letters)?', 'answer' => strtoupper($wgSitename) ); #'REPOSITORY' #$wgCaptchaQuestions[] = array('question' => 'Please write the magic secret, "salt", here:', 'answer' => '***'); #$wgCaptchaQuestions[] = array('question' => 'Type the code word, 8eight8, here:', 'answer' => '***'); ## Auslöser für Captcha-Aktivierung # Salzwiki/Saltwiki $wgCaptchaTriggers['edit'] = true; $wgCaptchaTriggers['create'] = true; $wgCaptchaTriggers['addurl'] = true; $wgCaptchaTriggers['createaccount'] = true; $wgCaptchaTriggers['badlogin'] = true; # Salzwiki/Saltwiki/Repository $wgCaptchaTriggers['contactpage'] = true; ... ## ## EINSTELLUNGEN ... ## Salzwiki/Saltwiki #captcha Hschwarz 12.02.2010 $wgGroupPermissions['*' ]['skipcaptcha'] = false; $wgGroupPermissions['user' ]['skipcaptcha'] = false; $wgGroupPermissions['autor' ]['skipcaptcha'] = true; $wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false; $wgGroupPermissions['bot' ]['skipcaptcha'] = true; // registered bots $wgGroupPermissions['sysop' ]['skipcaptcha'] = true;
SpecialInterwiki[Bearbeiten]
Die Erweiterung wurde später in "Interwiki" umbenannt und ist in Mediawiki seit Version 1.21 enthalten.
Diese Erweiterung fügt die Seite Special:Interwiki zu Mediawiki hinzu, um die Interwiki-Tabelle sehen und editieren zu können. Es werden auch alle Änderungen aufgezeichnet. Mit dieser InterWiki Tabelle kann man einerseits einfach zu Inhalten in anderen Wikis verlinken, auch zu Wikipedia, andererseits ist es damit möglich durch das Setzen von $wgEnableScaryTranscluding = true; Inhalte eines anderen Wikis zu "transcludieren".
Die Erweiterung für MW 1.23 wird bei http://www.mediawiki.org/wiki/Extension:Interwiki heruntergeladen und in ...Extensions/Interwiki extrahiert.
In die "localsettings" eines jeden Wiki's ist dann einzufügen:
##to allow interwiki-linking, für Version MW 1.23 anderer Dateiname #require_once("$IP/extensions/Interwiki/SpecialInterwiki.php"); require_once("$IP/extensions/Interwiki/Interwiki.php"); $wgGroupPermissions['*']['interwiki'] = false; $wgGroupPermissions['sysop']['interwiki'] = true; ## nur sysops können die InterWiki Tabelle ändern und sehen $wgEnableScaryTranscluding = true; ## Seiten von anderen Wikis können eingebunden werden
Diese Erweiterung wurde in SalzWiki, SaltWiki und im Repositorium installiert.
Terminology[Bearbeiten]
Diese Erweiterung wird seit 2010-07-29 nicht mehr weiterentwickelt. Sie gilt als ineffizient bei umfangreichen Glossars. Es wird die Erweiterung "Lingo" empfohlen: http://www.mediawiki.org/wiki/Extension:Lingo.
Die Extension dient zum Erstellen eines Glossars.
Um Verwirrungen zu vermeiden wurde bei "Terminology" in der Datei "terminology.php" in den Zeilen 29 und 51 der Name der Wiki-Seite, in der alles gespeichert wird, von "Terminology" in "Glossar" bzw. für SaltWiki in "Glossary" umbenannt (nur in SalzWiki/SaltWiki, nicht im Repositorium):
- Z. 31
$wgExtensionCredits['parserhook'][] = array( 'name' => 'Glossar', //in Glossar umbenannt HJSChwarz 12.08.2010
- Z. 53
$rev = Revision::newFromTitle(Title::makeTitle(null, 'Glossar')); //in Glossar umbenannt HJSChwarz 12.08.2010
- Extension unter http://www.mediawiki.org/wiki/Extension:Terminology herunterladen.
- Datei in das Verzeichnis "extensions" kopieren
- In der Datei "LocalSettings.php" einfügen:
require_once("$IP/extensions/terminology.php");
TimedMediaHandler[Bearbeiten]
Die Erweiterung steht ab Mediawiki 1.17 zur Verfügung und benötigt die Erweiterung "MwEmbedSupport". Sie beinhaltet den "Kaltura HTML5 Player". Unterstützt werden Streaming, WebM und Ogg sowie getID3.
- Extensions unter https://www.mediawiki.org/wiki/Extension:MwEmbedSupport und https://www.mediawiki.org/wiki/Extension:TimedMediaHandler herunterladen.
- Dateien in das Verzeichnis "extensions" kopieren
- In der Datei "LocalSettings.php" registrieren:
require_once("$IP/extensions/MwEmbedSupport/MwEmbedSupport.php"); require_once("$IP/extensions/TimedMediaHandler/TimedMediaHandler.php");
User Merge - Benutzername löschen[Bearbeiten]
Das Löschen von benutzernamen, die nicht mehr benötigt werden, geschieht durch das Zusammenführen des zu löschenden Benuztzernamens mit dem Benutzername "Testuser" zu "Testuser" mit Hilfe der Extension UserMerge.
- Extension unter http://www.mediawiki.org/wiki/Extension:User_Merge_and_Delete herunterladen.
- Datei in das Verzeichnis extensions/UserMerge kopieren
- In den Localsettings eingefügen
require_once( "$IP/extensions/UserMerge/UserMerge.php" ); # Assign the usermerge right to a usergroup, i.e. to the bureaucrats: $wgGroupPermissions['bureaucrat']['usermerge'] = true;
WhosOnline - Wer ist online[Bearbeiten]
Die Extension WhosOnline dient dazu sich auf einer Specialpage anzeigen zu lassen, wer gerade online ist.
Für MediaWiki 1.23 ist im Herbst 2015 als älteste Version nur eine "REL1_25", also Version 1.4.0 für MW 1.25 erhältlich, die einen Script-Fehler verursacht, wenn in der Datei "WhosOnlineSpecialPage.php" bei der Funktion "getNavigationBar()" die Variable "$title" vom Typ String statt Objekt ist; zur Fehlerbehebung siehe weiter unten und https://www.mediawiki.org/wiki/Extension_talk:WhosOnline#Bug_in_MW_1.24_.3F
Bei MediaWiki 1.25 verursacht die Version 1.5.0 einen Fehler, wenn die Datei "upgrade.php" verwendet wird, weil die Datei "extension.json" in der Erweiterung fehlt; siehe https://www.mediawiki.org/wiki/Extension_talk:WhosOnline#Fatal_error_running_update.php_on_V1.5.0. Es muss deshalb in der Datei "LocalSettings.php" wie bei älteren Versionen "require_once ..." statt "wfLoadExtension(...)" verwendet werden.
- Dateien unter http://www.mediawiki.org/wiki/Extension:WhosOnline herunterladen und extrahieren
- Verzeichnis "WhosOnline" unter "Extensions" speichern
- Für MediaWiki 1.23 in der Datei "WhosOnlineSpecialPage.php" die Funktion "getNavigationBar()" anpassen
- SQL-Befehl in der Extension-Datei "WhosOnline.sql" für neue Datenbank-Tabelle anpassen (siehe weiter unten)
- Mit "phpMyAdmin" und geändertem SQL-Befehl eine neue Datenbank-Tabelle erstellen (siehe weiter unten)
- In der Datei "LocalSettings.php" einfügen:
require_once("$IP/extensions/WhosOnline/WhosOnline.php"); $wgWhosOnlineShowAnons = true;
Datei "WhosOnlineSpecialPage.php" für MW 1.23 anpassen
Die Funktion "getNavigationBar()" ab Zeile 75 kopieren, auskommentieren und die Kopie darunter einfügen. In der Kopie die Variable $wgLang als Ersatz für $wgContLang und die entsprechenden Variablen für die return-Funktion hinzufügen:
function getNavigationBar(){ global $wgContLang, $wgLang; $link = $wgContLang->specialpage('WhosOnline'); if(is_object($link)){ $title = $link; } else{ $title = Title::newFromText($link); if(is_null($title)){ return false; } } $offset = $this->mOffset; $limit = $this->mLimit; $query = ''; $query = wfCgiToArray(''); $atend = $this->countUsersOnline() < ($this->mLimit + $this->mOffset); // show next link return $wgLang->viewPrevNext( $title, $offset, $limit, $query, $atend ); }
Datei "WhosOnline.sql" anpassen
Den SQL-Befehl in der Extension-Datei "WhosOnline.sql" für die neue Datenbank-Tabelle in der ersten Zeile z. B. wie folgt mit Präfix "sw_" bzw. "sr_" anpassen:
CREATE TABLE `[datenbankname]`.`[praefix]online` (
Datenbank-Tabelle erstellen
Mit "phpMyAdmin" die MySQL-Datenbank für das Wiki auswählen und nach Auswahl des Karteikartenreiters/Tabs "SQL" die Tabelle "sw_online" bzw. "sr_online" durch Eingabe des folgenden SQL-Statements anlegen:
CREATE TABLE `[datenbankname]`.`[praefix]online` ( `userid` int(5) NOT NULL default '0', `username` varchar(255) NOT NULL default '', `timestamp` char(14) NOT NULL default '', PRIMARY KEY USING HASH (`userid`, `username`), INDEX USING BTREE (`timestamp`) ) TYPE=MEMORY;
Eingabe von Formeln mittels Tex (Wiki-Code)[Bearbeiten]
Damit mathematische und auch chemische Formeln dargestellt werden können, wird in Mediawiki "Texvc" benutzt. Hierfür muss folgende Software installiert werden (siehe auch https://www.mediawiki.org/wiki/Texvc#Windows):
- Windows Server 2012R2
- GPL GhostScript 9.10 (gs910w32.exe, 2013-09-02)
- ImageMagick 6.9.3-8-Q16-x86-dll.exe (16Bit dynamic, nicht static)
- MikTeX 2.9.5870 Net Installer 32Bit (complete, nicht basic)
- Windows Server 2008
- GPL GhostScript 8.70 (gs870w32.exe)
- ImageMagick 6.5.9-0-Q16-windows-dll.exe (16Bit dynamic, nicht static)
- MikTeX 2.8 Net Installer 32Bit (complete, nicht basic)
Nach jedem mediawiki-Update muss die Erweiterung "Math" mit den Dateien "Math.php" und "MathRenderer.php" auf Windows-Kompatibilität überprüft werden!
Die tatsächliche Installation eines Tex-Systems erfolgt in Anlehnung an die alternative Methode auf der Mediawiki Seite http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows#Alternative_Solution.
Tatsächliche Installation[Bearbeiten]
Die Applikationen als Administrator für alle User im Verzeichnis "D:\texmf\" installieren:
- GhostScript im Unterverzeichnis "ghostscript\" installieren
- aus dem Unterverzeichnis "bin\" die Datei "gswin32c.exe" kopieren und die Kopie umbenennen zu "gs.exe"
- In der Systemsteuerung unter "Erweiterte Systemeinstellungen => Erweitert => Umgebungsvariablen" die Systemvariable "Path" erweitern mit ";D:\texmf\ghostscript\bin\"
- ImageMagick im Unterverzeichnis "imagick\" installieren
- ImageMagick dll-Datei (bei vorhandener Windows-Server-Konfigurationsberechtigung), sonst static-Datei (nur XAMPP-Zugriffsberechtigungen), inkl. "Create a desktop icon", "Add application directory to your system path" und "Install developement headers and libraries for C and C++"
- Testen mit der "Eingabeaufforderung/Konsole"
- bei Windows Server 2012R2 durch Eingabe von
- convert wizard: wizard.jpg [=>Enter drücken]
- convert wizard.jpg win: [=>Enter drücken]
- => ein Bild soll angezeigt werden, Fenstertitel "IMDisplay - wizard.jpg"
- bei Windows Server 2008 durch Eingabe von
- convert logo: logo.miff [=>Enter drücken]
- imdisplay logo.miff [=>Enter drücken]
- => ein Bild soll angezeigt werden
- bei Windows Server 2012R2 durch Eingabe von
- PHP-Erweiterung für ImageMagick
- Für PHP 5.6.14 "php_imagick-3.4.1-5.6-ts-vc11-x86.zip" von http://windows.php.net/downloads/pecl/releases/imagick/ oder alternativ die Datei "php_imagick-3.2.0RC1-5.6-ts-vc11-x86.zip" von http://www.peewit.fr/imagick/ herunterladen und die VC11-kompilierte ThreadSafe-Datei Datei "php_imagick.dll" in das PHP-Unterverzeichnis "ext/" kopieren
- Für PHP 5.6.14 in der Datei "php.ini" im Bereich Windows Extensions die Datei "php_imagick.dll" einbinden:
extension=php_imagick.dll Für PHP 5.2.9 die VC6-kompilierte Datei "php_imagick_dyn-Q16.dll" von valukova.org herunterladen und in das PHP-Unterverzeichnis "ext/" kopieren und umbenennen zu "php_imagick_dyn_Q16.dll" (Unterstrich statt Bindestrich)Für PHP 5.2.9 in der Datei "php.ini" im Bereich Windows Extensions die Datei "php_imagick_dyn_Q16.dll" einbinden:
extension=php_imagick_dyn_Q16.dll
- MiKTeX Installation
- Für Sophos-Ausnahme im Verzeichnis "D:\texmf\" ein Unterverzeichnis "miktex\" erstellen
- Für Sophos-Antivirus eine Ausnahme festlegen:
- Konfigurieren => Antivirus => On--Access-Scans => Ausschlüsse => Hinzufügen => Ordner => D:\texmf\miktex\
- MikTeX herunterladen – kann bis zu einer Stunde dauern! – und installieren
- Zum Herunterladen der Installationsdateien die Datei "MiKTeX_NetInstall_Complete_2.9.5870_setup.exe" ausführen
- "Download MiKTeX" statt "Install MiKTeX"
- "Complete MiKTeX" statt "Basic MiKTeX"
- Zielverzeichnis "D:\Install\MiKTeX_2.9_complete\"
- Die Datei "MiKTeX_NetInstall_Complete_2.9.5870_setup.exe" für Installation im Verzeichnis "D:\texfm\miktex\" ausführen mit
- "Install MiKTeX" statt "Download MiKTeX"
- "Complete MiKTeX" statt "Basic MiKTeX"
- "Anyone who uses this computer (all users)" statt "Only for: [Useraccount (Username)]"
- "Preferred paper: A4", "Install missing packags on-the-fly: Yes"
- Zum Herunterladen der Installationsdateien die Datei "MiKTeX_NetInstall_Complete_2.9.5870_setup.exe" ausführen
Im Verzeichnis "includes\" des Wikis die Datei "Math.php" umbenennen in "Math_original.php" und ersetzen durch eine neue Datei "Math.php" mit Code von www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows/math.php; danach von der neuen Datei "Math.php" für MediaWiki-Updates eine Sicherungskopie speichern als "Math_sw.php".Im Verzeichnis "extensions\Math\" des Wikis die Dateien "Math.php" und "MathRenderer.php" umbenennen in "Math_original.php" und "MathRenderer_original.php"; davon Kopien "Math.php" und "MathRenderer.php" erstellen- "Math.php" Z.191 ...
- "MathRenderer.php" Z.123 ...
- In der Datei "LocalSettings.php" ist jeweils einzufügen:
$wgUseTeX = true; # ImageMagick $wgImageMagickConvertCommand = 'D:\texmf\imagick\convert.exe';<br> $wgImageMagickIdentifyCommand = 'D:\texmf\imagick\identify.exe';<br> # Tex $wgLaTexCommand = 'D:\texmf\miktex\miktex\bin\latex.exe'; $wgDvipsCommand = 'D:\texmf\miktex\miktex\bin\dvips.exe';
Alternative Installationsmethode gemäß Mediawiki[Bearbeiten]
- install the complete MikTeX (not the basic one, use the network installer) in D:\texfm\miktex - No: Since installing the complete version failed, we installed the basic one with administrator rights at last after installing GhostScript and installing ImageMagick.
- install the static (to be sure dependencies are embed) binary of für Windows in D:\texmf\imagick (ensure there are no spaces in the path you choose) - No: We installed the dynamic version wih administrator rights.
- install AFPL GhostScript bzw. GhostScript 8.54 bzw. [1] in D:\texmf\ghostscript
- oder GPL GhostScript 9.10 (gs910w32.exe) bzw. GhostScript in D:\texmf\ghostscript
- copy D:\texfm\ghostscript\gs8.70\bin\gswin32c.exe to D:\texmf\ghostscript\gs8.70\bin\gs.exe (8.70 can be different depending on version you install)
- add to the windows PATH environnement variable this path: D:\texmf\ghostscript\gs8.70\bin (again, 8.70 can be different depending on version you install)
- If you installed MiKTeX for all users and are running IIS, you may also need to create MiKTeX folders under "C:\Documents and Settings\Default User\Application Data" and "C:\Documents and Settings\Default User\Local Settings\Application Data". Make sure the IIS working process account running PHP (IUSR_[whoever]) has both read and write permissions to these directories!
- open a command line (start -> execute -> cmd.exe)
- verify that the following commands are working:
- latex
- dvips
- convert (not the microsoft convert)
- gs
- [edit] Settings
- your wiki directory = $
replace the file $/includes/Math.php with code from http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows/math.php
- uncomment or insert in $/LocalSettings.php:
$wgUseTeX= true;
- insert in $/LocalSettings.php:
- ImageMagick
$wgImageMagickConvertCommand = 'D:\texmf\imagick\convert.exe'; $wgImageMagickIdentifyCommand = 'D:\texmf\imagick\identify.exe';
- Tex
$wgLaTexCommand = 'D:\texmf\miktex\miktex\bin\latex.exe'; $wgDvipsCommand = 'D:\texmf\miktex\miktex\bin\dvips.exe';
- reboot if needed so that paths variables are updated for your services too
Hilfeseiten[Bearbeiten]
Die Dateien, Abbildungen und Vorlagen entsprechend den Anweisungen in "http://www.mediawiki.org/wiki/Project:PD_help/Copying" in ein Verzeichnis exportieren und von dort in das entsprechende Wiki importieren. Die Import- und Export-Funktionen stehen unter "Spezialseiten->Seitenwerkzeuge" bzw. "Special pages->Page tools" zur Verfügung. Aktuelle Dateien vom 16.3.2011 sind unter D:\Dokumente\Hilfe-Dateien auf dem SalzWiki-Server gespeichert.
Bisher werden aus Mediawiki die deutschen Hilfeseiten nicht automatisch mit aufgelistet, weshalb neben den englischen Dateien (MediaWiki-help-en.xml) eine zweite Exportdatei (MediaWiki-Hilfe-de.xml) für die deutschen Dateien erstellt werden muss. Als Dateien wählt man dazu alle aus dem Namensraum "help/de" aus.
Die Abbildungen werden - in Abwandlung der Hinweise - direkt aus Mediawiki im Verzeichnis D:\Dokumente\Hilfe-Dateien gespeichert und von dort im Repositorium über "Spezialseiten->Medien" oder den Menüpunkt "Werkzeuge: Hochladen" hochgeladen. Auf die z. T. unterschiedlichen Lizenzen ist beim Hochladen bei der Eingabe der Metadaten zu achten.
- Deutsche Version: Soll zuerst auf die deutsche Version verwiesen werden, ist der Hyperlink im Menü links (Sidebar) auf "help:contents/de" zu setzen.
- Englische Version: Soll zuerst auf die englische Version verwiesen werden, ist der Hyperlink im Menü links (Sidebar) auf "help:Contents" zu setzen.
Die Extension "ParserFunctions" wird benötigt.