Adm:Einrichtung Wikis MW1.16: Unterschied zwischen den Versionen

Aus Salzwiki
Zur Navigation springen Zur Suche springen
 
(167 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
= Allgemeines  =
= Allgemeines  =


In dieser Dokumentation werden die Installation und Konfiguration des Salzwikis (3 Wikisysteme) und der Erweiterungen (Extensions) beschrieben, die in der Mediawiki-Version 1.16.1 umgesetzt sind.
In dieser Dokumentation werden die Installation und Konfiguration des Salzwikis (3 Wikisysteme) und der Erweiterungen (Extensions) beschrieben. Aktuell ist Mediawiki Version 1.16.1 installiert. In Vorbereitung ist ein Update auf Version 1.23.10 LTS.
 
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.
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.
Zeile 13: Zeile 15:
*Das deutsche SalzWiki ist einsprachig "Deutsch".
*Das deutsche SalzWiki ist einsprachig "Deutsch".
*Das englische Saltwiki ist einsprachig "English".
*Das englische Saltwiki ist einsprachig "English".
*Das Repositorium ist einsprachig "Deutsch" und soll 2-sprachig "Deutsch/English" werden.
*Das Repositorium ist seit 2012 einsprachig "Englisch" (zuvor "Deutsch") und soll 2-sprachig "Deutsch/English" werden.
 
Zur Konfiguration der Standardspracheinstellung siehe unter [[Adm:Aenderungen_SalzWiki#Spracheinstellungen|Wiki-Konfiguration -> Spracheinstellungen]]


== Apache-Webserver - Verzeichnisauflistungen verhindern  ==
== Apache-Webserver - Verzeichnisauflistungen verhindern  ==
Zeile 100: Zeile 104:




'''Im  Verzeichnis de/salzWiki'''
'''Im  Verzeichnis "salzWiki"'''
 
WM 1.23
<pre>
# robots.txt für das Salzwiki: Robots sollen nur SalzWiki finden und keine Unterverzeichnisse lesen
# robots.txt für das Salzwiki: Robots sollen nur SalzWiki finden und keine Unterverzeichnisse lesen
User-agent: *
Disallow:/cache/
Disallow:/docs/
Disallow:/extensions/
Disallow:/images/
Disallow:/includes/
Disallow:/languages/
Disallow:/maintenance/
Disallow:/mw-config/
Disallow:/resources/
Disallow:/skins/
Disallow:/tests/
</pre>


WM 1.16
<pre>
# robots.txt für das Salzwiki: Robots sollen nur SalzWiki finden und keine Unterverzeichnisse lesen
User-agent: *
User-agent: *
Disallow:/bibtex/
Disallow:/bin/
Disallow:/bin/
Disallow:/cache/
Disallow:/config/
Disallow:/config/
Disallow:/docs/
Disallow:/docs/
Zeile 115: Zeile 137:
Disallow:/maintenance/
Disallow:/maintenance/
Disallow:/math/
Disallow:/math/
Disallow:/pres/
Disallow:/serialized/
Disallow:/serialized/
Disallow:/skins/
Disallow:/skins/
Disallow:/t/
</pre>
Disallow:/tests/


......................................................................................<br>
Edit by Risos: Das Verhindern von Robots ist für Google eine "verdächtige" Seite und kommt in die Blacklist (im Firefox eine große rote Warnseite für den Anwender), da Google diese Seiten nicht ausspähen kann (Google zeigt auch bestimme Seiten gar nicht an, wenn sie Google nicht "gefallen"!). Dies ist wohl das Resultat der macht von Google durch uns. Abhilfe schafft hier die Einstellung im Firefox, dass man nicht auf verdächtige Seiten hingewiesen werden soll - doch wer weiß das schon?'''  
 
<br> '''Edit by Risos: Das Verhindern von Robots ist für Google eine "verdächtige" Seite und kommt in die Blacklist (im Firefox eine große rote Warnseite für den Anwender), da Google diese Seiten nicht ausspähen kann (Google zeigt auch bestimme Seiten gar nicht an, wenn sie Google nicht "gefallen"!). Dies ist wohl das Resultat der macht von Google durch uns. Abhilfe schafft hier die Einstellung im Firefox, dass man nicht auf verdächtige Seiten hingewiesen werden soll - doch wer weiß das schon?'''  


Hier müsste es explizit jetzt und später mit einem resetteten Firefox getestet werden.
Hier müsste es explizit jetzt und später mit einem resetteten Firefox getestet werden.
Zeile 144: Zeile 164:
== E-Mail-Versand  ==
== E-Mail-Versand  ==


die Datei "localSettings.php" wurde in den Verzeichnissen  
die Datei "LocalSettings.php" wurde in den Verzeichnissen  


*salzwiki/  
*salzwiki/  
Zeile 151: Zeile 171:


folgendermaßen für E-Mail-Versand angepasst:  
folgendermaßen für E-Mail-Versand angepasst:  
'''Salzwiki/Repositorium'''
<pre>
<pre>
## E-Mail-Versand angepasst 09.10.2009 G. Werner
## E-Mail-Versand angepasst 2016-01-15 G. Werner
$wgEmergencyContact = "service@salzwiki.hawk-hhg.de";
$wgEmergencyContact = "salzwiki.fb@hawk-hhg.de";
$wgPasswordSender = "service@salzwiki.hawk-hhg.de";  
$wgPasswordSender = "service@salzwiki.de";
$wgSMTP = array(
'host' =&gt; "smtp.1und1.de",
'IDHost' =&gt; "1und1.de",
'port' =&gt; "587",
'auth' =&gt; true,
'username' =&gt; "service@salzwiki.de",
'password' =&gt; "********"
);
$wgEnotifUserTalk = true; # UPO
$wgEnotifWatchlist = true; # UPO
$wgEmailAuthentication = true;
</pre>


'''Saltwiki'''
<pre>
## E-Mail-Versand angepasst 2016-01-15 G. Werner
$wgEmergencyContact = "saltwiki.fb@hawk-hhg.de";
$wgPasswordSender = "service@saltwiki.net";
$wgSMTP = array(  
$wgSMTP = array(  
'host' =&gt; "10.104.1.2",  
'host' =&gt; "smtp.1und1.de",  
'IDHost' =&gt; "hawk-hhg.de",  
'IDHost' =&gt; "1und1.de",  
'port' =&gt; "25",  
'port' =&gt; "587",  
'auth' =&gt; true,  
'auth' =&gt; true,  
'username' =&gt; "service@salzwiki.hawk-hhg.de",  
'username' =&gt; "service@saltwiki.net",  
'password' =&gt; "********"  
'password' =&gt; "********"  
);
);
$wgEnotifUserTalk = true; # UPO
$wgEnotifUserTalk = true; # UPO
$wgEnotifWatchlist = true; # UPO
$wgEnotifWatchlist = true; # UPO
$wgEmailAuthentication = true;
$wgEmailAuthentication = true;
</pre>
</pre>


== Externe Links ==
== Externe Links ==
Zeile 178: Zeile 215:
  $wgExternalLinkTarget = '_blank';
  $wgExternalLinkTarget = '_blank';


= SalzWiki  =
== Datenbank-Fehler ==


== Datenbank mittels XAMPP und phpmyAdmin anlegen: ==
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:
<pre>
$wgShowSQLErrors = 1;
</pre>


Bei der Mediawiki-Version 1.15 muss vor der Installation des Wikis zuerst für das jeweilige Wiki eine Datenbank angelegt werden.  
== Versionshinweise ==
<br/>
 
Bei der Version 1.16.1 kann die jeweilige Datenbank während der Installation mittels Browser (/[wikiverzeichnis]/config/index.php) angelegt werden, sofern der Superuser-Account (Datenbank-Hauptadministrator) bekannt ist:
* 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
* MW1.16 mit PHP5.6.14 erzeugt Warnung in Datei "includes\MagicWord.php" Z.560 wegen PCRE8.34+, siehe https://gerrit.wikimedia.org/r/#/c/103215/
* MW1.16 mit PHP5.6.14 erzeugt Warnung wegen Datei "extensions\accesscontrol-1.1\AccessControl.php"
** In Funktion "wfAccessControlExtension()" Z.60 auskommentieren: #$wgParser->disableCache();
** In Datei "LocalSettings.php" hinzufügen: $wgEnableParserCache = false; $wgCachePages = false;
* MW1.16 mit PHP5.6.14 erzeugt Warnung in Datei "extensions\ApprovedRevs\ApprovedRevs.hooks.php"
** Z.230 Referenzen "&" bei "&$skin" und "&$contentActions" entfernern und Z.231 ergänzen "global ..., $skin, $contentActions;
** Z.246 und Z.249 => if-Abfrage ergänzen mit "is_array($contentAccess) && "
 
=== XAMPP ===
 
==== XAMPP 5.5.30/5.6.14.0 ====
* PHP 5.5.30/5.6.14 + Pear, MS VC11 x86 32Bit ThreadSafe
* MariaDB 10.0.17
* Apache 2.4.17 Win32
* phpMyAdmin 4.5.0.2
* openSSL 1.0.2d
 
==== XAMPP 5.5.28/5.6.12 ====
* 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 ====
* 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 ====
Neues Sicherheitskonzept: Zugriff per Browser auf Verzeichnisse wie "phpmyadmin" nur noch direkt vom Server aus ("Require local")  


=== salzwiki ===
==== XAMPP 1.7.1 ====
<pre>salzwiki
* PHP 5.2.9, MS Visual C++ 2008 redistributable x86 9.0...
Benutzer: hschwarz
* MySQL 5.1.33-Community Client 5.0.51a
Host: localhost
* Apache 2.2.11 Win32
Global Rechte: all privileges
* phpMyAdmin 3.1.3.1
Grant: ja
database table prefix: sw_
</pre>


=== repository ===
=== MediaWiki ===
<pre>repository
Benutzer: hschwarz
Host: localhost
Global Rechte: all privileges
Grant: ja
database table prefix: sr_
</pre>


=== saltwiki ===
==== MW Version 1.25 ====
<pre>saltwiki
Benutzer: hschwarz
Host: localhost
Global Rechte: all privileges
Grant: ja
database table prefix: sw_
</pre>


== Mediawiki Installieren  ==
* 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


*Für die jeweiligen Wikis einen entsprechenden Wiki- und Verzeichnisnamen festlegen: "salzwiki", "repository", "saltwiki".
Skin-Registrierung
*Die Dateien und Verzeichnisse aus der tar.gz-Datei in das jeweilige Wiki-Verzeichnis entpacken:
<pre>
<pre>"D:\xampp\htdocs\[wikiverzeichnisname]\"</pre>
wfLoadSkin("MonoBook"); //statt require_once "$IP/skins/MonoBook.php";
*Nach Installationsanweisung das jeweilige Wiki installieren; hierzu im Browser die Adresse "D:\xampp\htdocs\[wikiverzeichnisname]\config\index.php" aufrufen.
</pre>
**Contact e-mail: service@salzwiki.hawk-hhg.de
 
**Language: Je nach Wiki Deutsch oder English
Erweiterungen-Registrierung
**Copyright/license: Creative Commons
<pre>
**Admin username: Hornemann
wfLoadExtension("Cite"); //statt require_once "$IP/extensions/Cite/Cite.php";
**Object caching: No
</pre>
**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  ===
==== MW Version 1.24 ====


Die Lizenzkonfiguration in der Datei "LocalSettings.php" bearbeiten:
* Logo-Speicherort geändert von "skins/common/images/" zu "resources/assets/" bzw. "images/..."
*Salzwiki
* 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
<pre>
<pre>
## For attaching licensing metadata to pages, and displaying an
require_once "$IP/skins/MonoBookSW.php"; //statt $wgDefaultSkin = "monobooksw";
## appropriate copyright notice / icon. GNU Free Documentation
</pre>
## License and Creative Commons licenses are supported so far.
* Nicht mehr unterstützt wird "register_globals => Bei PHP vor Version 5.4 in der Datei "php.ini" angeben "register_globals=Off"
$wgEnableCreativeCommonsRdf = true;
* Erweiterung "OggHandler" wird nicht mehr unterstützt
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
 
## Deutsch
==== MW Version 1.23 ====
$wgRightsUrl = "http://creativecommons.org/licenses/by-nc-sa/3.0/de/";  
$wgRightsText = "Namensnennung-Nicht-kommerziell-Weitergabe unter gleichen Bedingungen 3.0 Deutschland";
$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/de/88x31.png";
# $wgRightsCode = "<nowiki>[</nowiki>license_code<nowiki>]</nowiki>"; # Not yet used
</pre>
*Saltwiki und Repositorium
<pre>
## 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.  
$wgEnableCreativeCommonsRdf = true;
$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";
$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png";
# $wgRightsCode = "<nowiki>[</nowiki>license_code<nowiki>]</nowiki>"; # Not yet used
</pre>


=== Style/Skin  ===
* 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.


Das Design für das Salzwiki basiert auf dem Stil (Skin) "monobook".<br> Dazu wird im Verzeichnis "skins/" das Verzeichnis "monobook/" sowie die Dateien "MonoBook.php" und "MonoBook.deps.php" kopiert und die Kopien umbenannt in "monobooksw" sowie in "MonoBookSW.php" und "MonoBookSW.deps.php".  
==== MW Version 1.21 ====


In der Datei "MonoBookSW.php" werden dann alle Verweise und Bezeichnungen von "monobook" zu "monobooksw" geändert sowie die Klassennamen "SkinMonoBook" und "MonoBookTemplate" bei der Klassendefinition und den Klassenverwendungen geändert zu "SkinMonoBookSW" und "MonoBookSWTemplate".
* 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


Im Verzeichnis "monobooksw/" wird die Datei "headbg.jpg" durch ein eigenes Hintergrundbild mit gleichem Dateinamen ersetzt.<br> In der Datei "main.css" werden Anpassungen für Farben u. a. vorgenommen.  
==== MW Version 1.20 ====


In der Datei "LocalSettings.php" heißt die entsprechende Zuweisung dann <br> <nowiki>$wgDefaultSkin = 'monobooksw';</nowiki>.  
* PHP 5.3.2 oder neuer ist erforderlich
* Erweiterungen, die Elemente der neuen Version voraussetzen
** ApprovedRevs
** Cite u. a.


=== Logo  ===
==== MW Version 1.19 ====


Die Datei für das Logo links oben ist hochzuladen und in der Datei "LocalSettings.php" zuzuweisen:
* $wgEnableCreativeCommonsRdf für "LocalSettings.php" wird nicht mehr unterstützt; stattdessen gibt es eine Erweiterung [http://www.mediawiki.org/wiki/Extension:CreativeCommonsRdf|"CreativeCommonsRdf"], die Beta-Status hat (2015-09-21).
*Salzwiki und Saltwiki
<pre>##LOGO
$wgLogo = $wgStylePath."/common/images/Logo.png";</pre>
*Repositorium
<pre>##LOGO
$wgLogo = $wgStylePath."/common/images/Logo_Repo.png";
</pre>


=== Fußzeile "Footer" anpassen ===
* In der revision-Tabelle ist eine neue Spalte "rev_sha1" hinzugekommen, die in der alten Verison vor einem Update hinzugefügt werden muss; siehe [http://www.mediawiki.org/wiki/Manual:FAQ|Mediawiki FAQ] Punkt 3.2, [http://www.mediawiki.org/wiki/Manual:Revision_table|Mediawiki Manual Revision_table] und http://www.mediawiki.org/wiki/Thread:Project:Support_desk/upgrade_problems:_1.11_--_1.21:<pre>ALTER TABLE /*$wgDBprefix*/revision ADD rev_sha1 varbinary(32) NOT NULL default '';</pre>


==== Logos mit Verlinkung und Footerlinks anpassen ====
==== MW Version 1.18 ====


*Grafiken wie die Logos "Hornemann Institut", "HAWK", "DFG" und "CreativeCommons BY-NC_SA" im Verzeichnis "[wikiverzeichnisname]/skins/common/images/" speichern.
* 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.


*Änderungen in MonoBookSW.php: Zeile 213 - 239
==== MW Version 1.17 ====
<pre>
&lt;/div&gt;&lt;!-- end of the left (by default at least) column --&gt;


&lt;div class="visualClear"&gt;&lt;/div&gt;
* PHP 5.2.3 oder neuer ist erforderlich
&lt;div id="footer"&gt;
* neuer Installationsvorgang
* Kategoriensortierung geändert
&lt;!-- Logos der HAWK und des Hornemann Instituts zentral in den "Footer". Rudimentaere Anpassung der Bilder!! Zeitsparend--&gt;
* Interwiki-Verweise werden in gesonderten Tabellen gespeichert
* Standard-Skin "vector" statt "monobook"
 
= SalzWiki  =


&lt;?php
== Datenbank mittels XAMPP und phpmyAdmin anlegen: ==
if($this-&gt;data['copyrightico']) {&nbsp;?&gt;
  &lt;div id="f-copyrightico"&gt;
  &lt;a href="http://www.hornemann-institut.de/"&gt;
    &lt;img src="/[wikiverzeichnisname]/skins/common/images/HI.png" width=91 height=30&gt;
  &lt;/a&gt;
  &nbsp; &nbsp;
  &lt;a href="http://www.hawk-hhg.de/"&gt;
    &lt;img src="/[wikiverzeichnisname]/skins/common/images/HAWK.png" height=30 width=84&gt;
  &lt;/a&gt;
  &nbsp; &nbsp;
  &lt;a href="http://www.dfg.de/"&gt;
    &lt;img src="/[wikiverzeichnisname]/skins/common/images/dfg_logo_blau.jpg" height="30" width="85"&gt;
  &lt;/a&gt;
  &lt;/div&gt;
&lt;?php }
if($this-&gt;data['poweredbyico']) {&nbsp;?&gt;
  &lt;div id="f-poweredbyico"&gt;&lt;?php $this-&gt;html('poweredbyico')&nbsp;?&gt;&lt;/div&gt;
&lt;?php }
if($this-&gt;data['copyrightico']) {&nbsp;?&gt;
  &lt;div id="f-poweredbyico"&gt;&lt;?php $this-&gt;html('copyrightico')&nbsp;?&gt;&lt;/div&gt;
&lt;?php }


  // Generate additional footer links, entfernt: "'lastmod',  'copyright',  'viewcount', 'numberofwatchingusers',"
Bei der Mediawiki-Version 1.15 muss vor der Installation des Wikis zuerst für das jeweilige Wiki eine Datenbank angelegt werden.
  $footerlinks = array(
<br/>
  'credits',
Bei der Version 1.16.1 kann die jeweilige Datenbank während der Installation mittels Browser (/[wikiverzeichnis]/config/index.php) angelegt werden, sofern der Superuser-Account (Datenbank-Hauptadministrator) bekannt ist:
  'privacy', 'about', 'disclaimer', 'tagline', 'Hallo',
  );
  $validFooterLinks = array();
  foreach( $footerlinks as $aLink ) {
  if( isset( $this-&gt;data[$aLink] ) &amp;&amp; $this-&gt;data[$aLink] ) {
    $validFooterLinks[] = $aLink;
  }
  }
  if ( count( $validFooterLinks ) &gt; 0 ) {
?&gt;  &lt;ul id="f-list"&gt;
</pre>


==== "Forschungsverbund" statt "Über [Wiki-Name]" ====
=== salzwiki ===
*Damit im "Footer" statt auf die Seite "Über SalzWiki" auf die Seite "Forschungsverbund" 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:<pre>
<pre>salzwiki
"[Wiki-Verzeichnis]/index.php?title=MediaWiki:Aboutsite/de[-formal|-at|-ch]&action=edit"
Benutzer: SW_sawi
bzw.
Host: localhost
"[Wiki-Verzeichnis]/index.php?title=MediaWiki:Aboutpage/de&action=edit"</pre>
Global Rechte: all privileges
**Link-Text in "aboutsite" bearbeiten:
Grant: ja
<pre>Forschungsverbund
database table prefix: sw_
<!--Über {{SITENAME}}-->
</pre>
</pre>
**Seitenname, zu dem verlinkt wird, in "aboutpage" bearbeiten:
<pre>Project:Über</pre>
ersetzen durch
<pre>Forschungsverbund</pre>


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 bei "de-formal". Deshalb wurden als auszuwählende Sprachen "de-formal", "de-at" und "de-ch" deaktiviert in der Datei [wikiverzeichnisname]\languages\Names.php
=== repository ===
Wenn ein User in den Profileinstellungen die Sprache abweichend von der Festlegung "de-formal" in der Datei "LocalSettings.php" auf "de" einstellt, funktioniert "Forschungsverbund" nicht.
<pre>repository
 
Benutzer: SW_repo
<pre>
Host: localhost
'de' => 'Deutsch', # German ("Du")
Global Rechte: all privileges
##'de-at' => 'Österreichisches Deutsch', # Austrian German
Grant: ja
##'de-ch' => 'Schweizer Hochdeutsch', # Swiss Standard German
database table prefix: sr_
##'de-formal' => 'Deutsch (Sie-Form)', # German - formal address ("Sie")
</pre>
</pre>


=== Favicon ===
=== saltwiki ===
 
<pre>saltwiki
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:
Benutzer: SW_sawi
<pre>$wgFavicon = "/[wikiverzeichnisname]/salzwiki.ico";</pre>
Host: localhost
 
Global Rechte: all privileges
=== Darstellung in einem Frame ===
Grant: ja
 
database table prefix: sw_
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:
<pre>
$wgEditPageFrameOptions = 'false';
</pre>
</pre>


Hierzu näheres unter http://webcache.googleusercontent.com/search?q=cache:H1KG7SKYpvoJ:100thpriest.appspot.com/www.mediawiki.org/wiki/Project:Support_desk+mediawiki+1.16.1+frame+warnung+anmelden&cd=3&hl=de&ct=clnk&gl=de&client=firefox-a&source=www.google.de
== Mediawiki Installieren  ==


<pre>
*Für die jeweiligen Wikis einen entsprechenden Wiki- und Verzeichnisnamen festlegen: "salzwiki", "repository", "saltwiki".
* The X-Frame-Options header to send on pages sensitive to clickjacking
*Die Dateien und Verzeichnisse aus der tar.gz-Datei in das jeweilige Wiki-Verzeichnis entpacken:
* attacks, such as edit pages. This prevents those pages from being displayed
<pre>"D:\xampp\htdocs\[wikiverzeichnisname]\"</pre>
* in a frame or iframe. The options are:
*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
*   - 'DENY': Do not allow framing. This is recommended for most wikis.
**Language: Je nach Wiki Deutsch oder English
*
**Copyright/license: Creative Commons
*   - 'SAMEORIGIN': Allow framing by pages on the same domain. This can be used
**Admin username: Hornemann
*         to allow framing within a trusted domain. This is insecure if there
**Object caching: No
*         is a page on the same domain which allows framing of arbitrary URLs.
**E-Mail
*
***E-mail features: enabled
*   - false: Allow all framing. This opens up the wiki to XSS attacks and thus
***User-to-user e-mail: enabled
*         full compromise of local user accounts. Private wikis behind a
***E-mail notification: enabled for discussion pages nad watchlists
*         corporate firewall are especially vulnerable. This is not
***E-mail address authentication: enabled
*         recommended.
**Datenbank
*
***Database type: MySQL
* For extra safety, set $wgBreakFrames = true, to prevent framing on all pages,
***Database host: localhost
* not just edit pages.  
***Database name: [wikiname]
</pre>
***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


== Wiki-Konfiguration ==
=== Lizenz für das jeweilige Wiki ===


=== Zugangsberechtigungen  ===
Die Lizenzkonfiguration in der Datei "LocalSettings.php" bearbeiten:
*Salzwiki
<pre>
## 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.
// bei MW 1.23 nicht erforderlich
#$wgEnableCreativeCommonsRdf = true; // bei MW 1.16
$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.16
#$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/de/88x31.png";
// bei MW 1.23
$wgRightsIcon = "{$wgStylePath}/common/images/cc-by-nc-sa.png";
# $wgRightsCode = "<nowiki>[</nowiki>license_code<nowiki>]</nowiki>"; # Not yet used
</pre>
*Saltwiki und Repositorium
<pre>
## 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.
// bei MW 1.23 nicht erforderlich
#$wgEnableCreativeCommonsRdf = true;
$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.16
#$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png";
// bei MW 1.23
$wgRightsIcon = "{$wgStylePath}/common/images/cc-by-nc-sa.png";
# $wgRightsCode = "<nowiki>[</nowiki>license_code<nowiki>]</nowiki>"; # Not yet used
</pre>


==== Gruppen für Berechtigungen ====
=== Style/Skin  ===


* Administratoren = Chef-Redakteure für Accounts erstellen/sperren, Wiki-Inhalte verschieben, löschen, importieren etc.
'''MW 1.23 LTS MonoBook'''
* 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


==== Specialpage.php Seiten verbergen / verstecken (zugriff) ====
Das Design für das Salzwiki basiert wegen der Hintergrundgrafik und der links angeordneten Footer-Icons weiter auf dem Stil (Skin) "Monobook", obwohl er seit MW 1.17 von "Vector" als Standardstil abgelöst wurde. Dazu wird "Monobook" wegen der veralteten Auto-discovery-Funktion, die "Monobook" bei MW 1.23 LTS noch hat, als Kopie im Verzeichnis "skins/" als Unterverzeichnis "monobook_original/" gespeichert und die Datei "Monobook.php" als Kopie namens "Monobook_original_autodiscovery.php" in diesem Unterverzeichnis gespeichert.


http://phlow.net/magazin/netzkultur/technik/445-mediawiki-spezialseiten-vor-unerlaubtem-zugriff-sperren
In der Datei "LocalSettings.php" heißt die entsprechende Zuweisung dann <br> <nowiki>$wgDefaultSkin = "monobook";</nowiki>.


 
Zusätzlich sind darunter folgende Zeilen erforderlich:
Localsettings:
<pre>
<pre>
##Benutzergruppe um zu verhindern, dass Seiten der Specialpages
  // CC-Icon rechts unten für "MonoBook" angepasst 2015-09-28:
##von jedem anderen außer Bürokraten und Admin und Sicherheit
  $wgFooterIcon_copyright['copyright'] = array(
##aufgerufen werden können. Risos 08.02.2012
    "src" => $wgRightsIcon, // Icon
$wgGroupPermissions['Sicherheit']['read'] = true;
    "url" => $wgRightsUrl,
$wgGroupPermissions['Sicherheit']['Sicherheit'] = true;
    "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);
</pre>
</pre>
/includes/SpecialPages.php ab Zeile 139:


Diese Seite ist für die Benutzer der Gruppe "Sicherheit" zu sehen: "Listfiles" http://193.175.110.91/salzwiki_1.16.1__p/index.php/Spezial:Dateien
'''MW 1.23 LTS Vector'''
 
"Vector" wird wegen der veralteten Auto-discovery-Funktion, die "Vector" bei MW 1.23 LTS noch hat, als Kopie im Verzeichnis "skins/" als Unterverzeichnis "vector_original/" gespeichert und die Datei "Vector.php" als Kopie namens "Vector_original_autodiscovery.php" in diesem Unterverzeichnis gespeichert.


Hingegen andere Seiten dieser Kategorie "Medien" durch ein zusätzliches "block" nur von Admins gesehn werden können. So sieht die Konfiguration dann aus:
In der Datei "LocalSettings.php" heißt die entsprechende Zuweisung dann <br> <nowiki>$wgDefaultSkin = "vector";</nowiki>.


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:
<pre>
<pre>
## Edit: ", 'block' , 'Sicherheit'" am ende eingeführt! Risos 02.02.2012
/* SalzWiki eingefügt 2015-09-28 */
# Media reports and uploads
#footer-icons-left {
'Listfiles'                => array( 'SpecialPage', 'Listfiles', 'Sicherheit' ),
  float: left;
'Filepath'                  => array( 'SpecialPage', 'Filepath', 'block', 'Sicherheit' ),
  li {
'MIMEsearch'                => array( 'SpecialPage', 'MIMEsearch', 'block', 'Sicherheit' ),
    float: left;
'FileDuplicateSearch'      => array( 'SpecialPage', 'FileDuplicateSearch', 'block', 'Sicherheit'),
    margin-right: 0.5em;
'Upload'                    => 'SpecialUpload',
    line-height: 2em;
    text-align: left;
  }
}
</pre>
</pre>


Block ist dann übergeordnet und substituiuert "Sicherheit" -> kann auch raus genommen werden
Im Verzeichnis "vector/images/" wird die Datei "headbg.jpg" für ein eigenes Hintergrundbild eingefügt.


==== Vergabe von Nutzerrechten durch den Hauptadministrator (sysop) ====
Im Verzeichnis "vector/components/common.less" wird für das Hintergrundbild "body" folgendermaßen angepasst:
 
<pre>
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:
body {
<pre>$wgGroupPermissions['sysop']['restrictusers'] = true; ##HJschwarz 22.02.2011, Ersteinstellung für "restrictusers" zum Einstellen der Rechte
  /* SalzWiki eingefügt 2015-09-28 */
  background: #F9F9F4 url("headbg.jpg");
  /*background-color: @menu-background-color*/
}
</pre>
</pre>


Anschließend über SpecialPages->UserRightsManagement->[Username] die Rechte erweitern und alle Gruppen aktivieren.
'''MW 1.16'''


Das Design für das Salzwiki basiert auf dem Stil (Skin) "monobook". Dazu wird im Verzeichnis "skins/" das Verzeichnis "monobook/" sowie die Dateien "MonoBook.php" und "MonoBook.deps.php" kopiert und die Kopien umbenannt in "monobooksw" sowie in "MonoBookSW.php" und "MonoBookSW.deps.php".


In der Datei "MonoBookSW.php" werden dann alle Verweise und Bezeichnungen von "monobook" zu "monobooksw" geändert sowie die Klassennamen "SkinMonoBook" und "MonoBookTemplate" bei der Klassendefinition und den Klassenverwendungen geändert zu "SkinMonoBookSW" und "MonoBookSWTemplate".


==== Nutzerrechte bis zum Freischalten von Saltwiki ====
Im Verzeichnis "monobooksw/" wird die Datei "headbg.jpg" durch ein eigenes Hintergrundbild mit gleichem Dateinamen ersetzt.<br> In der Datei "main.css" werden Anpassungen für Farben u. a. vorgenommen.


Kein "normaler" Nutzer kann Seiten in SaltWiki lesen:
In der Datei "LocalSettings.php" heißt die entsprechende Zuweisung dann <br> <nowiki>$wgDefaultSkin = 'monobooksw';</nowiki>.


  $wgGroupPermissions['*']['read'] =false;
=== Logo ===
 
Die Datei für das Logo links oben ist hochzuladen und in der Datei "LocalSettings.php" zuzuweisen:
*Salzwiki und Saltwiki
<pre>
##Logo MW1.23
$wgLogo = $wgScriptPath."/images/common/Logo.png";
##Logo MW1.16
#$wgLogo = $wgStylePath."/common/images/Logo.png";
</pre>
*Repositorium
<pre>
##Logo MW1.23
$wgLogo = $wgScriptPath."/images/common/Logo_Repo.png";</pre>
##Logo MW1.16
#$wgLogo = $wgStylePath."/common/images/Logo_Repo.png";
</pre>
 
=== Fußzeile "Footer" anpassen ===


Folgende Seiten werden durch $wgWhitelistRead dennoch für alle zum Lesen freigegegben:
==== Logos mit Verlinkung und Footerlinks anpassen MW 1.23 ====


$wgWhitelistRead = array("Main_Page", "Saltwiki:About", "Saltwiki:General disclaimer", "Saltwiki:Privacy policy");
Für Anpassungen in der Datei "MonoBookSW.php" siehe https://www.mediawiki.org/wiki/Manual:$wgFooterIcons und https://www.mediawiki.org/wiki/Manual:Footer.


==== Benutzer-Rechte in SalzWiki und SaltWiki  ====
*Grafiken wie die Logos "HI.png", "HAWK.png" und "DFG.jpg" im Verzeichnis "[wikiverzeichnisname]/images/common/" speichern.


Die aktuelle Benutzerrechteschema ist:
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:
<pre>
$wgDisableCounters = true;
</pre>
In der Datei "MonoBook.php" werden die Texte von "lastmodified" und "CC-Lizenz" durch eigenen Code unter Zeile 154 herausgefiltert:
<pre>
<?php
      foreach ( $validFooterLinks as $aLink ) { ?>
        <?php if($aLink!=="lastmod" && $aLink!=="copyright"){ /*eingefügt für HAWK HHG 2015-15-07*/ ?>
    <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?>
<?php  } /*eingefügt für HAWK HHG 2015-15-07*/
      }
?>
</pre>
Original:
<pre>
<?php
      foreach ( $validFooterLinks as $aLink ) { ?>
    <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?>
<?php
      }
?>
</pre>


<pre># alle duerfen '''nur''' lesen
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:
$wgGroupPermissions['*']['read'] = true;
<pre>
$wgGroupPermissions['*']['edit'] = false;
/* eingefügt für HAWK HHG 2015-12-07 */
$wgGroupPermissions['*']['createpage'] = false;
#f-list #lastmod, #f-list #copyright {
$wgGroupPermissions['*']['createtalk'] = false;
  display:none;
$wgGroupPermissions['*']['writeapi'] = false;
}
# Benutzer duerfen: lesen, Diskussionsseiten erstellen und darin schreiben
</pre>
$wgGroupPermissions['user']['read']            = true;
 
$wgGroupPermissions['user']['createtalk']      = true;
Die Variable $wgCopyrightIcon kann nur für Icons rechts unten im Footer erweitert werden. Der Footer-Container besteht aus folgenden Bereichen:
$wgGroupPermissions['user']['move']            = false;
* ul id="footer-info" (oberer Footer-Bereich)
$wgGroupPermissions['user']['move-rootuserpages']            = false;
** li id="footer-info-lastmod"
$wgGroupPermissions['user']['move-subpages']            = false;
** li id="footer-info-copyright"
$wgGroupPermissions['user']['edit']            = true;
* ul id="footer-places" (unterer Footer-Bereich links)
$wgGroupPermissions['user']['createpage']      = false;
** ul id="footer-places-privacy"
$wgGroupPermissions['user']['upload']          = false;
** ul id="footer-places-about"
$wgGroupPermissions['user']['reupload']        = false;
** ul id="footer-places-disclaimer"
$wgGroupPermissions['user']['reupload-shared'] = false;
* ul id="footer-icons" (unterer Footer-Bereich rechts)
$wgGroupPermissions['user']['minoredit']      = false;
** ul id="footer-copyrightico"
$wgGroupPermissions['user']['purge']          = false;
** ul id="footer-poweredbyico"
#$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;
</pre>


==== Spezialseiten dürfen nur AutorInnen lesen ====
*Änderungen in der Datei "LocalSettings.php" <del>"MonoBookSW.php": Zeile 141ff</del> für neue Footer-Verweise, siehe auch https://www.mediawiki.org/wiki/Manual:Footer:
<pre>
$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;
}</pre>


Diese Änderungen dienen dazu, dass nur Autoren die SpecialPages lesen dürfen und keine normalen Nutzer oder angemeldeten Nutzer.
==== Logos mit Verlinkung und Footerlinks anpassen MW 1.16 ====


'''Achtung: Muss in "includes/SpecialPage.php" nach jedem mediawiki-Update auf Vorhandensein überprüft werden!'''
*Grafiken wie die Logos "Hornemann Institut", "HAWK", "DFG" und "CreativeCommons BY-NC_SA" im Verzeichnis "[wikiverzeichnisname]/skins/common/images/" speichern.


Im Verzeichnis "includes" in der Datei "SpecialPage.php" im Array "static public $mList" in zeile 187 bei der Array-Variablen "Specialpages" den Wert "restrictusers" einfügen:
*Änderungen in MonoBookSW.php: Zeile 213 - 239
<pre>
<pre>
'Specialpages'              => array( 'UnlistedSpecialPage', 'Specialpages', 'restrictusers'),
&lt;/div&gt;&lt;!-- end of the left (by default at least) column --&gt;
</pre>


in LocalSettings.php einfügen:
&lt;div class="visualClear"&gt;&lt;/div&gt;
<pre>
&lt;div id="footer"&gt;
$wgGroupPermissions['autor']['restrictusers'] = true;
</pre>
&lt;!-- Logos der HAWK und des Hornemann Instituts zentral in den "Footer". Rudimentaere Anpassung der Bilder!! Zeitsparend--&gt;
und folgende Zeile wieder auskommentieren:
<pre>$wgGroupPermissions['sysop']['restrictusers'] = true;
</pre>


<!--
&lt;?php
==== Nur Angemeldete lesen und editieren ====
if($this-&gt;data['copyrightico']) {&nbsp;?&gt;
  &lt;div id="f-copyrightico"&gt;
  &lt;a href="http://www.hornemann-institut.de/"&gt;
    &lt;img src="/[wikiverzeichnisname]/skins/common/images/HI.png" width=91 height=30&gt;
  &lt;/a&gt;
  &nbsp; &nbsp;
  &lt;a href="http://www.hawk-hhg.de/"&gt;
    &lt;img src="/[wikiverzeichnisname]/skins/common/images/HAWK.png" height=30 width=84&gt;
  &lt;/a&gt;
  &nbsp; &nbsp;
  &lt;a href="http://www.dfg.de/"&gt;
    &lt;img src="/[wikiverzeichnisname]/skins/common/images/dfg_logo_blau.jpg" height="30" width="85"&gt;
  &lt;/a&gt;
  &lt;/div&gt;
&lt;?php }
if($this-&gt;data['poweredbyico']) {&nbsp;?&gt;
  &lt;div id="f-poweredbyico"&gt;&lt;?php $this-&gt;html('poweredbyico')&nbsp;?&gt;&lt;/div&gt;
&lt;?php }
if($this-&gt;data['copyrightico']) {&nbsp;?&gt;
  &lt;div id="f-poweredbyico"&gt;&lt;?php $this-&gt;html('copyrightico')&nbsp;?&gt;&lt;/div&gt;
&lt;?php }


Wenn SalzWiki installiert ist, aber nicht für alle freigegeben werden soll. Wie kann ich nur die erste Seite sichtbar machen!
  // Generate additional footer links, entfernt: "'lastmod',  'copyright',  'viewcount', 'numberofwatchingusers',"
 
  $footerlinks = array(
*Nur die Startseite ist für alle zu lesen, ansonsten nur für angemeldete Nutzer!!!!!
  'credits',
*nur angemeldete dürfen lesen und Seiten bearbeiten
  'privacy', 'about', 'disclaimer', 'tagline', 'Hallo',  
*für alle sind nur die Seiten „Main Page" und die mit dem "Userlogin", Impressum etc. zu sehen
  );
<pre>
  $validFooterLinks = array();
$wgWhitelistread = array(":Hauptseite", "Spezial:Userlogin", "Salzwiki:Impressum", "General_disclaimer");
  foreach( $footerlinks as $aLink ) {
$wgWhitelistedit = "talk";
  if( isset( $this-&gt;data[$aLink] ) &amp;&amp; $this-&gt;data[$aLink] ) {
# alle duerfen lesen, alle duerfen nicht editieren
    $validFooterLinks[] = $aLink;
$wgGroupPermissions['*']['read'] =false;
  }
$wgGroupPermissions['*']['edit'] = false;
  }
  if ( count( $validFooterLinks ) &gt; 0 ) {
?&gt;  &lt;ul id="f-list"&gt;
</pre>
</pre>


*Damit neue Nutzer nur von sysops angemeldet werden können:
==== "Forschungsverbund"/"Projektverbund" statt "Über [Wiki-Name]" ====


Damit im "Footer" statt auf die Seite "Über SalzWiki" auf die Seite <del>"Forschungsverbund"</del> "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:
<pre>
<pre>
$wgWhitelistAccount = array ( "user" => 0, "sysop" => 1, "developer" => 1 );
"[Wiki-Verzeichnis]/index.php?title=MediaWiki:Aboutsite/de[-formal|-at|-ch]&action=edit"
$wgGroupPermissions['*']['createaccount'] = false;
bzw.
"[Wiki-Verzeichnis]/index.php?title=MediaWiki:Aboutpage/de&action=edit"
</pre>
*Link-Text in "aboutsite" bearbeiten:
<pre>Projektverbund
<!--Über {{SITENAME}}-->
</pre>
*Seitenname, zu dem verlinkt wird, in "aboutpage" bearbeiten:
<pre>Project:Über
</pre>
ersetzen durch
<pre>Forschungsverbund
</pre>
</pre>
-->


=== Sidebar anpassen (Wiki-Code, JS) ===
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.


====Navigation links mit 2 Varianten====
<pre>
'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")
</pre>


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.
Um im "Footer" den Hyperlink "Forschungsverbund" statt "Projektverbund" angezeigt zu  bekommmen, wird in der Skin-Datei der Code angepasst.
* MW 1.16 Datei "MonoBookSW.php"
* MW 1.23 Datei "monobook.php"


*Die '''Standardvariante''' ist zu erreichen über:<br/>http://193.175.110.91/[wikiverzeichnis]/index.php/MediaWiki:Sidebar
MW 1.23
<pre>
???
</pre>


<pre>&lt;!-- Salzwiki --&gt;
MW 1.16
*navigation
<pre>
**Hauptseite|Home
<?php
**Salzwiki:Portal|SalzWiki:Portal
      foreach( $validFooterLins as $aLink ) {
**Aktuelles|Aktuelles
        if( isset($this->data[$aLink]) && $this->data[$aLink] ) {
**Bibliographie|Bibliographie
          // "Projektverbund" eingefügt 2013-12-04 für HAWK HHG
**Glossar|Glossar
          if($aLink=="about"){$this->data[$aLink] = str_replace("Forschungsverbund", "Projektverbund", $this->data[$aLink]);}
<!--**Autorenanmeldung|Autorenanmedlung-->
?>        <li id="<?php echo $aLink?>"><?php $this->html($aLink) ?></li>
**special:contact|Kontakt
<?php  }
**Hilfe:Contents/de|Hilfe
      }
?>
</pre>
 
=== Favicon ===
 
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:
<pre>$wgFavicon = "/[wikiverzeichnisname]/salzwiki.ico";</pre>
 
=== Darstellung in einem Frame ===
 
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.


*SEARCH
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.
*Umfrage
**http://www.worktogether51.net/gc/wsl.php?I=Y4TTY7YTOTTYT47TTUTTBT4NTTYT4BT40 |Ihre Meinung zu SalzWiki


*TOOLBOX
Dies ist zu umgehen, d.h. es tritt keine Fehlermeldung auf, wenn man in den localsetting.php einfügt:
*Sprachversionen
<pre>
**http://www.saltwiki.net/|English
$wgEditPageFrameOptions = 'false';
</pre>
</pre>


<pre>&lt;-- Repositorium --&gt;
Hierzu näheres unter http://webcache.googleusercontent.com/search?q=cache:H1KG7SKYpvoJ:100thpriest.appspot.com/www.mediawiki.org/wiki/Project:Support_desk+mediawiki+1.16.1+frame+warnung+anmelden&cd=3&hl=de&ct=clnk&gl=de&client=firefox-a&source=www.google.de
*Navigation
**Hauptseite|Home
**http://193.175.110.91/salzwiki/index.php/|Zum SalzWiki
</pre>


<pre>&lt;-- Saltwiki --&gt;
<pre>
* navigation
* The X-Frame-Options header to send on pages sensitive to clickjacking
** mainpage|mainpage-description
* attacks, such as edit pages. This prevents those pages from being displayed
** portal-url|SaltWiki-Portal
* in a frame or iframe. The options are:
** currentevents-url|currentevents
*
** Bibliography|Literature
*   - 'DENY': Do not allow framing. This is recommended for most wikis.
** Glossary|Glossary
*
** special:contact|Contact
*   - 'SAMEORIGIN': Allow framing by pages on the same domain. This can be used
** recentchanges-url|recentchanges
*         to allow framing within a trusted domain. This is insecure if there
** helppage|help
*         is a page on the same domain which allows framing of arbitrary URLs.
* SEARCH
*
* TOOLBOX
*   - false: Allow all framing. This opens up the wiki to XSS attacks and thus
*Languages
*         full compromise of local user accounts. Private wikis behind a
**http://www.salzwiki.de/|German
*         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.  
</pre>
</pre>


*Die '''Autor-Variante''' muss durch Erstellung einer neuen Seite (Adminrechte erforderlich) erfolgen:
== Wiki-Konfiguration ==
**Erst folgende Adresse im Browser eingeben:<br/>http://193.175.110.91/[wikiverzeichnis]/index.php/MediaWiki:Autor_sidebar
 
**Danach mit Karteikarte "Erstellen" folgenden Quelltext eingeben:
=== Zugangsberechtigungen  ===
 
==== Spracheinstellungen ====


<pre>&lt;!-- Salzwiki --&gt;
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.
*navigation
**hauptseite|Home
**SalzWiki:Portal|SalzWiki:Portal
**Aktuelles|Aktuelles
**http://193.175.110.91/repository/index.php/Main_Page|Zum Repositorium
**Bibliographie|Literatur 
**Glossar|Glossar
<!--**Autorenanmeldung|Autorenanmeldung-->
**special:contact|Kontakt
**recentchanges-url|recentchanges
**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


* Autoren-Seiten
* Salzwiki: $wgLanguageCode = "de-formal";
**Autoren|Autoren/innen
* Saltwiki: $wgLanguageCode = "en";
**Redaktion_SalzWiki|Redaktion
* Repositorium: $wgLanguageCode = "en";
**Review|Review
**Kategorie|Kategorienbaum
**literature:Bibliography|Zur Bibliographie
**Vorlagen|Vorlagen
**Nutzungsrechte|Nutzungsrechte
<!--**sandkasten|Sandbox-->


*SEARCH
==== Gruppen für Berechtigungen ====
*TOOLBOX
*Sprachversionen
**http://www.saltwiki.net/|English
</pre>


<pre>&lt;-- Repositorium --&gt;
* Administratoren = Chef-Redakteure für Accounts erstellen/sperren, Systemtexte bearbeiten, Wiki-Inhalte verschieben, löschen, importieren etc.
*Navigation
* autor = Autor/in für Wiki-Inhalte
**Mainpage|Home
* Benutzer = nur Diskussionsseiten
**Repositorium-Portal|Repositorium
* Bots (Systemgruppe)
**Aktuelles| Aktuelles
* Bürokraten = Rechtevergabe, Account-Vereinigung
**http://193.175.110.91/salzwiki/index.php/ |SalzWiki
* Editor (saltwiki, repository) = Wiki-Inhalte-Kontrolle
**http://193.175.110.91/saltwiki/index.php/ |SaltWiki
* Redakteur (salzwiki) = siehe Editor
**Literaturverzeichnis| Literatur
* Sicherheit = Seitensperre für Spezialseiten und gesperrte Seiten bei deaktiviertem JavaScript
**terminology|Glossar
* Salzwiki, HAWK etc. = Gruppen im Repository
**recentchanges-url|recentchanges
* sysop = Hauptadministrator
**help:Contents|help


*SEARCH
==== Spezial-Seiten verbergen bzw. verstecken (Wiki-Code) ====


*Autoren/innen
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:
**Kategorienbaum|Kategorienbaum
<pre>
**Nutzungsrechte|Nutzungsrechte
<li class="mw-specialpagerestricted">...
**Vorlagen|Vorlagen
</pre>
**http://193.175.110.91/salzwiki/index.php/literature:Bibliographie| Zur Bibliographie


*VRE
Für Berechtigungen von Spezialseiten siehe auch https://www.mediawiki.org/wiki/Manual:Special_pages/de#Seitenzugriff_beschr.C3.A4nken
**laufende Projekte |Projekte
<del>http://phlow.net/magazin/netzkultur/technik/445-mediawiki-spezialseiten-vor-unerlaubtem-zugriff-sperren</del> (2015-12-04 nicht mehr vorhanden)
**Marktplatz| Marktplatz
**Publizieren| Publizieren


*TOOLBOX
Datei "LocalSettings:php"
*LANGUAGES
<pre>
##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;
</pre>
</pre>


<pre>&lt;-- Saltwiki --&gt;
===== Berechtigung "restrictusers" =====
*navigation
 
**Mainpage|Home
Damit nur Autor/inn/en Spezialseiten lesen dürfen, im Verzeichnis "includes" in der Datei "SpecialPage.php" im Array "static public $mList" in zeile 187 bei der Array-Variablen "Specialpages" den Wert "restrictusers" einfügen:
**Saltwiki:Community_portal|SaltWiki:Portal
<pre>
**News|News
'Specialpages' => array( 'UnlistedSpecialPage', 'Specialpages', 'restrictusers'),
**http://193.175.110.91/repository/index.php/Main_Page|Repository
</pre>
**Bibliography|Literature 
**Glossary| Glossary
**special:contact|Contact
**recentchanges-url|recentchanges
**helppage|help


* Author-Pages
===== Gruppe "Sicherheit" =====
**Authors|Authors
**Editorial_Board|Editorial Board
**Review|Review
**categories|Categorytree
**literature:Bibliography|Bibliography
**Templates|Templates
**Rights|Rights of Use
<!--**sandbox|Sandbox-->


*SEARCH
Diese Seite ist für die Benutzer der Gruppe "Sicherheit" zu sehen: "Listfiles" http://193.175.110.91/salzwiki_1.16.1__p/index.php/Spezial:Dateien
*TOOLBOX
 
*Languages
Hingegen andere Seiten dieser Kategorie "Medien" durch ein zusätzliches "block" nur von Admins gesehn werden können. So sieht die Konfiguration dann aus:
**http://www.salzwiki.de/|German
 
Datei "/includes/SpecialPage.php" ab Zeile 139:
<pre>
## Edit: ", 'block' , 'Sicherheit'" am ende eingeführt! Risos 02.02.2012
# Media reports and uploads
'Listfiles'                => array( 'SpecialPage', 'Listfiles', 'Sicherheit' ),
'Filepath'                  => array( 'SpecialPage', 'Filepath', 'block', 'Sicherheit' ),
'MIMEsearch'                => array( 'SpecialPage', 'MIMEsearch', 'block', 'Sicherheit' ),
'FileDuplicateSearch'      => array( 'SpecialPage', 'FileDuplicateSearch', 'block', 'Sicherheit'),
'Upload'                    => 'SpecialUpload',
</pre>
</pre>


====Navigationsbereich "Werkzeuge" mit Nutzungsrechten versehen (Wiki-Code, JS)====
Der Block ist dann übergeordnet und substituiert "Sicherheit" -> kann auch herausgenommen werden.
 
==== Vergabe von Nutzerrechten durch den Hauptadministrator (sysop) ====
 
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:
<pre>$wgGroupPermissions['sysop']['restrictusers'] = true; ##HJschwarz 22.02.2011, Ersteinstellung für "restrictusers" zum Einstellen der Rechte
</pre>


Die Sidebar im Bereich "Werkzeuge" wird mit Hilfe von Javascript und Eingriff in den Wiki-Code bei "includes/Skin.php" für alle Gruppen außer "autor", "admin" und "forschung" manipuliert.<br/>
Anschließend über SpecialPages->UserRightsManagement->[Username] die Rechte erweitern und alle Gruppen aktivieren.
'''Achtung: Funktioniert nur bei Browsern mit aktiviertem JavaScript und muss in "includes/Skin.php" nach jedem mediawiki-Update auf Vorhandensein überprüft werden!'''


#Die Erweiterung "JavaScript" einbinden - siehe hierzu weiter unten bei "[[#JavaScript|Extensions/JavaScript]]".
#Die Datei "customizeSidebar.js" von S. Reher in das Extensions-Unterverzeichnis "JavaScript" kopieren und an die Sprachvariante anpassen - siehe ebenfalls bei "[[#JavaScript|Extensions/JavaScript]]".
#Die Datei "include/Skin.php" für linke Navigation wie nachfolgend beschrieben anpassen.


Um die Navigation-Box anzupassen wurden folgende Änderungen an der "include/Skin.php" vorgenommen:


In der Funktion: "function buildSidebar()" in der zweiten Zeile die globale Variable "$wgUser" hinzufügen, um später die Gruppenrechte abfragen zu können:
==== Nutzerrechte bis zum Freischalten von Saltwiki ====
<pre>global $wgLang, $wgUser;</pre>


Nach der Zeile mit "$bar = array();" Z.2085 folgende Zeile auskommentieren:
Kein "normaler" Nutzer kann Seiten in SaltWiki lesen:
<pre>#$this->addToSidebar( $bar, 'sidebar' );</pre>
und folgenden Code einfügen:
<pre>
  $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' );
  }
</pre>
Die Zeile "$lines = explode( "\n", wfMsgForContent( 'sidebar' ) );"  muss auskommentiert oder gelöscht werden.


Nun gibt es zwei Sidebars die man unterschiedlich "bestücken" kann.
$wgGroupPermissions['*']['read'] =false;


Sollte es danach '''PHP-Warnungen''' wie "Warning: Call-time pass-by-reference has been deprecated ..." geben, gibt es folgende vorübergehende '''Notlösung''':  
Folgende Seiten werden durch $wgWhitelistRead dennoch für alle zum Lesen freigegegben:
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!
$wgWhitelistRead = array("Main_Page", "Saltwiki:About", "Saltwiki:General disclaimer", "Saltwiki:Privacy policy");
Deshalb ist von der geänderten Datei "Skin.php" zusätzlich eine Kopie "SkinSW.php" im Verzeichnis "includes" zu speichern.


==== Überschrift der Hauptseite/Mainpage ändern ====
==== Benutzer-Rechte in SalzWiki und SaltWiki  ====
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 ===
Die aktuelle Benutzerrechteschema ist:


==== Hochladen von Dateien  ====
<pre># alle duerfen '''nur''' lesen
 
$wgGroupPermissions['*']['read'] = true;
Das Hochladen von Dateien geschieht immer in das Repositorium.
$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;
</pre>
 
==== Spezialseiten dürfen nur AutorInnen lesen (Wiki-Code) ====


Hierzu sind folgende Änderungen in der Datei "LocalSettings.php" des SalzWikis vorzunehmen:
Diese Änderungen dienen dazu, dass nur Autoren die SpecialPages lesen dürfen und keine normalen Nutzer oder angemeldeten Nutzer.
<pre>
$wgUploadNavigationUrl = "/repository/index.php/Special:Upload";
$wgEnableUploads      = false;  ##damit kein Upload in SalzWiki möglich ist
</pre>


Zudem sind folgende Änderungen in der Datei "LocalSettings.php" des Repositoriums vorzunehmen:
'''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)|Spezial-Seiten verbergen bzw. verstecken (Wiki-Code)]]
 
in LocalSettings.php einfügen:
<pre>
<pre>
$wgEnableUploads      = true;
$wgGroupPermissions['autor']['restrictusers'] = true;
## Erlaubte Dateitypen
</pre>
$wgFileExtensions = array('png', 'gif', 'tiff','tif','jpg', 'jpeg', 'doc', 'xls', 'xml','pdf', 'svg', 'avi',
und folgende Zeile wieder auskommentieren:
'mpeg','ogg', 'ogv', 'oga','mov');
<pre>$wgGroupPermissions['sysop']['restrictusers'] = true;
</pre>
</pre>


==== Übergreifende Suche im SalzWiki und Repositorium ====
=== Weiterleitungen ===


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:
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:
<pre>
$wgFetchCommonsDescriptions  = true;
</pre>


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:  
Für die Navigation links (Sidebar), den Footer-Bereich und dergleichen gibt es folgende Weiterleitungen:
<pre>
*Bibliographie => :Special:BibMangerList
$wgUseSharedUploads = true;
*Hauptseite => :Willkommen im Salzwiki
$wgSharedUploadPath = "/repository/images";
*Projektverbund => :Project:Projektverbund
#$wgSharedUploadPath = 'http://193.175.110.91/repository/images;
*Adm:ToDoListe => :Project:ToDo-Liste
$wgSharedUploadDirectory = "D:/xampp/htdocs/repository/images";
*Diskussion:Hauptseite => :Talk:Willkommen im SalzWiki
$wgHashedSharedUploadDirectory = true;
*Hilfe:Variables => :Help:Magic words
$wgSharedUploadDBname = "repository";
*Salzwiki:Über => :Über SalzWiki
$wgSharedUploadDBprefix  = "sr_";
*Salzwiki:Über Salzwiki => :Project:Über SalzWiki
$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.
</pre>


==== Metadaten aus Repositoriumsdateien im SalzWiki sichtbar ====
=== Sidebar anpassen (Wiki-Code, JS) ===


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  
====Navigation links mit 2 Varianten====
<br/>$wgFetchCommonsDescriptions  = true;<br/>
 
erforderlich, sondern auch eine Änderung in der PHP-Konfigurationsdatei "php.ini" in Zeile 523:
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.
<pre>allow_url_fopen = On</pre>
 
So kann fopen() ausgeführt werden, um Beschreibungsdaten vom Repositorium zu holen.
==== Navigation links Standard-Variante ====


==== Zugriff auf ein geschütztes Repository (Wiki-Code) ====
Sichtbare Menüpunkte ohne JavaScript:


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!'''
{| class="prettytable"
|-
|class="hi_2" style="width:33%"|'''SalzWiki'''
|class="hi_2" style="width:33%"|'''SaltWiki'''
|class="hi_2" style="width:33%"|'''Repository'''
|-
|'''Navigation'''
|'''Navigation'''
|'''Navigation'''
|-
|Home
|Home
|Home
|-
|SalzWiki:Portal
|SaltWiki:Portal
|
|-
|Aktuelles
|News
|
|-
|Bibliographie
|Bibliography
|
|-
|Glossar
|Glossary
|
|-
|Redaktion
|Editorial Board
|
|-
|Autoren/innen
|Authors
|
|-
|Letzte Änderungen
|
|
|-
|Kontakt
|Contact Page
|
|-
|Hilfe
|Help
|
|-
|
|
|'''Other Wikis'''
|-
|
|
|SalzWiki
|-
|
|
|SaltWiki
|-
|'''Suche'''
|'''Search'''
|'''Search'''
|-
|'''Werkzeuge'''
|'''Toolbox'''
|'''Toolbox'''
|-
|Links auf diese Seite
|What links here
|What links here
|-
|Änderungen an verlinkten Seiten
|Related changes
|Related changes
|-
|Datei hochladen
|Upload file
|
|-
|Spezialseiten
|Special pages
|Special pages
|-
|Druckversion
|Printable version
|Printable version
|-
|Permanenter Link
|Permanent link
|
|-
|'''Andere Sprachen'''
|'''Languages'''
|
|-
|English
|German
|
|}


*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:
Die '''Standardvariante''' ist zu erreichen über:<br/>http://193.175.110.91/[wikiverzeichnis]/index.php/MediaWiki:Sidebar
**für die Mediawiki-Version '''15.3''':
<pre>
--- HttpFunctions.php 2009-01-08 07:56:11.000000000 +0100
+++ HttpFunctions_new.php 2010-11-01 11:47:57.000000000 +0100
@@ -78,6 +78,65 @@
}
}


+   global $wgAuthenticatedRepository, $wgAuthenticatedRepositoryUser, $wgAuthenticatedRepositoryPassword, $wgShowAuthenticatedRepositoryError;
<pre>&lt;!-- Salzwiki --&gt;
+      $text = '';
*navigation
+ if ( $wgAuthenticatedRepository ) {
**Mainpage|Home
+   require_once 'extensions/Snoopy-1.2.4/Snoopy.class.php';
**Salzwiki:Portal|SalzWiki:Portal
+        $index = '';
**Aktuelles|Aktuelles
+        $login = '';
Special:BibManager_Overview|Bibliographie
+  
**Glossar|Glossar
+   $wikiPath = "";
<!--**Autorenanmeldung|Autorenanmedlung-->
+   if (!preg_match('/(.*)\/index.php\/(.*)\?(.*)/', $url, $matches)) {
**Redaktion SalzWiki|Redaktion
+       echo "nicht gefunden";
**Autoren/innen_von_SalzWiki|Autor/inn/en
+   } else {
**recentchanges-url|Recentchanges
+       $wikiPath = $matches[1];
**special:contact|Kontakt
+   }
**Hilfe:Contents/de|Hilfe
+  
 
+   $apiPath = "$wikiPath/api.php";
*SEARCH
+   $indexPath = "$wikiPath/index.php";
<!--*Umfrage-->
+   $title = $wgTitle->mPrefixedText;
<!--**http://www.worktogether51.net/gc/wsl.php?I=Y4TTY7YTOTTYT47TTUTTBT4NTTYT4BT40 |Ihre Meinung zu SalzWiki-->
+    
 
+   $snoopy = new Snoopy;
*TOOLBOX
+    
 
+   $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'format' => 'php');
*andere Sprachen
+   if(!$snoopy->submit($apiPath, $request_vars))
**http://www.saltwiki.net/|English
+           die("Snoopy error: {$snoopy->error}");
</pre>
+  
 
+   // We're only really interested in the cookies
<pre>&lt;-- Repositorium --&gt;
+   $snoopy->setcookies();
*Navigation
+   $token = unserialize($snoopy->results);
**Hauptseite|Home
+        $error = true;
 
+   $token2 = array();
*Other Wikis
+  
**http://www.salzwiki.de|SalzWiki
+   if ( $token['login']['result'] == 'NeedToken') {
**http://www.saltwiki.net|SaltWiki
+    $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword,  'lgtoken' => $token['login']['token'], 'format' => 'php');
</pre>
+    if(!$snoopy->submit($apiPath, $request_vars))
 
+            die("Snoopy error: {$snoopy->error}");
<pre>&lt;-- Saltwiki --&gt;
+    $token2 = unserialize($snoopy->results);
* navigation
+   }
** mainpage|mainpage-description
+   else if ( ($token['login']['result'] == 'NoName') ) {
** portal-url|SaltWiki-Portal
+     wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" );
** currentevents-url|currentevents
+          if ( $wgShowAuthenticatedRepositoryError ) $text = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
** Bibliography|Literature
+   }
** Glossary|Glossary
+  
** special:contact|Contact
+  
** recentchanges-url|recentchanges
+   if ( ($token2['login']['result'] == 'Success') or ($token['login']['result'] == 'Success') ) {
** helppage|help
+    $request_vars = array('action' => 'render', 'title'=>$title, 'lgtoken' => $token['login']['token'], 'format' => 'php');
* SEARCH
+    if(!$snoopy->submit($indexPath, $request_vars))
* TOOLBOX
+            die("Snoopy error: {$snoopy->error}");
*Languages
+    $text = $snoopy->results;
**http://www.salzwiki.de/|German
+        }
</pre>
+        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." );
==== Navigation links Autor-Variante ====
+          if ( $wgShowAuthenticatedRepositoryError ) $text = "Wrong or no Password for <i>wgAuthenticatedRepositoryPassword</i> in the LocalSetting.<br/>";
 
+        }
Sichtbare Menüpunkte ohne JavaScript:
+        else if ( ($token2['login']['result'] == 'NotExists') ) {
 
+          wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" );
{| class="prettytable"
+          if ( $wgShowAuthenticatedRepositoryError ) $text = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
|-
+        }
|class="hi_2" style="width:33%"|'''SalzWiki'''
+ }
|class="hi_2" style="width:33%"|'''SaltWiki'''
+ else
|class="hi_2" style="width:33%"|'''Repository'''
+ {
|-
ob_start();
|'''Navigation'''
curl_exec( $c );
|'''Navigation'''
$text = ob_get_contents();
|'''Navigation'''
@@ -97,6 +156,7 @@
|-
$text = false;
|Home
}
|Home
curl_close( $c );
|Home
+ }
|-
} else {
|SalzWiki:Portal
# Otherwise use file_get_contents...
|SaltWiki:Portal
# This doesn't have local fetch capabilities...
|Repository Portal
|-
|Aktuelles
|News
|News
|-
|VRE/Repositorium
|VRE/Repository
|Projects
|-
|
|
|Communication
|-
|
|
|Publication
|-
|Bibliographie
|Bibliography
|Bibliography
|-
|Glossar
|Glossary
|Glossary
|-
|Redaktion
|Editorial Board
|
|-
|Autor/inn/en
|Authors
|Authors' Contents
|-
|Letzte Änderungen
|Recent changes
|Recent changes
|-
|Kontakt
|Contact Page
|Contact Page
|-
|Hilfe
|Help
|Help
|-
|'''Autoren-Seiten'''
|'''Author Pages'''
|
|-
|Richtlinien/Übersichten
|Guidelines
|
|-
|Nutzungsrechte
|Rights
|Rights
|-
|Review
|Review
|
|-
|Kategorienbaum
|Category tree
|Category tree
|-
|Vorlagen
|Templates
|Templates
|-
|
|
|'''Other Wikis'''
|-
|
|
|SalzWiki
|-
|
|
|SaltWiki
|-
|'''Suche'''
|'''Search'''
|'''Search'''
|-
|'''Werkzeuge'''
|'''Toolbox'''
|'''Toolbox'''
|-
|Links auf diese Seite
|What links here
|What links here
|-
|Änderungen an verlinkten Seiten
|Related changes
|Related changes
|-
|Datei hochladen
|Upload file
|Upload file
|-
|Spezialseiten
|Special pages
|Special pages
|-
|Druckversion
|Printable version
|Printable version
|-
|Permanenter Link
|Permanent link
|Permanent link
|-
|'''Andere Sprachen'''
|'''Languages'''
|
|-
|English
|German
|
|}
 
Die '''Autor-Variante''' muss durch Erstellung einer neuen Seite (Adminrechte erforderlich) erfolgen:
*Erst folgende Adresse im Browser eingeben:<br/>http://193.175.110.91/[wikiverzeichnis]/index.php/MediaWiki:Autor_sidebar
*Danach mit Karteikarte "Erstellen" folgenden Quelltext eingeben:
 
<pre>&lt;!-- Salzwiki --&gt;
*navigation
**Mainpage|Home
**SalzWiki:Portal|SalzWiki:Portal
**Aktuelles|Aktuelles
**http://193.175.110.91/repository/index.php/Main_Page|VRE/Repositorium
**Spezial:Bibliographieeinträge_verwalten|Literatur 
**Glossar|Glossar
<!--**Autorenanmeldung|Autorenanmeldung-->
**Redaktion_Salzwiki|Redaktion
**special:contact|Contact
**recentchanges-url|recentchanges
**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
**Review|Review
**Autoren|Richtlinien/Übersichten
**Kategorie|Kategorienbaum
**Vorlagen|Vorlagen
**Nutzungsrechte|Nutzungsrechte
<!--**sandkasten|Sandbox-->
 
*SEARCH
 
*TOOLBOX
 
*Andere Sprachen
**http://www.saltwiki.net/|English
</pre>
</pre>
**für die Mediawiki-Version '''16.0''':
 
<pre>
<pre>&lt;-- Repositorium --&gt;
--- HttpFunctions.php 2010-06-09 05:49:34.000000000 +0200
*Research Environment
+++ HttpFunctions_new.php 2010-11-22 17:09:33.000000000 +0100
**Mainpage|Home
@@ -744,7 +744,7 @@
**Projekte|Projects
$this->curlOptions[CURLOPT_CUSTOMREQUEST] = $this->method;
**Communication|Communication
}
**Publications|Publication
**Repository Portal|Repository Portal
  $this->curlOptions[CURLOPT_HTTPHEADER] = $this->getHeaderList();
 
<!--*Authors-->
$curlHandle = curl_init( $this->url );
*
if ( !curl_setopt_array( $curlHandle, $this->curlOptions ) ) {
**News|News
@@ -755,14 +755,97 @@
**Special:BibManager_Overview|Bibliography
/* Continue the processing. If it were in curl_setopt_array, processing would have halted on its entry */
**Category:Author|Content
}
**terminology|Glossary
**Kategorienbaum|Category-tree
- if ( false === curl_exec( $curlHandle ) ) {
**Rights|Rights
- $code = curl_error( $curlHandle );
**Vorlagen|Templates
-
**http://www.salzwiki.de/|SalzWiki
- if ( isset( self::$curlMessageMap[$code] ) ) {
**http://www.saltwiki.net/|SaltWiki
- $this->status->fatal( self::$curlMessageMap[$code] );
 
- } else {
*
- $this->status->fatal( 'http-curl-error', curl_error( $curlHandle ) );
**recentchanges-url|Recentchanges
- }
**special:contact|contact
- } else {
**help:Contents|help
- $this->headerList = explode("\r\n", $this->headerText);
<!--
- }
*VRE
-
**laufende Projekte|Projekte
- curl_close( $curlHandle );
**Marktplatz|Marktplatz
-
**Publizieren|Publizieren
+ /*
-->
+ * START:
*SEARCH
+ * Add code to access restricted repositories.
 
+ * Add the following line in the LocalSettings.php
*TOOLBOX
+ * $wgAuthenticatedRepository = true;
 
+ * $wgAuthenticatedRepositoryUser = 'WikiSysop';
*LANGUAGES
+ * $wgAuthenticatedRepositoryPassword = 'dev2010wer';
</pre>
+ * $wgShowAuthenticatedRepositoryError = true;
 
+ */
<pre>&lt;-- Saltwiki --&gt;
+
*navigation
+    global $wgAuthenticatedRepository, $wgAuthenticatedRepositoryUser, $wgAuthenticatedRepositoryPassword, $wgShowAuthenticatedRepositoryError;
**Mainpage|Home
+    $error = true;
**Saltwiki:Community_portal|SaltWiki:Portal
+    $text = '';
**News|News
+    $token2 = array();
**http://193.175.110.91/repository/index.php/Main_Page|Repository
+
**Special:BibManager_Overview|Bibliography 
+ /* run the code only if the user activate is in the LocalSettings.php*/
**Glossary| Glossary
+    if ( $wgAuthenticatedRepository ) {
**Editorial_Board|Editorial Board
+      require_once 'extensions/Snoopy-1.2.4/Snoopy.class.php';
**Authors in Saltwiki|Authors
+      $index = '';
**special:contact|Contact
+      $login = '';
**recentchanges-url|recentchanges
+     
**helppage|help
+      /* Get all relevat url informations */
 
+      /* URL: http://localhost/mediawiki/mediawiki-repository/index.php/File:MediawikiExampleImageFlower.jpg?action=render&uselang=en */
* Author-Pages
+      $wikiPath = "";
**Authors_Page|Authors
+      if (!preg_match('/(.*)\/index.php\/(.*)\?(.*)/', $this->url, $matches)) {
**Review|Review
+          echo "nicht gefunden";
<!--** SIC|Online Journal: Salts in Conservation-->
+      } else {
**categories|Categorytree
+          $wikiPath = $matches[1];
**Templates|Templates
+   /* If the url contains special characters, when these characters must be convert */
**Rights|Rights of Use
+   $title = rawurldecode($matches[2]);
<!--**sandbox|Sandbox-->
+      }
 
+     
*SEARCH
+      $apiPath = "$wikiPath/api.php";
 
+      $indexPath = "$wikiPath/index.php";
*TOOLBOX
+
*Languages
+      $snoopy = new Snoopy;
**http://www.salzwiki.de/|German
+      /* Start request to get an token */
</pre>
+      $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'format' => 'php');
 
+      if(!$snoopy->submit($apiPath, $request_vars))
====Navigationsbereich "Werkzeuge" mit Nutzungsrechten versehen (Wiki-Code, JS)====
+      $this->status->fatal("Snoopy error: {$snoopy->error}");
 
+     
Die Sidebar im Bereich "Werkzeuge" wird mit Hilfe von Javascript und Eingriff in den Wiki-Code bei "includes/Skin.php" für alle Gruppen außer "autor", "admin" und "forschung" manipuliert.<br/>
+      // We're only really interested in the cookies
'''Achtung: Funktioniert nur bei Browsern mit aktiviertem JavaScript und muss in "includes/Skin.php" nach jedem mediawiki-Update auf Vorhandensein überprüft werden!'''
+      $snoopy->setcookies();
 
+      $token = unserialize($snoopy->results);
#Die Erweiterung "JavaScript" einbinden - siehe hierzu weiter unten bei "[[#JavaScript|Extensions/JavaScript]]".
+     
#Die Datei "customizeSidebar.js" von S. Reher in das Extensions-Unterverzeichnis "JavaScript" kopieren und an die Sprachvariante anpassen - siehe ebenfalls bei "[[#JavaScript|Extensions/JavaScript]]".
+      /* Use the Token to login */
#Die Datei "include/Skin.php" für linke Navigation wie nachfolgend beschrieben anpassen.
+      if ( $token['login']['result'] == 'NeedToken') {
 
+      $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'lgtoken' => $token['login']['token'], 'format' => 'php');
Um die Navigation-Box anzupassen wurden folgende Änderungen an der "include/Skin.php" vorgenommen:
+      if(!$snoopy->submit($apiPath, $request_vars))
 
+  $this->status->fatal("Snoopy error: {$snoopy->error}");
In der Funktion: "function buildSidebar()" in der zweiten Zeile die globale Variable "$wgUser" hinzufügen, um später die Gruppenrechte abfragen zu können:
+      $token2 = unserialize($snoopy->results);
<pre><!--MW1.23, Z.1249-->
+      }
global $wgMemc, $wgEnableSidebarCache, $wgSidebarCacheExpiry, $wgUser;
+      else if ( ($token['login']['result'] == 'NoName') ) {
</pre>
+        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/>";
<pre><!--MW1.16-->
+      }
global $wgLang, $wgUser;
+           
</pre>
+      /* If the login was successful, get the Information from the File Description */
 
+      if ( ($token2['login']['result'] == 'Success') or ($token['login']['result'] == 'Success') ) {  
Nach der Zeile mit "$bar = array();" (MW1.23 Z.1263, MW1.16 Z.2085) folgende Zeile auskommentieren:
+      $request_vars = array('action' => 'render', 'title'=> $title, 'lgtoken' => $token['login']['token'], 'format' => 'php');
<pre>#$this->addToSidebar( $bar, 'sidebar' );</pre>
+      if(!$snoopy->submit($indexPath, $request_vars))
und folgenden Code einfügen:
$this->status->fatal("Snoopy error: {$snoopy->error}");
<pre>
+      $this->content = $snoopy->results;
  $groups = $wgUser->getEffectiveGroups();
+      }
  ## add here admin support
+      else if ( ($token2['login']['result'] == 'WrongPass') or ($token2['login']['result'] == 'WrongPluginPass') or ($token2['login']['result'] == 'EmptyPass') ) {
  if (in_array("autor", $groups) || in_array("Administrators", $groups) || in_array("forschung", $groups)) {
+        wfDebug( __METHOD__ . ": Wrong or no Password for wgAuthenticatedRepositoryPassword in the LocalSetting." );
    //$lines = explode( "\n", wfMsgForContent( 'autor_sidebar' ) );
+        if ( $wgShowAuthenticatedRepositoryError ) $this->content = "Wrong or no Password for <i>wgAuthenticatedRepositoryPassword</i> in the LocalSetting.<br/>";
    $this->addToSidebar( $bar, 'autor_sidebar' );
+      }
  } else {
+      else if ( ($token2['login']['result'] == 'NotExists') ) {
    //$lines = explode( "\n", wfMsgForContent( 'sidebar' ) );
+        wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" );
    $this->addToSidebar( $bar, 'sidebar' );
+        if ( $wgShowAuthenticatedRepositoryError ) $this->content = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
  }
+      }
</pre>
+      $this->headerList = explode("\r\n", $this->headerText);     
Die Zeile "$lines = explode( "\n", wfMsgForContent( 'sidebar' ) );"  muss auskommentiert oder gelöscht werden.
+    }
 
+    else
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''':
+ * START: Original Code - now in a if statement
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!'''
+
 
+  if ( false === curl_exec( $curlHandle ) ) {
ACHTUNG: Wenn das Mediawiki aktualisiert wird, muss die Änderung in der Datei "Skin.php" wieder eingefügt werden, um die Funktionalität zu erhalten!
+  $code = curl_error( $curlHandle );
Deshalb ist von der geänderten Datei "Skin.php" zusätzlich eine Kopie "SkinSW.php" im Verzeichnis "includes" zu speichern.
 
+  if ( isset( self::$curlMessageMap[$code] ) ) {
==== Überschrift der Hauptseite/Mainpage ändern ====
+  $this->status->fatal( self::$curlMessageMap[$code] );
Die Überschrift ist auf der Systemseite "Mediawiki:Mainpage" eingetragen und muss dort geändert werden.
+  } else {
Die Überschrift, die per Voreinstellung Main Page (Hauptseite in der deutschen Übersetzung) heißt, ist in die entsprechende Titelzeile zu ändern.
+  $this->status->fatal( 'http-curl-error', curl_error( $curlHandle ) );
 
+  }
=== Repositorium-Dateien im SalzWiki ===
+  } else {
 
$this->headerList = explode("\r\n", $this->headerText);
==== Hochladen von Dateien ====
+  }
 
+  curl_close( $curlHandle );
Das Hochladen von Dateien geschieht immer in das Repositorium.
 
+ /*
Hierzu sind folgende Änderungen in der Datei "LocalSettings.php" des SalzWikis vorzunehmen:
+ * END: Original Code - now in a if statement
<pre>
+ */
$wgUploadNavigationUrl = "/repository/index.php/Special:Upload";
+  }
$wgEnableUploads      = false##damit kein Upload in SalzWiki möglich ist
+ /*
</pre>
+ *  END: Add code to access restricted repositories
 
+ */
Zudem sind folgende Änderungen in der Datei "LocalSettings.php" des Repositoriums vorzunehmen:
<pre>
$this->parseHeader();
$wgEnableUploads      = true;
$this->setStatus();
## Erlaubte Dateitypen
return $this->status;
$wgFileExtensions = array('png', 'gif', 'tiff','tif','jpg', 'jpeg', 'doc', 'xls', 'xml','pdf', 'svg', 'avi',
}
'mpeg','ogg', 'ogv', 'oga','mov');
}
</pre>
   
 
class PhpHttpRequest extends HttpRequest {
==== Übergreifende Suche im SalzWiki und Repositorium ====
 
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:
<pre>
$wgFetchCommonsDescriptions = true;
</pre>
</pre>
Es wurden hauptsächlich Anpassungen gemacht, die den Text zurückgeben, sowie an der Abarbeitung von Fehlern. <br/>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".
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:
<pre>
$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.
</pre>
 
==== Metadaten aus Repositoriumsdateien im SalzWiki sichtbar ====


*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.
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
<br/>$wgFetchCommonsDescriptions  = true;<br/>
erforderlich, sondern auch eine Änderung in der PHP-Konfigurationsdatei "php.ini" in Zeile 523:
<pre>allow_url_fopen = On</pre>
So kann fopen() ausgeführt werden, um Beschreibungsdaten vom Repositorium zu holen.


*Das Modul "curl" muss beim Apache-Webserver aktiviert sein; dazu kommentiert man in der Datei "D:\xampp\php\php.ini" die folgende Zeile ein:
==== Zugriff auf ein geschütztes Repository (Wiki-Code) ====
<pre>extension=php_curl.dll </pre>
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:
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!'''
<pre>$wgGroupPermissions['*']['read'] = false;</pre>


*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:
*Zunächst ist die Datei "httpFunctions.php" im Verzeichnis includes von SalzWiki zu modifizieren, siehe https://phabricator.wikimedia.org/T27563. Dazu wird von der Datei eine Kopie "httpFunctions_original.php" gespeichert. Danach wird folgender Code eingefügt:
**für die Mediawiki-Version '''15.3''':
<pre>
<pre>
$wgAuthenticatedRepository = true;
--- HttpFunctions.php 2009-01-08 07:56:11.000000000 +0100
$wgAuthenticatedRepositoryUser = 'WikiSysop';
+++ HttpFunctions_new.php 2010-11-01 11:47:57.000000000 +0100
$wgAuthenticatedRepositoryPassword = 'xxx';
@@ -78,6 +78,65 @@
$wgShowAuthenticatedRepositoryError = false;
}
</pre>
}
$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.
<br>$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:
+   global $wgAuthenticatedRepository, $wgAuthenticatedRepositoryUser, $wgAuthenticatedRepositoryPassword, $wgShowAuthenticatedRepositoryError;
<pre>
+      $text = '';
$wgForeignFileRepos[] = array(
+ if ( $wgAuthenticatedRepository ) {
'class' => 'ForeignDBRepo',
+   require_once 'extensions/Snoopy-1.2.4/Snoopy.class.php';
'name' => 'mediawiki-repository',
+        $index = '';
'url' => $wgSharedUploadPath,
+        $login = '';
'directory' => $wgSharedUploadDirectory,
+  
'hashLevels' => 2, // This must be the same for the other family member
+   $wikiPath = "";
'dbType' => $wgDBtype,
+   if (!preg_match('/(.*)\/index.php\/(.*)\?(.*)/', $url, $matches)) {
'dbServer' => $wgDBserver,
+       echo "nicht gefunden";
'dbUser' => $wgDBuser,
+   } else {
'dbPassword' => $wgDBpassword,
+       $wikiPath = $matches[1];
'dbFlags' => DBO_DEFAULT,
+   }
'dbName' => $wgSharedUploadDBname,
+  
'tablePrefix' => $wgSharedUploadDBprefix,
+   $apiPath = "$wikiPath/api.php";
'hasSharedCache' => false,
+   $indexPath = "$wikiPath/index.php";
'descBaseUrl' => $wgRepositoryBaseUrl,
+   $title = $wgTitle->mPrefixedText;
'fetchDescription' => $wgFetchCommonsDescriptions
+    
);
+   $snoopy = new Snoopy;
</pre>
+    
 
+   $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'format' => 'php');
=== Vorlagen  ===
+   if(!$snoopy->submit($apiPath, $request_vars))
 
+           die("Snoopy error: {$snoopy->error}");
Vorlagen = Templates finden sich beispielhaft auf der Seite [[Vorlagen]] dargestellt.
+  
 
+   // We're only really interested in the cookies
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 <nowiki>{{Vorlagenname}}</nowiki> verwenden zu können.
+   $snoopy->setcookies();
Die Vorlage ist anschließend auf der Seite "Vorlagen" beispielhaft aufzuführen.
+   $token = unserialize($snoopy->results);
Die vorhandene Vorlage "Languages" wird ersetzt durch eine eigene Vorlage.
+        $error = true;
 
+   $token2 = array();
*'''Lizenzvorlagen''': Eine neue Kategorie "Kategorie:Lizenzenvorlagen" erstellen mit folgenden Vorlagen:
+  
**CC-by-nc-nd,CC-by-nc-nd/de
+   if ( $token['login']['result'] == 'NeedToken') {
**CC-by-nc-sa,CC-by-nc-sa/de
+    $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword,  'lgtoken' => $token['login']['token'], 'format' => 'php');
**PD
+    if(!$snoopy->submit($apiPath, $request_vars))
**PD Help Page, PD Help Page/de, PD Help Page/fr
+            die("Snoopy error: {$snoopy->error}");
** GFDL,GFDL/de (nur im Repositorium)
+    $token2 = unserialize($snoopy->results);
*'''Vorlagen für SalzWiki und Saltwiki'''
+   }
**Infobox_Salz bzw. Infobox_Salt
+   else if ( ($token['login']['result'] == 'NoName') ) {
**MetadatenFoto_upload (wird im Artikel Vorlagen/Templates verwendet)
+     wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" );
*'''Vorlagen für das Repositorium'''
+          if ( $wgShowAuthenticatedRepositoryError ) $text = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
**MetadatenFoto_upload
+   }
**MetadatenDaten_upload
+  
**MetadatenLiteratur_upload
+  
**MetadatenProben_upload
+   if ( ($token2['login']['result'] == 'Success') or ($token['login']['result'] == 'Success') ) {
**MetadatenText_upload
+    $request_vars = array('action' => 'render', 'title'=>$title, 'lgtoken' => $token['login']['token'], 'format' => 'php');
**Untersuchungsmethoden
+    if(!$snoopy->submit($indexPath, $request_vars))
 
+            die("Snoopy error: {$snoopy->error}");
 
+    $text = $snoopy->results;
Alle anderen Vorlagen wurden beim Einbinden der Hilfeseiten bzw. Extensions eingestellt.
+        }
 
+        else if ( ($token2['login']['result'] == 'WrongPass') or ($token2['login']['result'] == 'WrongPluginPass') or ($token2['login']['result'] == 'EmptyPass') ) {
=== XEB Extra Edit Buttons (Wiki-Code, JS) ===
+          wfDebug( __METHOD__ . ": Wrong or no Password for wgAuthenticatedRepositoryPassword in the LocalSetting." );
 
+          if ( $wgShowAuthenticatedRepositoryError ) $text = "Wrong or no Password for <i>wgAuthenticatedRepositoryPassword</i> in the LocalSetting.<br/>";
'''Achtung: Funktioniert nur bei Browsern mit aktiviertem JavaScript und muss in "includes/EditPage.php" nach jedem mediawiki-Update auf Vorhandensein überprüft werden!'''
+        }
 
+        else if ( ($token2['login']['result'] == 'NotExists') ) {
Die Funktionen bzw. verfügbaren Schaltflächensymbole des Editors wurden durch nachfolgenden Scriptcode erweitert.
+          wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" );
 
+          if ( $wgShowAuthenticatedRepositoryError ) $text = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
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.
+ else
 
+ {
<pre> ,
ob_start();
array( 'image' => "Button_redirect.png",
curl_exec( $c );
'id'   => "Button_redirect",
$text = ob_get_contents();
'tip' => "Redirect",
@@ -97,6 +156,7 @@
'open' => "#REDIRECT [[",
$text = false;
'close' => "]]",
}
'sample'=> "Insert text"
curl_close( $c );
),
+ }
array( 'image' => "Button_strike.png",
} else {
'id'   => "Button_strike",
# Otherwise use file_get_contents...
'tip' => "Strike",
# This doesn't have local fetch capabilities...
'open' => "<s>",
</pre>
'close' => "</s>",
**für die Mediawiki-Version '''16.0''':
'sample'=> "Strike-through text"
<pre>
),
--- HttpFunctions.php 2010-06-09 05:49:34.000000000 +0200
array( 'image' => "Button_enter.png",
+++ HttpFunctions_new.php 2010-11-22 17:09:33.000000000 +0100
'id'    => "Button_enter",
@@ -744,7 +744,7 @@
'tip' => "Line break",
$this->curlOptions[CURLOPT_CUSTOMREQUEST] = $this->method;
'open' => "<br />",
}
'close' => "",
'sample'=> ""
  $this->curlOptions[CURLOPT_HTTPHEADER] = $this->getHeaderList();
),
array( 'image' => "Button_upper_letter.png",
$curlHandle = curl_init( $this->url );
'id'   => "Button_upper_letter",
if ( !curl_setopt_array( $curlHandle, $this->curlOptions ) ) {
'tip' => "Superscript",
@@ -755,14 +755,97 @@
'open' => "<sup>",
/* Continue the processing. If it were in curl_setopt_array, processing would have halted on its entry */
'close' => "</sup>",
}
'sample'=> "Superscript text"
),
- if ( false === curl_exec( $curlHandle ) ) {
array( 'image' => "Button_lower_letter.png",
- $code = curl_error( $curlHandle );
'id'   => "Button_lower_letter",
-
'tip' => "Subscript",
- if ( isset( self::$curlMessageMap[$code] ) ) {
'open' => "<sub>",
- $this->status->fatal( self::$curlMessageMap[$code] );
'close' => "</sub>",
- } else {
'sample'=> "Subscript text"
- $this->status->fatal( 'http-curl-error', curl_error( $curlHandle ) );
),
- }
array( 'image' => "Button_small.png",
- } else {
'id'    => "Button_small",
- $this->headerList = explode("\r\n", $this->headerText);
'tip' => "Small",
- }
'open' => "<small>",
-
'close' => "</small>",
- curl_close( $curlHandle );
'sample'=> "Small Text"
-
),
+ /*
array( 'image' => "Button_hide_comment.png",
+ *  START:
'id'    => "Button_hide_comment",
+ *  Add code to access restricted repositories.  
'tip' => "Insert hidden Comment",
+ *  Add the following line in the LocalSettings.php
'open' => "<!-- ",
+ * $wgAuthenticatedRepository = true;
'close' => " -->",
+ * $wgAuthenticatedRepositoryUser = 'WikiSysop';
'sample'=> "Comment"
+ * $wgAuthenticatedRepositoryPassword = 'dev2010wer';
),
+ * $wgShowAuthenticatedRepositoryError = true;
array( 'image' => "Button_Bibliogryphy.png",
+ */
'id'    => "Button_insert Literature",
+
'tip' => "Literturzitat einfügen",
+    global $wgAuthenticatedRepository, $wgAuthenticatedRepositoryUser, $wgAuthenticatedRepositoryPassword, $wgShowAuthenticatedRepositoryError;
'open' => '<bib id="',
+    $error = true;
'close' => '"/>',
+    $text = '';
'sample'=> 'Mueller:2009'
+    $token2 = array();
),
+
array( 'image' => "Button_blockquote.png",
+ /* run the code only if the user activate is in the LocalSettings.php*/
'id'    => "Button_blockquote",
+    if ( $wgAuthenticatedRepository ) {
'tip' => "Insert block of quoted text",
+      require_once 'extensions/Snoopy-1.2.4/Snoopy.class.php';
'open' => "<blockquote>\\n",
+      $index = '';
'close' => "\\n</blockquote>",
+      $login = '';
'sample'=> "Block quote"
+     
),
+      /* Get all relevat url informations */
array( 'image' => "Button_insert_table.png",
+      /* URL: http://localhost/mediawiki/mediawiki-repository/index.php/File:MediawikiExampleImageFlower.jpg?action=render&uselang=en */
'id'    => "Button_insert_table",
+      $wikiPath = "";
'tip' => "Insert a table",
+      if (!preg_match('/(.*)\/index.php\/(.*)\?(.*)/', $this->url, $matches)) {
'open' => '{| class="wikitable"\\n|-\\n',
+          echo "nicht gefunden";
'close' => "\\n|}",
+      } else {
'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"
+          $wikiPath = $matches[1];
),
+   /* If the url contains special characters, when these characters must be convert */
array( 'image' => "Button_reflink.png",
+   $title = rawurldecode($matches[2]);
'id'    => "Button_reflink",
+      }
'tip' => "Insert a reference",
+     
'open' => "<ref>",
+      $apiPath = "$wikiPath/api.php";
'close' => "</ref>",
+      $indexPath = "$wikiPath/index.php";
'sample'=> "Insert footnote text here"
+
)
+      $snoopy = new Snoopy;
</pre>
+      /* Start request to get an token */
 
+      $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'format' => 'php');
Je nach Sprachvariante sind die Texte hinter "tip" und "sample" zu übersetzen.
+      if(!$snoopy->submit($apiPath, $request_vars))
 
+      $this->status->fatal("Snoopy error: {$snoopy->error}");
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.
+      // We're only really interested in the cookies
 
+      $snoopy->setcookies();
=== Einrichten von Namensräumen<br>  ===
+      $token = unserialize($snoopy->results);
 
+     
Es werden 3 Namensräume eingerichtet:
+      /* Use the Token to login */
#für Dokumente der Administratoren (ADM), den nur diese bearbeiten können,
+      if ( $token['login']['result'] == 'NeedToken') {
#für die Bibliographie (Literatur)
+      $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'lgtoken' => $token['login']['token'], 'format' => 'php');
#zum erstmaligen Erstellen von Dokumenten (Bearbeitung), die kein Leser sehen soll
+      if(!$snoopy->submit($apiPath, $request_vars))
<pre>
+  $this->status->fatal("Snoopy error: {$snoopy->error}");
# Einrichten eines Namensraumes Adm, Bearbeitung und Literature
+      $token2 = unserialize($snoopy->results);
define("NS_ADM", 100);
+      }
define("NS_ADM_TALK", 101);
+      else if ( ($token['login']['result'] == 'NoName') ) {
define("NS_Bearbeitung", 120);
+        wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" );
define("NS_Bearbeitung_TALK", 121);
+        if ( $wgShowAuthenticatedRepositoryError ) $this->content = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
define("NS_Literature", 110);
+      }
define("NS_Literature_TALK", 111);
+           
# Create namespaces
+      /* If the login was successful, get the Information from the File Description */
$wgExtraNamespaces = array(
+      if ( ($token2['login']['result'] == 'Success') or ($token['login']['result'] == 'Success') ) {
NS_ADM => 'Adm',
+      $request_vars = array('action' => 'render', 'title'=> $title, 'lgtoken' => $token['login']['token'], 'format' => 'php');
NS_ADM_TALK => 'Adm_talk',
+      if(!$snoopy->submit($indexPath, $request_vars))
NS_Bearbeitung => 'Bearbeitung',
+   $this->status->fatal("Snoopy error: {$snoopy->error}");
NS_Bearbeitung_TALK => 'Bearbeitung_talk',
+     $this->content = $snoopy->results;
NS_Literature => 'Literature',
+      }
NS_Literature_TALK => 'Literature _talk'
+     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." );
$wgNamespacesWithSubpages[NS_HELP] = true;           #subpages enabled for the Heplnamespace
+       if ( $wgShowAuthenticatedRepositoryError ) $this->content = "Wrong or no Password for <i>wgAuthenticatedRepositoryPassword</i> in the LocalSetting.<br/>";
$wgNamespaceProtection[NS_ADM] = array( 'editadm' ); #permission "editadmin" required to edit the Adm namespace
+      }
$wgNamespacesWithSubpages[NS_ADM] = true;            #subpages enabled for the ADM namespace
+      else if ( ($token2['login']['result'] == 'NotExists') ) {
$wgGroupPermissions['Administrator']['editadm'] = true;
+        wfDebug( __METHOD__ . ": Wrong or no User for wgAuthenticatedRepositoryUser in the LocalSetting. \n" );
</pre>
+        if ( $wgShowAuthenticatedRepositoryError ) $this->content = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
 
+      }
== Extensions  ==
+      $this->headerList = explode("\r\n", $this->headerText);     
 
+    }
=== JavaScript ===
+    else
 
+    {   
Diese Erweiterung dient 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_.28Wiki-Code.2C_JS.29|Sidebar anpassen]].
+ /*
   
+ *  START: Original Code - now in a if statement
'''Installation von "JavaScript.php"'''
+ */
 
+
* Quelltext der Erweiterung "JavaScript" unter "http://www.mediawiki.org/wiki/Extension:Javascript -> Download" kopieren
+  if ( false === curl_exec( $curlHandle ) ) {
* Code am Ende mit "?>" ergänzen und speichern unter "extensions/JavaScript/JavaScript.php"
+  $code = curl_error( $curlHandle );
* In der Datei "LocalSettings.php" einfügen:
<pre>include("$IP/extensions/JavaScript/JavaScript.php");</pre>
+  if ( isset( self::$curlMessageMap[$code] ) ) {
 
+  $this->status->fatal( self::$curlMessageMap[$code] );
'''Code-Anpassungen in der Datei "JavaScript.php"'''
+  } else {
 
+  $this->status->fatal( 'http-curl-error', curl_error( $curlHandle ) );
Die Erweiterung in der Version 2.1.3 für "saltwiki" hat zusätzlichen Code für CSS (StyleSheets).
+  }
Die Erweiterung in der Version 2.1.1 funktionierte in "salzwiki" leider nicht out of the box. Deshalb wurden von S. Reher (25.07.2010) Änderungen vorgenommen. In der Datei "JavaScript.php" werden die Zeilen 33 bis 34 auskommentiert:
+  } else {
<pre>
+  $this->headerList = explode("\r\n", $this->headerText);
#$file = preg_replace( "|^.*/extensions/|", "$wgScriptPath/extensions/", $file );
+  }
#$out->addScript( "&lt;script src='$file' type='$wgJsMimeType'&gt;&lt;/script&gt;" );
+  curl_close( $curlHandle );
</pre>
Stattdessen werden die folgenden Zeilen hinzugefügt, um auf dem Window-System die Pfade korrekt anzupassen:
+ /*
<pre>
+ *  END: Original Code - now in a if statement
  $slashPos = strpos('/',$wgScriptPath);
+ */
  if ($slashPos==0) $wgScriptPath_tmp = substr_replace($wgScriptPath ,"",0, 1);
+  }
  $file = str_replace('\\','/', $file);
+ /*
  $pos = strpos($file, $wgScriptPath_tmp);
+ *  END: Add code to access restricted repositories
  $length = strlen($file)-$pos;
+ */
  $file = substr($file, $pos, $length);
  $out->addScript( "&lt;script src='/$file' type='$wgJsMimeType'&gt;&lt;/script&gt;" );
$this->parseHeader();
</pre>
$this->setStatus();
Das Javascript lädt alle Dateien aus dem Verzeichnis, in diesem Falle die Datei "customizeSidebar.js".
return $this->status;
 
}
'''Code-Anpassungen in der Datei "customizeSidebar.js"'''
}
 
Die Funktion "CustomizeModificationsOfSidebar()" entfernt mittels der nachfolgenden Zeilen Einträge aus dem Werkzeug-Kasten.
class PhpHttpRequest extends HttpRequest {
 
Deutsche Version:
<pre>
  ModifySidebar("remove", "toolbox", "Hochladen", wgServer+"/repository/index.php/Spezial:Hochladen");
  ModifySidebar("remove", "toolbox", "Änderungen an verlinkten Seiten", wgServer+wgScriptPath+"/index.php/Spezial:%C3%84nderungen_an_verlinkten_Seiten");
  ModifySidebar("remove", "toolbox", "Links auf diese Seite", wgServer+wgScriptPath+"/index.php?/Special:WhatLinksHere/Main_Page");
  ModifySidebar("remove", "toolbox", "Permanentlink", wgServer+wgScriptPath+"/index.php?title=Salztransportmodellierung&oldid=1658");
  ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Spezial:Spezialseiten");
</pre>
</pre>
Es wurden hauptsächlich Anpassungen gemacht, die den Text zurückgeben, sowie an der Abarbeitung von Fehlern. <br/>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".


Englische Version:
*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.
<pre>
 
  ModifySidebar("remove", "toolbox", "Hochladen", wgServer+"/repository/index.php/Special:Upload");
*Das Modul "curl" muss beim Apache-Webserver aktiviert sein; dazu kommentiert man in der Datei "D:\xampp\php\php.ini" die folgende Zeile ein:
  ModifySidebar("remove", "toolbox", "Änderungen an verlinkten Seiten", wgServer+wgScriptPath+"/index.php/Special:RecentChangesLinked");
<pre>extension=php_curl.dll </pre>
  ModifySidebar("remove", "toolbox", "What links here", wgServer+wgScriptPath+"/index.php?/Special:WhatLinksHere/Main_Page");
Den Apache-Dienst über das XAMPP-Control-Panel neu starten, damit die Änderungen wirksam werden.
  ModifySidebar("remove", "toolbox", "Permanentlink", wgServer+wgScriptPath+"/index.php?title=Salztransportmodellierung&oldid=1658");
  ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Special:SpecialPages");
</pre>


Wann dies aktiv wird, wird über die folgenden Zeilen geregelt:
*Der Zugriff auf das Repositorium wird gesperrt durch folgenden Eintrag in der Datei "LocalSettings.php" des Repositoriums:
<pre>$wgGroupPermissions['*']['read'] = false;</pre>
 
*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:
<pre>
<pre>
/*if the user is not autor or admin, there should be displayed only necessary links*/
$wgAuthenticatedRepository = true;
if (isArray(wgUserGroups)) {
$wgAuthenticatedRepositoryUser = 'WikiSysop';
  if (wgUserGroups.Contains('autor') || wgUserGroups.Contains('Administrators') || wgUserGroups.Contains('forschung')) {
$wgAuthenticatedRepositoryPassword = 'xxx';
    /*Nothing*/
$wgShowAuthenticatedRepositoryError = false;
  }
  else {
    /*Administrators,autor,sysop,*,user,autoconfirmed*/
    /*alert(wgUserGroups);*/
    addOnloadHook(CustomizeModificationsOfSidebar);
  }
}
/*if the user is guest, there should be displayed only necessary links*/
if (wgUserName == null) {
  addOnloadHook(CustomizeModificationsOfSidebar);
}
</pre>
</pre>
$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.
<br>$wgShowAuthenticatedRepositoryError - Gibt Fehlermeldungen in die Log Dateien. Für den Live Betrieb bitte abstellen.


=== AccessControl  ===
*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:
 
<pre>
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.
$wgForeignFileRepos[] = array(
 
'class' => 'ForeignDBRepo',
* Die Extension wird heruntergeladen und nach dem Extrahieren in das Verzeichnis "extensions" kopiert.
'name' => 'mediawiki-repository',
* Einfügen in Datei "LocalSettings.php":  
'url' => $wgSharedUploadPath,
<pre>require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");</pre>
'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
);
</pre>


Der Zugang auf eine Seite wird durch Eingabe einer Nutzergruppe (Beispiel: "parole") erlaubt, die vorher z.B. in "LocalSettings.php" definiert wird:
=== Vorlagen  ===
<pre>$wgGroupPermissions['parole']['read'] = true;</pre>
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):
<pre><accesscontrol>parole</accesscontrol></pre>


Die Datei "AccessControl.php" ist wie folgt zu bearbeiten:<br/>
Vorlagen = Templates finden sich beispielhaft auf der Seite [[Vorlagen]] dargestellt.  
In Zeile 68 das '''&''' bei "&$parser" entfernen, damit es nicht zu Problemen zwischen den Extensions "AccessControl" und "DymanicPageList" kommt:
<pre>
function doControlUserAccess( $input, $argv, &$parser ) {
</pre>
In Zeile 193 "if(is_array($allow)){" zur Verhinderung einer php-Warnung mit "isset($allow) &&" ergänzen:
<pre>
if(isset($allow) && is_array($allow)){
</pre>


'''Einrichten einer Usergruppe'''
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 <nowiki>{{Vorlagenname}}</nowiki> verwenden zu können.
Eine Gruppe von Usern, die alleine Zugang auf bestimmte Seiten haben soll, wird im Namensrauam "ACCESS" wie unter eingerichtet.
Die Vorlage ist anschließend auf der Seite "Vorlagen" beispielhaft aufzuführen.
Die vorhandene Vorlage "Languages" wird ersetzt durch eine eigene Vorlage.


:Speichern der Liste auf der Seite Access:SIP
*'''Lizenzvorlagen''': Eine neue Kategorie "Kategorie:Lizenzenvorlagen" erstellen mit folgenden Vorlagen:
<nowiki><accesscontrol>Access:SIP</accesscontrol></nowiki># Schutz der eigenen Seite
**CC-by-nc-nd,CC-by-nc-nd/de
*Hschwarz                                                # einfache Liste der User
**CC-by-nc-sa,CC-by-nc-sa/de
*HJuling
**PD
*MSteiger
**PD Help Page, PD Help Page/de, PD Help Page/fr
*SLaue
** GFDL,GFDL/de (nur im Repositorium)
*SBrueggerhoff
*'''Vorlagen für SalzWiki und Saltwiki'''
*Testuser
**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


=== Approved_Revs ===


Mit dieser Erweiterung können Revisionen (Versionen einer SalzWiki-Seite) bestätigt oder abgelehnt werden.
Alle anderen Vorlagen wurden beim Einbinden der Hilfeseiten bzw. Extensions eingestellt.


'''Installation der Erweiterung "Approved_Revs"'''
=== XEB Extra Edit Buttons (Wiki-Code, JS) ===


* Die Extension wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki bzw. Saltwiki kopiert; im Repositorium wurde die Erweiterung noch nicht installiert.
'''Achtung: Funktioniert nur bei Browsern mit aktiviertem JavaScript und muss bei "MonoBook.php", "EditPage.php", "extraeditbutton.js" und "live.css" nach jedem mediawiki-Update auf Vorhandensein und Änderungen überprüft werden!'''


* Es wird eine Datenbank-Tabelle mit dem Präfix "sw_" und dem Namen "approved_revs" angelegt. Hierzu gibt es zwei Möglichkeiten:
Weitere Nachteile, die sich aus den Angaben der offiziellen Info-Seite ergeben:
**Das Skript "update.php" von "MediaWiki's/maintenance" benutzen oder
* nicht mehrsprachig
**Mittels "phpMyAdmin" in der Datenbank die Tabelle mit den beiden SQL-Befehlen, die in der Datei "ApprovedRevs.sql" der Erweiterung zu finden sind, erstellen.
* setzt Installation in Nutzungskonten bei Wikipedia oder auf eigenem Server voraus


* Konfiguration von den Approved_Revs in der LocalSettings.php
Siehe auch https://en.wikipedia.org/wiki/User:MarkS/Extra_edit_buttons und http://meta.wikimedia.org/wiki/Help_talk:Edit_toolbar; hier können noch weitere eigene Funktionen implementiert werden.


<pre>require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" );</pre>
Die Funktionen bzw. verfügbaren Schaltflächensymbole des Editors wurden durch nachfolgenden Code in der Datei "/includes/EditPage.php" erweitert. Die Dateien "MonoBook.php", "extraeditbuttons.js" und "live.css" waren für die Erweiterung des Editors unerheblich.


[[Datei:Approved _Revs-1.jpg|thumb|800px|center]]
Die im Code benannten Bilder "Button_[...].png" sind im Verzeichnis skins/common/images/" zu speichern.


'''Funktionsweise'''
Den Code im Verzeichnis "includes" in der Datei "EditPage.php" bei der Array-Variablen "$Toolarray" (ab Zeile 2110) am Ende einfügen (Z. 2210) - Komma nicht vergessen!.


Man kann Revisionen bestätigen - oder wieder ablehnen. Die bestätigte Version wird allen Usern angezeigt.
<pre> ,
*Aktivierung von Approved_Revs, z.B. alle Autoren können Seiten als geprüft markieren
array( 'image' => "Button_redirect.png",
<pre>$wgGroupPermissions['autor']['approverevisions'] = true;</pre>
'id'    => "Button_redirect",
 
'tip' => "Redirect",
*Für alle wird der Approved_Revs Link deaktiviert.
'open' => "#REDIRECT [[",
<pre>$wgGroupPermissions['*']['viewlinktolatest'] = false;</pre>
'close' => "]]",
 
'sample'=> "Insert text"
*Für alle Autoren werden diese wieder eingeblendet
),
<pre>$wgGroupPermissions['autor']['viewlinktolatest'] = true;
array( 'image' => "Button_strike.png",
$wgGroupPermissions['sysops']['viewlinktolatest'] = true;</pre>
'id'    => "Button_strike",
 
'tip' => "Strike",
Diejenigen, die das Recht "viewlinktolatest" haben, sehen einen Link unter dem Titel des Artikels, um zur aktuellsten Version zu
'open' => "<s>",
kommen.<br>
'close' => "</s>",
Diejenigen, die das Recht "approverevisions" haben, sehen die "Bestätigen" und "Ablehnen" Links in der History (Versionen).
'sample'=> "Strike-through text"
 
),
Nur Administratoren, d.h. Redakteure können eine Version bestätigen bzw. Ablehnen!
array( 'image' => "Button_enter.png",
 
'id'   => "Button_enter",
'''Ausblenden von der History''' (wurde nicht aktiviert)
'tip' => "Line break",
 
'open' => "<br />",
Wenn nur die Autoren, Redakteure und Admins die History sehen sollen ist Folgendes in der Datei "LocalSettings.php" zu ergänzen:
'close' => "",
<pre>
'sample'=> ""
## Bei der angegebenen User-Gruppe wird der Versionen-Button angezeigt. Der Admin sieht diesen immer!
),
$groupToShowHistory = 'autor';
array( 'image' => "Button_upper_letter.png",
## Code um die Histroy zu verstecken - sreher 20101105
'id'    => "Button_upper_letter",
$wgHooks['SkinTemplateContentActions'][] = 'removeHistory';
'tip' => "Superscript",
function removeHistory( $content_actions ) {
'open' => "<sup>",
global $wgUser, $groupToShowHistory;
'close' => "</sup>",
# print_r ($wgUser);
'sample'=> "Superscript text"
if ( ! (in_array( $groupToShowHistory, $wgUser->mGroups ) or in_array( 'sysop', $wgUser-
),
>mGroups) ) ) {
array( 'image' => "Button_lower_letter.png",
#print "drin!";
'id'    => "Button_lower_letter",
unset( $content_actions['history'] ); // only this to remove an action
'tip' => "Subscript",
}
'open' => "<sub>",
return true;
'close' => "</sub>",
}
'sample'=> "Subscript text"
</pre>
),
 
array( 'image' => "Button_small.png",
=== DynamicPagesList  ===
'id'    => "Button_small",
 
'tip' => "Small",
*Die Extension http://www.mediawiki.org/wiki/Extension:DynamicPageList_%28third-party%29  wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki kopiert.
'open' => "<small>",
* Einfügen in LocalSettings:
'close' => "</small>",
 
'sample'=> "Small Text"
<pre>include("$IP/extensions/DynamicPageList/DynamicPageList2.php");</pre>  
),
 
array( 'image' => "Button_hide_comment.png",
Zur Funktionsweise und den umfangreichen Einsatzmöglichkeiten siehe auch http://semeb.com/dpldemo/index.php?title=Main_Page.
'id'    => "Button_hide_comment",
 
'tip' => "Insert hidden Comment",
=== Bibliography  ===
'open' => "<!-- ",
 
'close' => " -->",
Die Extension Bibliography wird durch die Erweiterung BibManager ersetzt. Siehe hierzu unter Repository  - Erweiterungen -  BibManager
'sample'=> "Comment"
 
),
<!--
array( 'image' => "Button_Bibliogryphy.png",
==== Basisinformationen ====
'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"
)
</pre>
 
Je nach Sprachvariante sind die Texte hinter "tip" und "sample" zu übersetzen.


Die Extension "Bibliography" ersetzt die Erweiterung "BibWiki" (http://www.mediawiki.org/wiki/Extension:Bibwiki), da "BibWiki" Probleme bereitete, und wird zum Erstellen von Literaturhinweisen und der Bibliographie eingesetzt.  
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 "includes" zu speichern.
"Bibliography" wurde unter http://www.mediawiki.org/wiki/Extension:Bibliography heruntergeladen und in den Ordner "Extensions" kopiert.
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.
Achtung: Diese Erweiterung wird inzwischen nicht mehr als Download angeboten und auch nicht mehr weiter entwickelt.
 
=== Einrichten von Namensräumen<br>  ===


*Erweiterung "Bibliography" aus einem bestehenden (Test-)Wiki in das Verzeichnis "Extensions" kopieren.
Es werden folgende Namensräume eingerichtet:
*In "LocalSettings.php" einfügen:
# "ADM" bzw. "Access": "ADM" bei Salzwiki und Saltwiki, "Access" bei Repository) für Dokumente der Administratoren, den nur diese bearbeiten können,
<pre>require_once("$IP/extensions/bibliography/bibliography.php");</pre>
# "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


==== Anpassungen in der Datei "bibtex_fields.php" ====
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


Das das bibtex-Feld "Abstracts" die Laufzeit der Extension deutlich erhöht, wurde dieses Feld ausgeklammert, zumal es nicht benötigt wird.
Salzwiki
<br/>
<pre>
Die Publikationstypen und auch die Bibtex-Variablen, die vorgeschlagen werden, wenn keine Literatur zu einer angegebenen Literaturstelle in der Bibliography vorhanden ist, wurden wie folgt freigegeben:
# Einrichten der Namensräume Adm, Bearbeitung und Literature
<pre>$bibtex_fields["book"][]="author"; //mandatory
define("NS_ADM", 100);
$bibtex_fields["book"][]="editor";
define("NS_ADM_TALK", 101);
$bibtex_fields["book"][]="title"; //mandatory
#define("NS_Bearbeitung", 120);
$bibtex_fields["book"][]="titleaddon";
#define("NS_Bearbeitung_TALK", 121);
$bibtex_fields["book"][]="year"; //mandatory
define("NS_Literature", 110);
$bibtex_fields["book"][]="url";  
define("NS_Literature_TALK", 111);
$bibtex_fields["book"][]="doi";
# Create namespaces
$bibtex_fields["book"][]="isbn";
$wgExtraNamespaces = array(
$bibtex_fields["book"][]="editor";
NS_ADM => 'Adm',
$bibtex_fields["book"][]="publisher";
NS_ADM_TALK => 'Adm_talk',
$bibtex_fields["book"][]="volume";
#NS_Bearbeitung => 'Bearbeitung',
$bibtex_fields["book"][]="series";
#NS_Bearbeitung_TALK => 'Bearbeitung_talk',
$bibtex_fields["book"][]="address";
NS_Literature => 'Literature',
$bibtex_fields["book"][]="edition";
NS_Literature_TALK => 'Literature _talk'
$bibtex_fields["book"][]="keywords";
);
$bibtex_fields["book"][]="pages";
$wgNamespacesWithSubpages[NS_HELP] = true;           #subpages enabled for the Helpnamespace
$bibtex_fields["book"][]="fulltext";  
$wgNamespaceProtection[NS_ADM] = array( 'editadm' ); #permission "editadmin" required to edit the Adm namespace
$bibtex_fields["book"][]="bibdate";  
$wgNamespacesWithSubpages[NS_ADM] = true;           #subpages enabled for the ADM namespace
//
$wgGroupPermissions['Administrator']['editadm'] = true;
$bibtex_fields["article"][]="author";
</pre>
$bibtex_fields["article"][]="title";
 
$bibtex_fields["article"][]="titleaddon";
Saltwiki
$bibtex_fields["article"][]="journal";
<pre>
$bibtex_fields["article"][]="year";
# Einrichten der Namensräume Adm, Bearbeitung und Literature
$bibtex_fields["article"][]="volume";
define("NS_ADM", 100);
$bibtex_fields["article"][]="number";
define("NS_ADM_TALK", 101);
$bibtex_fields["article"][]="pages";
define("NS_Bearbeitung", 120);
$bibtex_fields["article"][]="keywords";
define("NS_Bearbeitung_TALK", 121);
$bibtex_fields["article"][]="url";
define("NS_Literature", 110);
$bibtex_fields["article"][]="doi";
define("NS_Literature_TALK", 111);
$bibtex_fields["article"][]="fulltext";
# Create namespaces
$bibtex_fields["article"][]="bibdate";  
$wgExtraNamespaces = array(
//
NS_ADM => 'Adm',
$bibtex_fields["inproceedings"][]="author";
NS_ADM_TALK => 'Adm_talk',
$bibtex_fields["inproceedings"][]="title";
NS_Bearbeitung => 'Bearbeitung',
$bibtex_fields["inproceedings"][]="titleaddon";
NS_Bearbeitung_TALK => 'Bearbeitung_talk',
$bibtex_fields["inproceedings"][]="booktitle";
NS_Literature => 'Literature',
$bibtex_fields["inproceedings"][]="year";
NS_Literature_TALK => 'Literature _talk'
$bibtex_fields["inproceedings"][]="crossref";
);
$bibtex_fields["inproceedings"][]="pages";
 
$bibtex_fields["inproceedings"][]="url";
$wgNamespacesWithSubpages[NS_HELP] = true;           #subpages enabled for the Helpnamespace
$bibtex_fields["inproceedings"][]="doi";
$wgNamespaceProtection[NS_ADM] = array( 'editadm' ); #permission "editadmin" required to edit the Adm namespace
$bibtex_fields["inproceedings"][]="keywords";
$wgNamespacesWithSubpages[NS_ADM] = true;           #subpages enabled for the ADM namespace
$bibtex_fields["inproceedings"][]="fulltext";
$wgGroupPermissions['Sysadmin']['editadm'] = true;
$bibtex_fields["inproceedings"][]="bibdate";
</pre>
//
 
$bibtex_fields["mastersthesis"][]="author";
Repository
$bibtex_fields["mastersthesis"][]="title";
<pre>
$bibtex_fields["mastersthesis"][]="titleaddon";
# Einrichten der Namensräume Adm, Bearbeitung und Literature
$bibtex_fields["mastersthesis"][]="school";
define("NS_Access", 100);
$bibtex_fields["mastersthesis"][]="year";
define("NS_Access_TALK", 101);
$bibtex_fields["mastersthesis"][]="address";
#define("NS_Bearbeitung", 120);
$bibtex_fields["mastersthesis"][]="keywords";
#define("NS_Bearbeitung_TALK", 121);
$bibtex_fields["mastersthesis"][]="url";
define("NS_Literature", 110);
$bibtex_fields["mastersthesis"][]="doi";
define("NS_Literature_TALK", 111);
$bibtex_fields["mastersthesis"][]="pages";
# Create namespaces
$bibtex_fields["mastersthesis"][]="fulltext";
$wgExtraNamespaces = array(
$bibtex_fields["mastersthesis"][]="bibdate";
NS_Access => 'Access',
//
NS_Access_TALK => 'Access_talk',
$bibtex_fields["misc"][]="author";
#NS_Bearbeitung => 'Bearbeitung',
$bibtex_fields["misc"][]="title";
#NS_Bearbeitung_TALK => 'Bearbeitung_talk',
$bibtex_fields["misc"][]="titleaddon";
NS_Literature => 'Literature',
$bibtex_fields["misc"][]="howpublished";
NS_Literature_TALK => 'Literature _talk'
$bibtex_fields["misc"][]="year";
);
$bibtex_fields["misc"][]="keywords";
 
$bibtex_fields["misc"][]="url";
##Anlegen von Namensräumen für Projekte
$bibtex_fields["misc"][]="doi";
define('NS_SalzeImPorenraum', 1010);
$bibtex_fields["misc"][]="pages";
define('NS_SalzeImPorenraum_TALK', 1011);
$bibtex_fields["misc"][]="fulltext";
$wgExtraNamespaces[NS_SalzeImPorenraum] = 'SIPP';
$bibtex_fields["misc"][]="bibdate";
$wgExtraNamespaces[NS_SalzeImPorenraum_TALK] = 'SIPP_talk';
//
#define('NS_RBK-Luebeck', 1020); //Achtung: Bindestrich darf nicht sein und ist auch nicht bei $wgExtraNamespaces enthalten
$bibtex_fields["phdthesis"][]="author";
#define('NS_RBK-Luebeck_TALK', 1021); //Achtung: Bindestrich darf nicht sein und ist auch nicht bei $wgExtraNamespaces enthalten
$bibtex_fields["phdthesis"][]="title";
define('NS_RBKLuebeck', 1021);
$bibtex_fields["phdthesis"][]="titleaddon";
define('NS_RBKLuebeck_TALK', 1021);
$bibtex_fields["phdthesis"][]="school";
$wgExtraNamespaces[NS_RBKLuebeck] = 'Rbkl';
$bibtex_fields["phdthesis"][]="year";
$wgExtraNamespaces[NS_RBKLuebeck_TALK] = 'Rbkl_talk';
$bibtex_fields["phdthesis"][]="address";
 
$bibtex_fields["phdthesis"][]="keywords";
#$wgNamespacesWithSubpages[NS_HELP] = true;           #subpages enabled for the Helpnamespace
$bibtex_fields["phdthesis"][]="url";
#$wgNamespaceProtection[NS_ADM] = array( 'editadm' ); #permission "editadmin" required to edit the Adm namespace
$bibtex_fields["phdthesis"][]="doi";
#$wgNamespacesWithSubpages[NS_ADM] = true;           #subpages enabled for the ADM namespace
$bibtex_fields["phdthesis"][]="pages";
#$wgGroupPermissions['Sysadmin']['editadm'] = true;
$bibtex_fields["phdthesis"][]="series";
</pre>
$bibtex_fields["phdthesis"][]="Volume";
 
$bibtex_fields["phdthesis"][]="fulltext";
== Extensions  ==
$bibtex_fields["phdthesis"][]="bibdate";
 
//
Welche Erweiterungen in welcher Distribution enthalten sind, erfährt man auf der Seite https://www.mediawiki.org/wiki/Comparison_of_extensions_in_distributions
$bibtex_fields["proceedings"][]="title";
 
$bibtex_fields["proceedings"][]="titleaddon";
=== JavaScript ===
$bibtex_fields["proceedings"][]="year";
 
$bibtex_fields["proceedings"][]="conference";
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.
$bibtex_fields["proceedings"][]="editor";
 
$bibtex_fields["proceedings"][]="publisher";
Diese Erweiterung dient 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_.28Wiki-Code.2C_JS.29|Sidebar anpassen]].
$bibtex_fields["proceedings"][]="organization";
   
$bibtex_fields["proceedings"][]="address";
'''Installation von "JavaScript.php"'''
$bibtex_fields["proceedings"][]="isbn";
 
$bibtex_fields["proceedings"][]="keywords";
* Quelltext der Erweiterung "JavaScript" unter "http://www.mediawiki.org/wiki/Extension:Javascript -> Download" kopieren
$bibtex_fields["proceedings"][]="url";
* Code am Ende mit "?>" ergänzen und speichern unter "extensions/JavaScript/JavaScript.php"
$bibtex_fields["proceedings"][]="doi";
* In der Datei "LocalSettings.php" einfügen:
$bibtex_fields["proceedings"][]="pages";
<pre>include("$IP/extensions/JavaScript/JavaScript.php");</pre>
$bibtex_fields["proceedings"][]="fulltext";
 
$bibtex_fields["proceedings"][]="bibdate";
'''Code-Anpassungen in der Datei "JavaScript.php"'''
//
 
$bibtex_fields["incollection"][]="author";
Die Erweiterung in der Version 2.1.3 für "saltwiki" hat zusätzlichen Code für CSS (StyleSheets).
$bibtex_fields["incollection"][]="title";
Die Erweiterung in der Version 2.1.1 funktionierte in "salzwiki" leider nicht out of the box. Deshalb wurden von S. Reher (25.07.2010) Änderungen vorgenommen. In der Datei "JavaScript.php" werden die Zeilen 33 bis 34 auskommentiert:
$bibtex_fields["incollection"][]="titleaddon";
<pre>
$bibtex_fields["incollection"][]="booktitle";
#$file = preg_replace( "|^.*/extensions/|", "$wgScriptPath/extensions/", $file );
$bibtex_fields["incollection"][]="year";
#$out->addScript( "&lt;script src='$file' type='$wgJsMimeType'&gt;&lt;/script&gt;" );
$bibtex_fields["incollection"][]="crossref";
</pre>
$bibtex_fields["incollection"][]="pages";
Stattdessen werden die folgenden Zeilen hinzugefügt, um auf dem Window-System die Pfade korrekt anzupassen:
$bibtex_fields["incollection"][]="url";
<pre>
$bibtex_fields["incollection"][]="doi";
  $slashPos = strpos('/',$wgScriptPath);
$bibtex_fields["incollection"][]="keywords";
  if ($slashPos==0) $wgScriptPath_tmp = substr_replace($wgScriptPath ,"",0, 1);
$bibtex_fields["incollection"][]="fulltext";
  $file = str_replace('\\','/', $file);
$bibtex_fields["incollection"][]="bibdate";
  $pos = strpos($file, $wgScriptPath_tmp);
  $length = strlen($file)-$pos;
  $file = substr($file, $pos, $length);
  $out->addScript( "&lt;script src='/$file' type='$wgJsMimeType'&gt;&lt;/script&gt;" );
</pre>
Das Javascript lädt alle Dateien aus dem Verzeichnis, in diesem Falle die Datei "customizeSidebar.js".
 
'''Code-Anpassungen in der Datei "customizeSidebar.js"'''
 
Die Funktion "CustomizeModificationsOfSidebar()" entfernt mittels der nachfolgenden Zeilen Einträge aus dem Werkzeug-Kasten.
 
Deutsche Version:
<pre>
  ModifySidebar("remove", "toolbox", "Hochladen", wgServer+"/repository/index.php/Spezial:Hochladen");
  ModifySidebar("remove", "toolbox", "Änderungen an verlinkten Seiten", wgServer+wgScriptPath+"/index.php/Spezial:%C3%84nderungen_an_verlinkten_Seiten");
  ModifySidebar("remove", "toolbox", "Links auf diese Seite", wgServer+wgScriptPath+"/index.php?/Special:WhatLinksHere/Main_Page");
  ModifySidebar("remove", "toolbox", "Permanentlink", wgServer+wgScriptPath+"/index.php?title=Salztransportmodellierung&oldid=1658");
  ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Spezial:Spezialseiten");
</pre>
 
Englische Version:
<pre>
  ModifySidebar("remove", "toolbox", "Hochladen", wgServer+"/repository/index.php/Special:Upload");
  ModifySidebar("remove", "toolbox", "Änderungen an verlinkten Seiten", wgServer+wgScriptPath+"/index.php/Special:RecentChangesLinked");
  ModifySidebar("remove", "toolbox", "What links here", wgServer+wgScriptPath+"/index.php?/Special:WhatLinksHere/Main_Page");
  ModifySidebar("remove", "toolbox", "Permanentlink", wgServer+wgScriptPath+"/index.php?title=Salztransportmodellierung&oldid=1658");
  ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Special:SpecialPages");
</pre>
</pre>


==== Anpassungen in der Datei "bibliography.php" ====
Wann dies aktiv wird, wird über die folgenden Zeilen geregelt:
 
<pre>
Damit eine neue Literaturstelle mit einer Überschrift 2. Grades dargestellt wird, wurde Zeile 16 angepasst:
/*if the user is not autor or admin, there should be displayed only necessary links*/
<pre>$temp_textbox1= "==$entry_name==\n<bibentry>\n@".$entry_type.'{'.$entry_id.",\n";</pre>
if (isArray(wgUserGroups)) {
  if (wgUserGroups.Contains('autor') || wgUserGroups.Contains('Administrators') || wgUserGroups.Contains('forschung')) {
    /*Nothing*/
  }
  else {
    /*Administrators,autor,sysop,*,user,autoconfirmed*/
    /*alert(wgUserGroups);*/
    addOnloadHook(CustomizeModificationsOfSidebar);
  }
}
/*if the user is guest, there should be displayed only necessary links*/
if (wgUserName == null) {
  addOnloadHook(CustomizeModificationsOfSidebar);
}
</pre>
 
=== AccessControl  ===
 
Für  MW 1.23 wird AccessControl v2.4 und für MW 1.16 wurde AccessControl v1.1 verwendet.


Zur Darstellung der Literatureinträge erfolgten weitere Anpassungen der Ausgaben:
==== Verwendungszweck ====
<br/>
 
Zeilen 56ff:
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.
<pre>$temp_return.="<a href='$wgScriptPath/?title=literature:Bibliography&action=edit&section=0&bibliography=new&entry_id=$entry_id&entry_name=$entry_name&entry_type=".rawurlencode($val)."'>$val</a>, ";
</pre>


Zeilen 194ff:
Der Zugang auf eine Seite wird durch Eingabe einer Nutzergruppe (Beispiel: "parole") erlaubt, die vorher z.B. in "LocalSettings.php" definiert wird:
<pre>
<pre>$wgGroupPermissions['parole']['read'] = true;</pre>
while(list($key,$val)=each($bibtex_entry_fields))
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):
$$key=stripslashes($val); //variable variables now you have all the keys assigned as variable names, $author, $title etc...
<pre><accesscontrol>parole</accesscontrol></pre>
if(isset($author) && $author!="") $author="$author ";
 
if(isset($editor) && $editor!="") $author="$editor (eds.)";
==== AccessControl v2.5 für MW 1.23 ====
if(isset($year) && $year!="") $year="$year";
 
$return.="<a href='http://193.175.110.91/salzwiki/index.php/$bibtex_entry->key_identifier'>$author ($year): </a>";
* Die Extension wird heruntergeladen und nach dem Extrahieren in das Verzeichnis "extensions" kopiert.
##     if(isset($bibtex_entry->key_identifier) && $bibtex_entry->key_identifier!="") $return.= "$bibtex_entry->key_identifier";//Ausgabe ID
* Einfügen in Datei "LocalSettings.php":  
if(isset($title) && $title!="") $return.="$title";    // HSChwarz Ausgabeformet geändert 18.10.2009
<pre>require_once("$IP/extensions/AccessControl/AccessControl.php");</pre>
if(isset($booktitle) && $booktitle!="") $return.=". $booktitle";
 
if(isset($titleaddon) && $titleaddon!="") $return.=". $titleaddon";
PHP erzeugt eine Meldung "Notice: Undefined varibale: rights ... on line 225". Es fehlt bei $rights wie bei $allow die Abfrage "isset(...)".
if(isset($crossref) && $crossref!="") $return.=". In: <a href='http://193.175.110.91/salzwiki/index.php/Literature:Bibliography#$crossref'>$crossref</a>";
if(isset($school) && $school!="") $return.=", $school";
if(isset($howpublished) && $howpublished!="") $return.=" $howpublished";
if(isset($journal) && $journal!="") $return.=".<i> In: $journal</i>";
if(isset($publisher) && $publisher!="") $return.=", $publisher";
if(isset($address) && $address!="") $return.=", $address";
if(isset($volume) && $volume!="") $return.=", <b>$volume</b>";
if(isset($number ) && $number !="") $return.=" ($number)";
if(isset($series) && $series!="") $return.=" $series";
if(isset($edition) && $edition!="") $return.=", $edition";
if(isset($pages) && $pages!="") $return.=", pp. $pages";
if(isset($doi) && $doi!="") $return.=", DOI: <a href='http://dx.doi.org/$doi'>$doi</a>";
if(isset($url) && $url!="") $return.=", link: <a href='$url'>$url</a>";
if(isset($source) && $source!="") $return.=", link: <a href='$source'>$source</a>";
if(isset($fulltext) && $fulltext!="") $return.=", <a href='http://193.175.110.91/salzwiki/index.php $fulltext'>Volltext</a>";
</pre>


Zeile 245 mit if-Abfrage ergänzen, um php-Warnung für nicht existierenden Array-Schlüssel zu verhindern:
Die Datei "AccessControl.php" ist zur Verhinderung von php-Warnungen wie folgt zu bearbeiten:<br/>
<pre>if(array_key_exists('file', $args)){$file = $args["file"];} //ergänzt 2011-03-18 für Hornemann Institut
In Zeile 173 "if(is_array($allow)){" mit "isset($allow) &&" und in Zeile 225 "if(is_array($rights)){" mit "isset($rights) ergänzen:
<pre>
if(isset($allow) && is_array($allow)){
</pre>
</pre>


Zeilen 267ff:
==== AccessControl v1.1 für MW 1.16 ====
<pre>
switch($type){
case "intext": // Within a written article/paper
switch($entry["entry_type"]){
case "book":
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
if(isset($entry["publisher"]) && $entry["publisher"]!="") $entry_publisher=" <i>{$entry["publisher"]}.</i> ";
$return="{$entry["author"]}$entry_year. <br>{$entry["title"]}.$entry_publisher".$bibliography_url;
break;
case "article":
$return="{$entry["author"]} ({$entry["year"]}). <br>{$entry["title"]} {$entry["journal"]}.".$bibliography_url;
break;
case "misc":
$return="{$entry["author"]} ({$entry["year"]}). <br>{$entry["title"]}.".$bibliography_url;
break;
break;
default: //inproceedings, phdthesis, masterthesis, techreport, unpublished
$return="{$entry["author"]} ({$entry["year"]}). <br><i>{$entry["title"]}</i>.".$bibliography_url;
break;
}
return stripslashes($return);
break;
case "list": // As a list bei bibprint
$start="<span  class='bibprint'>";
$end="</span>\n";
if(!isset($entry["entry_name"]) || $entry["entry_name"]=="") //whenever an entry name is not available show at least the entry_id
$entry["entry_name"]=$entry_id;
$entry_name_url="<span  class='bibprintwide' ><a href='$wgScriptPath/index.php?title=literature:Bibliography#".str_replace(' ','_',$entry_id)."'>[".$entry["entry_name"]."]:</a></span>"; //  Literaturliste auf der Seite Hschwarz Namensraum ergänzt 18.10.2009


switch($entry["entry_type"]){
* Die Extension wird heruntergeladen und nach dem Extrahieren in das Verzeichnis "extensions" kopiert.
case "book":
* Einfügen in Datei "LocalSettings.php":  
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
<pre>require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");</pre>
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.)";
 
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
Die Datei "AccessControl.php" ist wie folgt zu bearbeiten:<br/>
if(isset($entry["address"]) && $entry["address"]!="") $entry_address=", ({$entry["address"]})";
In Zeile 68 das '''&''' bei "&$parser" entfernen, damit es nicht zu Problemen zwischen den Extensions "AccessControl" und "DymanicPageList" kommt:
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". ({$entry["titleaddon"]})";
<pre>
if(isset($entry["publisher"]) && $entry["publisher"]!="") $entry_publisher=". <i>{$entry["publisher"]}</i>";
function doControlUserAccess( $input, $argv, &$parser ) {
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
</pre>
In Zeile 193 "if(is_array($allow)){" zur Verhinderung einer php-Warnung mit "isset($allow) &&" ergänzen:
$return="$entry_name_url $start<a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_publisher$entry_address$entry_pages. $end";
<pre>
// $return="$entry_name_url $start $entry_author $entry_year: {$entry["title"]}$entry_titleaddon$entry_publisher$entry_pages. $end";
if(isset($allow) && is_array($allow)){
break;
</pre>
case "article":
 
if(isset($entry["volume"]) && $entry["volume"]!="") $entry_volume=", <b>{$entry["volume"]}</b>";
==== Einrichten einer Nutzungsgruppe ====
if(isset($entry["number"]) && $entry["number"]!="") $entry_number=" ({$entry["number"]})";
 
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
Eine Gruppe von Usern, die alleine Zugang auf bestimmte Seiten haben soll, wird im Namensrauam "ACCESS" wie unten eingerichtet.
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon="- {$entry["titleaddon"]}";
 
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
:Speichern der Liste auf der Seite Access:SIP
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
<nowiki><accesscontrol>Access:SIP</accesscontrol></nowiki># Schutz der eigenen Seite
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
*Hschwarz                                                # einfache Liste der User
if(isset($entry["journal"]) && $entry["journal"]!=""){$entry_journal="{$entry["journal"]} ";
*HJuling
}
*MSteiger
else { //if yournal is not set, then there is no point in setting volume, number, pages
*SLaue
$entry_volume="";
*SBrueggerhoff
$entry_pages="";
*Testuser
$entry_number="";
 
}
=== Approved_Revs ===
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>{$entry["author"]} ({$entry["year"]}) </a>: {$entry["title"]}$entry_titleaddon. In: <i>{$entry["journal"]}</i>$entry_volume$entry_number$entry_pages$entry_doi$entry_fulltext$entry_url.$end";
 
break;
Mit dieser Erweiterung können Revisionen (Versionen einer SalzWiki-Seite) bestätigt oder abgelehnt werden.
case "misc":
 
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
'''Installation der Erweiterung "Approved_Revs"'''
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.)";
 
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
* Die Extension wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki bzw. Saltwiki kopiert; im Repositorium wurde die Erweiterung noch nicht installiert.
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
 
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
* Es wird eine Datenbank-Tabelle mit dem Präfix "sw_" und dem Namen "approved_revs" angelegt. Hierzu gibt es zwei Möglichkeiten:
if(isset($entry["howpublished"]) && $entry["howpublished"]!="") $entry_howpublished=". ({$entry["howpublished"]})";
**Das Skript "update.php" von "MediaWiki's/maintenance" benutzen oder
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki//index.php/{$entry["fulltext"]}'> Volltext</a>";
**Mittels "phpMyAdmin" in der Datenbank die Tabelle mit den beiden SQL-Befehlen, die in der Datei "ApprovedRevs.sql" der Erweiterung zu finden sind, erstellen.
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_howpublished{$entry["address"]}$entry_pages$entry_fulltext.$end";
 
break;
* Konfiguration von den Approved_Revs in der LocalSettings.php
//masterthesis test
case "mastersthesis":
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
if(isset($entry["type"]) && $entry["type"]!="") $entry_type=", ({$entry["type"]})";
if(isset($entry["school"]) && $entry["school"]!="") $entry_school=", {$entry["school"]}";
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_school$entry_type$entry_pages$entry_doi$entry_fulltext$entry_url.$end";
break;
// ende Masterthesis Test
default: //inproceedings, phdthesis, masterthesis, techreport, unpublished, incollection
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.)";
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
if(isset($entry["school"]) && $entry["school"]!="") $entry_school=", {$entry["school"]}";
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
//if(isset($entry["crossref"]) && $entry["crossref"]!="") $entry_crossref=". In: {$entry["crossref"]}";
if(isset($entry["crossref"]) && $entry["crossref"]!="") $entry_crossref=". In:
<a href='http://193.175.110.91/salzwiki/index.php/Literature:Bibliography#{$entry["crossref"]}'>{$entry["crossref"]}</a>";
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_school{$entry["publisher"]}$entry_crossref$entry_pages$entry_doi$entry_fulltext$entry_url.$end";
</pre>


In der "return" - Anweisung zur Ausgabe der Zitate wurde die"$entry_id" durch die Variable $Seitenname, die in der Zeile vorher als
<pre>require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" );</pre>
<Pre>$Seitenname=str_replace(":", "_", $entry_id);//ersetzt den : durch einen "_"</pre>
definiert worden ist, in allen Wikis ersetzt.


Hierdurch wird in der Id der ":" durch einen "_" ersetzt, sodass der erzeugte Link nicht mehr zu einem Seitennamen in einem neuen Namensraum weist (wird durch den ":" angezeigt), der von den normalen "usern" nicht gelesen werden kann.
[[Datei:Approved _Revs-1.jpg|thumb|800px|center]]


Die Literaturliste im Repositorium wird bisher durchnummeriert durch Anpassung der Zeilen 294ff:
'''Funktionsweise'''
<pre>$entry_name_url="# <span  class='bibprintwide' ><a href='$wgScriptPath/index.php?title=literature:Bibliography#".str_replace(' ','_',$entry_id)."'>[".$entry["entry_name"]."]:</a></span>"; </pre>
Das "#" Zeichen führt zur Nummerierung.
-->


=== CharacterEscapes, LOParserFunctions, ControlStructureFunctions  ===
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
<pre>$wgGroupPermissions['autor']['approverevisions'] = true;</pre>


Notwendig für #if: und #switch-Anweisungen (z. B. beim Einsetzen des Seitentitels im Kopf von Vorlage:Infobox_Salz und bei den Hilfe-Seiten.
*Für alle wird der Approved_Revs Link deaktiviert.
"ControlStructureFunctions" soll laut "mediawiki.org" nur bis Version 1.12 erforderlich und danach im Wiki-Code integriert sein, was aber scheinbar nicht zutrifft.<br>
<pre>$wgGroupPermissions['*']['viewlinktolatest'] = false;</pre>
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:
<pre>
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.
</pre>


*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.
*Für alle Autoren werden diese wieder eingeblendet
**'''Extension CharacterEscapes'''
<pre>$wgGroupPermissions['autor']['viewlinktolatest'] = true;
***Im Verzeichnis "extensions" ein Unterverzeichnis "CharacterEscapes" und darin eine Datei "CharacterEscapes.php" anlegen.
$wgGroupPermissions['sysops']['viewlinktolatest'] = true;</pre>
***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.


*Erweiterungen in Datei "LocalSettings.php" eingefügen.
Diejenigen, die das Recht "viewlinktolatest" haben, sehen einen Link unter dem Titel des Artikels, um zur aktuellsten Version zu
<pre>##Extension CharacterEscapes fuer Helppages
kommen.<br>
require_once("extensions/CharacterEscapes/CharacterEscapes.php");
Diejenigen, die das Recht "approverevisions" haben, sehen die "Bestätigen" und "Ablehnen" Links in der History (Versionen).


##Extension LOParserFunctions  fuer Helppages
Nur Administratoren, d.h. Redakteure können eine Version bestätigen bzw. Ablehnen!
require_once( "extensions/LOParserFunctions/LOParserFunctions.php" );


##Extension  ControlStructureFunctions fuer Helppages
'''Ausblenden von der History''' (wurde nicht aktiviert)
# require_once( "extensions/ControlStructureFunctions/ControlStructureFunctions.php" );
</pre>
 
=== CategoryTree ===
 
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.


Wenn nur die Autoren, Redakteure und Admins die History sehen sollen ist Folgendes in der Datei "LocalSettings.php" zu ergänzen:
<pre>
<pre>
$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen
## Bei der angegebenen User-Gruppe wird der Versionen-Button angezeigt. Der Admin sieht diesen immer!
require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");  
$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;
}
</pre>
</pre>


=== Cite  ===
=== DynamicPageList ===


Dient zum Erstellen von Fußnoten in SalzWiki Artikeln.
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).


*Extension unter http://www.mediawiki.org/wiki/Cite herunterladen.
==== MediaWiki 1.23 ====
*Extrahieren der Dateien nach extensions/Cite
* 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.
*In den Localsettings eingefügen
* Einfügen in LocalSettings:
<pre>include("$IP/extensions/DynamicPageList3/DynamicPageList.php");</pre>


<pre>
==== MediaWiki 1.16 ====
require_once("$IP/extensions/Cite/Cite.php");
* Für MW 1.16 wird die Erweiterung "DynamicPageList (third-party)" mit dem Alias "DynamicPageList2" von http://www.mediawiki.org/wiki/Extension:DynamicPageList_%28third-party%29 heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki kopiert.
</pre>
* Einfügen in LocalSettings:
<pre>include("$IP/extensions/DynamicPageList/DynamicPageList2.php");</pre>  


Siehe näheres zum Einfügen von Fußnoten unter http://193.175.110.91/salzwiki/index.php/Autor#Fu.C3.9Fnoten.
Zur Funktionsweise und den umfangreichen Einsatzmöglichkeiten siehe auch http://semeb.com/dpldemo/index.php?title=Main_Page.


=== BibManager===


=== OGG ===
==== Installation ====


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.
Die Erweiterung wird zur Erstellung und Verwaltung der Literaturhinweise bzw. zum Einbinden der Zitate in Artikel benutzt.
'''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. '''
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.
*"PEAR" ist in der PHP-Installation des Servers enthalten.
Die Erweiterung "BibManager" wird in den Ordner "\extensions\BibManager\" kopiert.
*"FFmpeg" ist herunterzuladen von ??? und wird dann gespeichert unter "D:\ffmpeg-wiki\"


Installation der Erweiterung:
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:
* Extension unter http://www.mediawiki.org/wiki/Extension:OggHandler herunterladen.
* Extrahieren der Dateien nach extensions/OggHandler
* In der Datei "LocalSettings.php" einfügen:
<pre>
<pre>
require( "$IP/extensions/OggHandler/OggHandler.php" );
... htmlspecialchars( $wgScriptPath . '/extensions/BibManager/client/[BibManagerCommon.css|BibManagerEdit.js|BibManagerList.js]' );
$wgFFmpegLocation = 'd:\ffmpeg-wiki\bin\ffmpeg';
</pre>
</pre>


=== Terminology ===
In die Localsettings.php wird Folgendes eingefügt.


Die Extension Terminology dient zum Erstellen eines Glossars.
#Definition eines Namensraumes , in dem nachher alle Literaturseiten liegen
<br>Um Verwirrungen zu vermeiden wurde 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):
define("NS_CITATION", 800);
*Z. 31
define("NS_CITATION_TALK", 801);
<pre>
$wgExtraNamespaces[NS_CITATION] = 'Cit';
$wgExtensionCredits['parserhook'][] = array(
$wgExtraNamespaces[NS_CITATION_TALK] = 'Cit_talk';
  'name' => 'Glossar', //in Glossar umbenannt HJSChwarz 12.08.2010
$wgBibManagerCitationArticleNamespace = NS_CITATION;
</pre>
*Z. 53
<pre>
$rev = Revision::newFromTitle(Title::makeTitle(null, 'Glossar')); //in Glossar umbenannt HJSChwarz 12.08.2010
</pre>


* Extension unter http://www.mediawiki.org/wiki/Extension:Terminology herunterladen.
##Freischalten der Erweiterungen
* Datei in das Verzeichnis "extensions" kopieren
require_once('extensions/BibManager/BibManager.php');
* In der Datei "LocalSettings.php" einfügen:
require_once('extensions/SaltWiki/SaltWiki.php' );
<pre>require_once( "$IP/extensions/terminology.php" );</pre>
#nur im Repositorium:
require_once('extensions/SaltWikiUpload/SaltWikiUpload.php' );


=== User Merge - Benutzername löschen ===
$wgBibManagerCitationArticleNamespace = NS_CITATION;


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.  
#### 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%. <em>%journal%</em>, <b>%volume%</b> (%number%), %pages%, %url%, %doi%.',
    'book' => '%editor% %author% (%year%): <em>%title%, %edition%, %publisher%, %address%, %pages%</em>, %url%., %doi%',
    'booklet' => '%title% %url%, %doi%.',
    'conference' => '%author% (%year%): %title%. %booktitle% %url%, %doi%.',
    'inbook' => '%author% (%year%): <em>%title%. In: %editor%: %edition%, %publisher%, %address%, %pages%</em> %url%, %doi%.',
    'incollection' => '%author% (%year%): %title%. In: %editor%: %booktitle%, <em>%publisher%</em>, %pages%, %url%, %doi%.',
    'inproceedings' => '%author% (%year%): %title%. In: %editor%: %booktitle%,<em>%publisher%</em>, %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%,<em> %publisher%</em>, %url%, %doi%.',
    'techreport' => '%author% (%year%): %title%. %institution% %url%, %doi%.',
    'unpublished' => '%author% (%year%): %title%. %note%, %url%, %doi%.'
);


* Extension unter http://www.mediawiki.org/wiki/Extension:User_Merge_and_Delete herunterladen.
==== Spezialseiten-Gruppe ====
* Datei in das Verzeichnis extensions/UserMerge kopieren
* In den Localsettings eingefügen


<pre>
Von den zu ändernden Dateien ist nach den Anpassungen jeweils eine Kopie mit dem Suffix "SW" im Dateinamen zu speichern, um nach Updates von MediaWiki oder Erweiterungen die Änderungen übernehmen zu können.
require_once( "$IP/extensions/UserMerge/UserMerge.php" );
# Assign the usermerge right to a usergroup, i.e. to the bureaucrats:
$wgGroupPermissions['bureaucrat']['usermerge'] = true;
</pre>


=== WhosOnline - Wer ist online ===
'''Systemnachrichten für Gruppe prüfen'''


Die Extension WhosOnline dient dazu sich auf einer Specialpage anzeigen zu lassen, wer gerade online ist.
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.


*Dateien unter http://www.mediawiki.org/wiki/Extension:WhosOnline herunterladen und extrahieren
'''Einschränkungen für Darstellung in der Spezialseiten-Gruppe überprüfen'''
*Verzeichnis "WhosOnline" unter "Extensions" speichern
 
*SQL-Befehl in der Extension-Datei "WhosOnline.sql" für neue Datenbank-Tabelle anpassen (siehe weiter unten)
Wenn die BibManager-Spezialseiten nicht angezeigt werden, folgendes prüfen:
*Mit "phpMyAdmin" und geändertem SQL-Befehl eine neue Datenbank-Tabelle erstellen (siehe weiter unten)
* In den Dateien "BibManager.php" oder "LocalSettings.php" die Gruppenberechtigung ändern:
*In der Datei "LocalSettings.php" einfügen:
** Bibliographien anlegen: $wgGroupPermissions['sysop']['bibmanagercreate'] => $wgGroupPermissions['*']['bibmanagercreate']
<pre>
** Bibliographien importieren: $wgGroupPermissions['sysop']['bibmanageredit'] => $wgGroupPermissions['*']['bibmanageredit']
require_once("$IP/extensions/WhosOnline/WhosOnline.php");
* Beim Klassen-Konstruktor "parent::__construct('...', '...')" den 2. Parameter (Kleinbuchstaben) für $restriction weggelassen in folgenden Dateien:
$wgWhosOnlineShowAnons = true;
** "\specialpages\BibManagerCreate_body.php" in Zeile 6
</pre>
** "\specialpages\BibManagerImport_body.php" in Zeile 6
 
==== Fehler korrigieren ====


'''Datei "WhosOnline.sql" anpassen'''
'''Falscher Text nach Löschvorgang'''


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:
Nachdem ein Eintrag gelöscht wurde, erscheint "Ihre Daten wurden erfolgreich gespeichert!".
<pre>CREATE TABLE `[datenbankname]`.`[praefix]online` (</pre>


'''Datenbank-Tabelle erstellen'''
In der Datei "BibManagerDelete_body.php" in Z.90 wird fälschlicherweise "bm_success_save-complete" verwendet. Da es kein Text-Element "bm_success_delete" gibt, muss es in der Datei "BibManager.i18n.php" 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.


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:
<pre>//BibManager.i18n.php
<pre>
//Z.149f
CREATE TABLE  `[datenbankname]`.`[praefix]online`  (
$messages['de'] = array (
`userid` int(5) NOT NULL default '0',
  'bm_success_save-complete' => '<div class="successbox"><strong>Your data was successfully saved!</strong></div><div class="visualClear" id="mw-pref-clear"></div>',
`username` varchar(255) NOT NULL default '',
  'bm_success_delete' => '<div class="successbox"><strong>Die Daten wurden erfolgreich gelöscht!</strong></div><div class="visualClear" id="mw-pref-clear"></div>',
`timestamp` char(14) NOT NULL default '',
...
PRIMARY KEY USING HASH (`userid`, `username`),
);
INDEX USING BTREE (`timestamp`)
//Z.295f
) TYPE=MEMORY;
$messages['de-formal'] = array (
  '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>Die Daten wurden erfolgreich gelöscht!</strong></div><div class="visualClear" id="mw-pref-clear"></div>',
...
);
//Z.442f
$messages['en'] = array (
  '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>',
...
);
</pre>
</pre>


=== ConfirmEdit ===
<pre>//BibManagerDelete_body.php Z.89f
if ( $result === true ) {
  $wgOut->addHtml( wfMsg( 'bm_success_delete') ); #wfMsg( 'bm_success_save-complete')
  ...
}
</pre>


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''').
'''Fehler im HTML-Code korrigieren'''


*Dateien unter http://www.mediawiki.org/wiki/Confirmedit herunterladen und unter extensions/ConfirmEdit speichern.
Bei der BibManager-Übesicht wird für jede Tabellenzeile ein <tr> statt eines </tr> erzeugt. Im Verzeichnis "BibManager\includes\" in der Datei "bibManagerPagerList.php" in Zeile 133 den fehlenden Schrägstrich einfügen:
*In der Datei "LocalSettings.php" einfügen:
<pre>
<pre>
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
  $tablerow[] = '</tr>'; // Schrägstrich für schließendes Tag eingefügt 2012-09-17 G. Werner
$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;
 
$wgCaptchaTriggers['edit']          = true;
$wgCaptchaTriggers['create']        = true;
$wgCaptchaTriggers['addurl']        = true;
$wgCaptchaTriggers['createaccount'] = true;
$wgCaptchaTriggers['badlogin']      = true;
</pre>
</pre>


=== ContactPage - Kontaktseite ===
'''Scrollbalken horizontal wegen Verweisen rechts für "edit" und "delete"


Für Mitteilungen allgemeiner Art wird eine Kontaktseite eingesetzt. Hierzu wird die Extension "ContactPage" benutzt ('''bisher nur bei Salzwiki und Saltwiki, nicht bei Repositorium''').
In der BibManager-Übersicht sind weit rechts Text-Hyperlinks für "edit" und "delete", weshalb ein horizontaler Scrollbalken vorhanden ist.
Das Absenden einer Seite wird zum Verhindern von Spam über ein Captcha abgesichert.
Es sind in 2 Dateien Anpassungen vorzunehmen:
*  "\extensions\BibManager\client\BibManagerCommon.css"
*  "\extensions\BibManager\includes\BibManagerPagerList.php"


*Dateien unter http://www.mediawiki.org/wiki/Extension:ContactPage herunterladen und die Dateien unter "Extensions/ContactPage" speichern.
Bei "BibManagerCommon.css" in Zeile 64 einen Kommentar einfügen und in Zeile 68 "text-indent: 9999px" ersetzen durch "height: 15px;"
*In der Übersetzungsdatei "ContactPage.i18n.php" bei der deutschen Du-Variante die "Sie"-Bezeichnungen durch "Du"-Bezeichnungen ersetzen und am Anfang der Sprachvariante im Kommentar @author mit Datum ergänzen.
*In der Datei "LocalSettings.php" einfügen:
<pre>
<pre>
require_once( "$IP/extensions/ContactPage/ContactPage.php" );
/* geändert wg. BibManager-Bug mit Scrollbalken und Linktext rechts 2013-01-21 G. Werner */
#bm_table a.icon {
$wgContactUser = 'Hschwarz';
  ...
$wgContactSender = $wgPasswordSender;
  height: 15 px; /*text-indent: 9999px;*/
$wgContactSenderName = 'Contact Form SalzWiki ' . $wgSitename;
  ...
$wgCaptchaTriggers['contactpage'] = true;
}
</pre>
</pre>


=== CharInsert ===
Bei "BibManagerPagerList.php" ab Zeile 101 Kommentare einfügen und "wfMsg"-Funktionen, die nicht in Datei "\includes\BibManagerFieldsList.php" definiert sind, ersetzen durch leeren String:
<pre>


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.
if ($wgUser->isAllowed('bibmanageredit')){
  // geändert wg. BibManager-Bug mit Scrollbalken und Linktext rechts 2013-01-21 G. Werner
  $editLink = $wgUser->getSkin()->link(
    SpecialPage::getTitleFor( 'BibManagerEdit' ),
    '', /*wfMsg( 'bm_list_table_edit' ),*/
    array (
      ...
    ),
  );
}


Die Extension wird bei http://www.mediawiki.org/wiki/Extension:CharInsert heruntergeladen und in ...Extensions/CharInsert extrahiert.
if ($wgUser->isAllowed('bibmanagerdelete')){
  // geändert wg. BibManager-Bug mit Scrollbalken und Linktext rechts 2013-01-21 G. Werner
  $deleteLink = $wgUser->getSkin()->link(
    SpecialPage::getTitleFor( 'BibManagerDelete' ),
    '', /*wfMsg( 'bm_list_table_delete' ),*/
    array (
      ...
    ),
  );
}
</pre>


In die localsettings ist einzufügen:
==== Fehlermeldung anpassen ====


require_once("$IP/extensions/CharInsert/CharInsert.php");
'''Fehlermeldung korrigieren'''
Bei der BibManager-Übesicht im Einleitungstext wird auf 2 Seiten für "neu anlegen" und "importieren" verlinkt, aber für nicht autorisierte User die Fehlermeldung "Diese Aktion kann auf diese Seite nicht angewendet werden" angezeigt. Damit angezeigt wird "Du hast|Sie haben nicht die erforderliche Berechtigung für diese Aktion", müssen im Verzeichnis "BibManager\specialpages\" die Dateien "bibManagerCreate_body.php" in Zeile 19 und "bibManagerImport_body.php" in Zeile 18 geändert werden:
<pre>
if (!$wgUser->isAllowed('bibmanager[create|edit]')){
  // geändert 2012-06-08 Gunnar Werner
  #$wgOut -> showErrorPage('error','badarticleerror');
  $wgOut -> showErrorPage('error','badaccess-group0');
  return true;
}
</pre>


In Mediawiki:Edittools werden die entsprechenden Zeichen bzw. Hilfen mit
==== BibManager-Berechtigungen ====
<pre><charinsert> .. </charinsert> </pre>


eingefügt.
'''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;


=== SpecialInterwiki ===
'''Entfernen der Löschen- und Editier-Buttons ohne Rechte-Vergabe'''


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.
Das Entfernen der Schaltflächen funktionierte bis April 2012 auf nachfolgend beschriebene Weise, solange es noch kein Rechte-Management für den BibManager gab.
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 Extension wird bei http://www.mediawiki.org/wiki/Extension:SpecialInterwiki heruntergeladen und in ...Extensions/Interwiki extrahiert.
In der Datei BibManager/includes/BibManagerPagerList.php werden in den Zeilen 57ff dazu die Variablen "$editLink" und "$deleteLink" entfernt.


In die "localsettings" eines jeden Wiki's ist dann einzufügen:  
Mit ein wenig PHP-Kenntnissen kann man auch die Anzeige des Links schaltbar machen:


  require_once("$IP/extensions/Interwiki/SpecialInterwiki.php");
  $tablerow = array ( );
$wgGroupPermissions['*']['interwiki'] = false;
  $tablerow[] = '<tr>';
$wgGroupPermissions['sysop']['interwiki'] = true; ## nur sysops können die InterWiki Tabelle ändern und sehen
  $tablerow[] = ' <td style="vertical-align:top;">' . $citationLink . '</td>';
$wgEnableScaryTranscluding = true;               ## Seiten von anderen Wikis können eingebunden werden
  $tablerow[] = '  <td>' . $format . '</td>';
  #$tablerow[] = '  <td style="text-align:center;">' . $editLink . $deleteLink . '</td>';
  if($_REQUEST['showDelete'] == 1){$tablerow[] = '  <td style="text-align:center;">' . $editLink . $deleteLink . '</td>';}
  else{$tablerow[] = '  <td style="text-align:center;">' . $editLink . '</td>';}
  $tablerow[] = ' <td style="text-align:center;">' . $exportLink . '</td>';
  $tablerow[] = '<tr>';
 
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 ====


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.


Diese Erweiterung wurde in SalzWiki, SaltWiki und im Repositorium installiert.
* 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.


== Eingabe von Formeln mittels Tex (Wiki-Code) ==
==== Anleitung anpassen ====
Im <title>-Element nach <page> ist jeweils "HalloWelt:" vor "BibManager:..." zu entfernen:
<pre>
<page>
<title>HalloWelt:BibManager:...</title>
</pre>
Ebenso ist der Teil "Project:" vor "BibManager:..." in den Admin-Anleitungen am Ende des <text>-Elementes zu entfernen:
<pre>
  [[Project:BibManager:...]]
  [[Project:BibManager:...]]</text>
  </revision>
</page>
</pre>


Damit z.B mathematische und auch chemische Formeln dargestellt werden können, wird in Mediawiki TEX benutzt.
==== Anleitung im Wiki installieren ====
'''Nach jedem mediawiki-Update muss die Datei "includes/Math.php" auf Windows-Kompatibilität überprüft werden!'''


Die '''[[#Tats.C3.A4chliche_Installation|tatsächliche Installation ]]''' eines Tex-Systems erfolgte in Anlehnung an die [[#Alternative_Installationsmethode_gem.C3.A4.C3.9F_Mediawiki|alternative Methode]] auf der Mediawiki Seite
* Die angepasste xml-Datei über "Spezialseiten->Import" ins Wiki laden.
http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows#Alternative_Solution.
* Anschließend sind die Bilder für das [[Project:BibManager:...]] im Repositorium mittels DOS-Konsole und PHP hochzuladen, um sie ins Wiki zu bringen:
<pre>
D:\
xampp\php\php.exe xampp\htdocs\saltwiki\maintenance\importImages.php xampp\htdocs\saltwiki\images_en
</pre>


=== Tatsächliche Installation ===
=== Bibliography  ===


Die Applikationen als Administrator für alle User im Verzeichnis "D:\texmf\" installieren:
Die Extension Bibliography wurde durch die Erweiterung BibManager ersetzt. Siehe hierzu unter "Erweiterungen -  BibManager".


#GhostScript im Unterverzeichnis "ghostscript/" für alle User installieren
<!--
##aus dem Unterverzeichnis "bin/" die Datei "gswin32c.exe" kopieren und die Kopie umbenennen zu "gs.exe"
==== Basisinformationen ====
##Im ServerManager bei "Systemeigenschaften ändern/Erweitert/Umgebungsvariablen" die Systemvariable "path" erweitern mit "D:\texmf\ghostscript\gs8.70\bin;"
 
#ImageMagick im Unterverzeichnis "imagick/" installieren
Die Extension "Bibliography" ersetzt die Erweiterung "BibWiki" (http://www.mediawiki.org/wiki/Extension:Bibwiki), da "BibWiki" Probleme bereitete, und wird zum Erstellen von Literaturhinweisen und der Bibliographie eingesetzt.  
##ImageMagick-6.5.9-0-Q16.dll (bei vorhandener Windows-Server-Konfigurationsberechtigung), sonst "static" (nur XAMPP-Zugriffsberechtigungen), inkl. "Desktop-Icon", "zum Systempfad hinzufügen" und "header für C/C++ Developement"
"Bibliography" wurde unter http://www.mediawiki.org/wiki/Extension:Bibliography heruntergeladen und in den Ordner "Extensions" kopiert.
##Testen mit der "Eingabeaufforderung/Konsole" durch Eingabe von
Achtung: Diese Erweiterung wird inzwischen nicht mehr als Download angeboten und auch nicht mehr weiter entwickelt.
##*convert logo: logo.miff [=&gt;Enter drücken]
##*imdisplay logo.miff [=&gt;Enter drücken]
##*= &gt; ein Bild soll angezeigt werden
##Für PHP die VC6-kompilierte Datei "php_imagick_dyn-Q16.dll" von [http://valokuva.org/outside-blog-content/imagick-windows-builds/080709/ valukova.org] herunterladen und in das PHP-Unterverzeichnis "ext/" kopieren und umbenennen zu "php_imagick_dyn_Q16.dll"
##In der Datei "php.ini" im Bereich Windows Extensions die Datei "php_imagick_dyn_Q16.dll" einbinden:<br/> extension=php_imagick_dyn_Q16.dll
#Im Verzeichnis "D:\texmf\" ein Unterverzeichnis "miktex" erstellen
#Für Sophos-Antivirus eine Ausnahme festlegen:
#:Konfigurieren-&gt;On-Access-Überprüfung-&gt;Ausnahmen -&gt; "D:\texmf\Miktex\" hinzufügen
#MikTex im Unterverzeichnis "miktex/" installieren
#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 [http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows/math.php 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".
#In der Datei "LocalSettings.php" ist jeweils einzufügen:  
<pre>
$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';
</pre>


=== Alternative Installationsmethode gemäß Mediawiki ===
*Erweiterung "Bibliography" aus einem bestehenden (Test-)Wiki in das Verzeichnis "Extensions" kopieren.
*In "LocalSettings.php" einfügen:
<pre>require_once("$IP/extensions/bibliography/bibliography.php");</pre>


#install the complete [http://www.miktex.org/Setup.aspx 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.'''
==== Anpassungen in der Datei "bibtex_fields.php" ====
#install the static (to be sure dependencies are embed) binary of [http://www.imagemagick.org/script/binary-releases.php#windows ImageMagick] 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 [http://www.imagemagick.org/script/binary-releases.php#windows GhostScript] bzw. [http://sourceforge.net/projects/ghostscript/files/AFPL%20Ghostscript/8.54/ GhostScript] bzw. [http://sourceforge.net/projects/ghostscript/ 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 -&gt; execute -&gt; cmd.exe)
#verify that the following commands are working:
#:latex
#:dvips
#:convert (not the microsoft convert)
#:gs
#[edit] Settings


*your wiki directory = $<br/>
Das das bibtex-Feld "Abstracts" die Laufzeit der Extension deutlich erhöht, wurde dieses Feld ausgeklammert, zumal es nicht benötigt wird.
replace the file $/includes/Math.php with code from http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows/math.php
<br/>
*uncomment or insert in $/LocalSettings.php:
Die Publikationstypen und auch die Bibtex-Variablen, die vorgeschlagen werden, wenn keine Literatur zu einer angegebenen Literaturstelle in der Bibliography vorhanden ist, wurden wie folgt freigegeben:
<pre>$wgUseTeX= true;</pre>
<pre>$bibtex_fields["book"][]="author"; //mandatory
 
$bibtex_fields["book"][]="editor";
*insert in $/LocalSettings.php:
$bibtex_fields["book"][]="title"; //mandatory
 
$bibtex_fields["book"][]="titleaddon";
- ImageMagick<br>
$bibtex_fields["book"][]="year"; //mandatory
<pre>
$bibtex_fields["book"][]="url";
$wgImageMagickConvertCommand    = 'D:\texmf\imagick\convert.exe';
$bibtex_fields["book"][]="doi";
$wgImageMagickIdentifyCommand  = 'D:\texmf\imagick\identify.exe';  
$bibtex_fields["book"][]="isbn";  
</pre>
$bibtex_fields["book"][]="editor";
- Tex<br>
$bibtex_fields["book"][]="publisher";
<pre>
$bibtex_fields["book"][]="volume";
$wgLaTexCommand                = 'D:\texmf\miktex\miktex\bin\latex.exe';
$bibtex_fields["book"][]="series";
$wgDvipsCommand                = 'D:\texmf\miktex\miktex\bin\dvips.exe';
$bibtex_fields["book"][]="address";
</pre>
$bibtex_fields["book"][]="edition";
 
$bibtex_fields["book"][]="keywords";
*reboot if needed so that paths variables are updated for your services too
$bibtex_fields["book"][]="pages";
 
$bibtex_fields["book"][]="fulltext";
<!--
$bibtex_fields["book"][]="bibdate";
==== TeX - Beseitigung von Problemen mit dem FCK Editor  ====
//
 
$bibtex_fields["article"][]="author";
<font color="#0000ff">HSchwarz 12.3.2010: </font>
$bibtex_fields["article"][]="title";
in der FCKeditorParser.body.php, das was unter "case 'math':" steht ersetzen durch:&nbsp;
$bibtex_fields["article"][]="titleaddon";
<pre>case 'math':
$bibtex_fields["article"][]="journal";
    if($wgUseTeX){ //normal render
$bibtex_fields["article"][]="year";
    $output = '&lt;img _fckfakelement="true" class="FCK__MWMath" _fck_mw_math="'.$content.'" src="'.$wgScriptPath.'/skins/common/images/button_math.png" /&gt;';
$bibtex_fields["article"][]="volume";
    }else //show fakeimage
$bibtex_fields["article"][]="number";
    $output = $wgContLang-&gt;armourMath( MathRenderer::renderMath( $content ) );
$bibtex_fields["article"][]="pages";
    break;
$bibtex_fields["article"][]="keywords";
</pre>
$bibtex_fields["article"][]="url";
<br>
$bibtex_fields["article"][]="doi";
 
$bibtex_fields["article"][]="fulltext";
Zitat Alexander Risos:
$bibtex_fields["article"][]="bibdate";
Den Parserfehler konnte ich auf den Grund gehen. Dieser Fehler ist in der alten Version nicht aufgetreten, da an stelle der "Parser"-Fehlermeldung ein Summensymbol auftreten sollte. Dies hängt mit der "TEX Box" zusammen. Leider wird auch in der 16er Version das Summensymbol nicht angezeigt.
//
 
$bibtex_fields["inproceedings"][]="author";
-->
$bibtex_fields["inproceedings"][]="title";
 
$bibtex_fields["inproceedings"][]="titleaddon";
== Hilfeseiten  ==
$bibtex_fields["inproceedings"][]="booktitle";
 
$bibtex_fields["inproceedings"][]="year";
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-&gt;Seitenwerkzeuge" bzw. "Special pages-&gt;Page tools" zur Verfügung. Aktuelle Dateien vom 16.3.2011 sind unter D:\Dokumente\Hilfe-Dateien auf dem SalzWiki-Server gespeichert.
$bibtex_fields["inproceedings"][]="crossref";
 
$bibtex_fields["inproceedings"][]="pages";
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.
$bibtex_fields["inproceedings"][]="url";
 
$bibtex_fields["inproceedings"][]="doi";
Die Abbildungen werden - in Abwandlung der Hinweise - direkt aus Mediawiki im Verzeichnis D:\Dokumente\Hilfe-Dateien gespeichert und von dort im Repositorium über "Spezialseiten-&gt;Medien" oder den Menüpunkt "Werkzeuge: Hochladen" hochgeladen. Auf die z. T. unterschiedlichen Lizenzen ist beim  Hochladen bei der Eingabe der Metadaten zu achten.
$bibtex_fields["inproceedings"][]="keywords";
 
$bibtex_fields["inproceedings"][]="fulltext";
*<b>Deutsche Version:</b> Soll zuerst auf die deutsche Version verwiesen werden, ist der Hyperlink  im Menü links (Sidebar) auf "help:contents/de" zu setzen.
$bibtex_fields["inproceedings"][]="bibdate";
*<b>Englische Version:</b> Soll zuerst auf die englische Version verwiesen werden, ist der Hyperlink im Menü links (Sidebar) auf "help:Contents" zu setzen.
//
 
$bibtex_fields["mastersthesis"][]="author";
Die Extension "ParserFunctions" wird benötigt.
$bibtex_fields["mastersthesis"][]="title";
 
$bibtex_fields["mastersthesis"][]="titleaddon";
= Repositorium  =
$bibtex_fields["mastersthesis"][]="school";
 
$bibtex_fields["mastersthesis"][]="year";
Zur Installation wurden fogende Einstellungen und Extensions eingestzt:
$bibtex_fields["mastersthesis"][]="address";
 
$bibtex_fields["mastersthesis"][]="keywords";
== Datenbank mittel XAMPP und phpmyAdmin anlegen  ==
$bibtex_fields["mastersthesis"][]="url";
 
$bibtex_fields["mastersthesis"][]="doi";
Es muss vor der Installation zuerst eine Datenbank angelegt werden.
$bibtex_fields["mastersthesis"][]="pages";
 
$bibtex_fields["mastersthesis"][]="fulltext";
database name: repository
$bibtex_fields["mastersthesis"][]="bibdate";
datbase table prefix: sr_
//
 
$bibtex_fields["misc"][]="author";
Benutzer: hschwarz
$bibtex_fields["misc"][]="title";
 
$bibtex_fields["misc"][]="titleaddon";
Host: localhost
$bibtex_fields["misc"][]="howpublished";
 
$bibtex_fields["misc"][]="year";
Global Rechte: all privileges
$bibtex_fields["misc"][]="keywords";
 
$bibtex_fields["misc"][]="url";
Grant&nbsp;: ja
$bibtex_fields["misc"][]="doi";
 
$bibtex_fields["misc"][]="pages";
== Mediawiki Installieren  ==
$bibtex_fields["misc"][]="fulltext";
 
$bibtex_fields["misc"][]="bibdate";
Nach Installationsanweisung mit folgenden Namen:&nbsp;: Repository 
//
 
$bibtex_fields["phdthesis"][]="author";
http://193.175.110.91/repository/index.php/Main_Page
$bibtex_fields["phdthesis"][]="title";
 
$bibtex_fields["phdthesis"][]="titleaddon";
 
$bibtex_fields["phdthesis"][]="school";
=== Lizenz für das Repositorium ===
$bibtex_fields["phdthesis"][]="year";
 
$bibtex_fields["phdthesis"][]="address";
Einfügen in LocalSettings.php
$bibtex_fields["phdthesis"][]="keywords";
 
$bibtex_fields["phdthesis"][]="url";
<pre>
$bibtex_fields["phdthesis"][]="doi";
$wgEnableCreativeCommonsRdf = true;
$bibtex_fields["phdthesis"][]="pages";
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$bibtex_fields["phdthesis"][]="series";
$wgRightsUrl = "http://creativecommons.org/licenses/by-nc-sa/3.0/";
$bibtex_fields["phdthesis"][]="Volume";
$wgRightsText = "Attribution-Noncommercial-Share Alike 3.0 Unported";
$bibtex_fields["phdthesis"][]="fulltext";
$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png";
$bibtex_fields["phdthesis"][]="bibdate";
# $wgRightsCode = "[license_code]"; # Not yet used
//
</pre>
$bibtex_fields["proceedings"][]="title";
 
$bibtex_fields["proceedings"][]="titleaddon";
=== Style/Skin  ===
$bibtex_fields["proceedings"][]="year";
 
$bibtex_fields["proceedings"][]="conference";
[[#Style.2FSkin|siehe oben bei "SalzWiki]]  
$bibtex_fields["proceedings"][]="editor";
 
$bibtex_fields["proceedings"][]="publisher";
=== Logo  ===
$bibtex_fields["proceedings"][]="organization";
 
$bibtex_fields["proceedings"][]="address";
Die Datei für das Logo ist noch hochzuladen und einzufügen in LocalSettings.php:
$bibtex_fields["proceedings"][]="isbn";
 
$bibtex_fields["proceedings"][]="keywords";
<pre>
$bibtex_fields["proceedings"][]="url";
## The relative URL path to the logo.  Make sure you change this from the default,
$bibtex_fields["proceedings"][]="doi";
## or else you'll overwrite your logo when you upgrade!
$bibtex_fields["proceedings"][]="pages";
$wgLogo = "$wgStylePath/common/images/Logo_Repo.png";
$bibtex_fields["proceedings"][]="fulltext";
$bibtex_fields["proceedings"][]="bibdate";
//
$bibtex_fields["incollection"][]="author";
$bibtex_fields["incollection"][]="title";
$bibtex_fields["incollection"][]="titleaddon";
$bibtex_fields["incollection"][]="booktitle";
$bibtex_fields["incollection"][]="year";
$bibtex_fields["incollection"][]="crossref";
$bibtex_fields["incollection"][]="pages";
$bibtex_fields["incollection"][]="url";
$bibtex_fields["incollection"][]="doi";
$bibtex_fields["incollection"][]="keywords";
$bibtex_fields["incollection"][]="fulltext";
$bibtex_fields["incollection"][]="bibdate";
</pre>
</pre>


=== Logos mit Verlinkung (und Footerlinks angepasst) ===
==== Anpassungen in der Datei "bibliography.php" ====


Änderungen in MonoBookSW.php: Zeile 213 - 239
Damit eine neue Literaturstelle mit einer Überschrift 2. Grades dargestellt wird, wurde Zeile 16 angepasst:
<pre> &lt;!-- end of banner1 --&gt;
<pre>$temp_textbox1= "==$entry_name==\n<bibentry>\n@".$entry_type.'{'.$entry_id.",\n";</pre>
&lt;/div&gt;&lt;!-- end of the left (by default at least) column --&gt;


&lt;div class="visualClear"&gt;&lt;/div&gt;
Zur Darstellung der Literatureinträge erfolgten weitere Anpassungen der Ausgaben:
&lt;div id="footer"&gt;
<br/>
Zeilen 56ff:
&lt;!-- Logos der HAWK und des Honrmanninstitues zentral in den footer. Rudimentaere Anpassung der Bilder!! Zeitsparend--&gt;
<pre>$temp_return.="<a href='$wgScriptPath/?title=literature:Bibliography&action=edit&section=0&bibliography=new&entry_id=$entry_id&entry_name=$entry_name&entry_type=".rawurlencode($val)."'>$val</a>, ";
</pre>


&lt;?php
Zeilen 194ff:
if($this-&gt;data['poweredbyico']) {&nbsp;?&gt;
<pre>
&lt;div id="f-poweredbyico"&gt;&lt;?php $this-&gt;html('poweredbyico')&nbsp;?&gt;&lt;/div&gt;
while(list($key,$val)=each($bibtex_entry_fields))
&lt;?php }
$$key=stripslashes($val); //variable variables now you have all the keys assigned as variable names, $author, $title etc...
if($this-&gt;data['copyrightico']) {&nbsp;?&gt;
if(isset($author) && $author!="") $author="$author ";
&lt;div id="f-poweredbyico"&gt;&lt;?php $this-&gt;html('copyrightico')&nbsp;?&gt;&lt;/div&gt;
if(isset($editor) && $editor!="") $author="$editor (eds.)";
&lt;?php }
if(isset($year) && $year!="") $year="$year";
if($this-&gt;data['copyrightico']) {&nbsp;?&gt;
$return.="<a href='http://193.175.110.91/salzwiki/index.php/$bibtex_entry->key_identifier'>$author ($year): </a>";
&lt;div id="f-copyrightico"&gt;
##     if(isset($bibtex_entry->key_identifier) && $bibtex_entry->key_identifier!="") $return.= "$bibtex_entry->key_identifier";//Ausgabe ID
&lt;a href="http://www.hornemann-institut.de/"&gt;
if(isset($title) && $title!="") $return.="$title";   // HSChwarz Ausgabeformet geändert 18.10.2009
&lt;img src="/[repository_1.16.1]/skins/common/images/HI.png" width=91 height=30&gt;
if(isset($booktitle) && $booktitle!="") $return.=". $booktitle";
&lt;/a&gt;
if(isset($titleaddon) && $titleaddon!="") $return.=". $titleaddon";
&nbsp; &nbsp;
if(isset($crossref) && $crossref!="") $return.=". In: <a href='http://193.175.110.91/salzwiki/index.php/Literature:Bibliography#$crossref'>$crossref</a>";
&lt;a href="http://www.hawk-hhg.de/"&gt;
if(isset($school) && $school!="") $return.=", $school";
&lt;img src="/[repository_1.16.1]/skins/common/images/HAWK.png" height=30 width=84&gt;
if(isset($howpublished) && $howpublished!="") $return.=" $howpublished";
&lt;/a&gt;
if(isset($journal) && $journal!="") $return.=".<i> In: $journal</i>";
&lt;/div&gt;
if(isset($publisher) && $publisher!="") $return.=", $publisher";
&lt;?php }
if(isset($address) && $address!="") $return.=", $address";
 
if(isset($volume) && $volume!="") $return.=", <b>$volume</b>";
// Generate additional footer links "'copyright',  'viewcount', 'numberofwatchingusers'," entfernt!
if(isset($number ) && $number !="") $return.=" ($number)";
$footerlinks = array(
if(isset($series) && $series!="") $return.=" $series";
'lastmod',  'credits',
if(isset($edition) && $edition!="") $return.=", $edition";
'privacy', 'about', 'disclaimer', 'tagline', 'Hallo',
if(isset($pages) && $pages!="") $return.=", pp. $pages";
);
if(isset($doi) && $doi!="") $return.=", DOI: <a href='http://dx.doi.org/$doi'>$doi</a>";
$validFooterLinks = array();
if(isset($url) && $url!="") $return.=", link: <a href='$url'>$url</a>";
foreach( $footerlinks as $aLink ) {
if(isset($source) && $source!="") $return.=", link: <a href='$source'>$source</a>";
if( isset( $this-&gt;data[$aLink] ) &amp;&amp; $this-&gt;data[$aLink] ) {
if(isset($fulltext) && $fulltext!="") $return.=", <a href='http://193.175.110.91/salzwiki/index.php $fulltext'>Volltext</a>";
$validFooterLinks[] = $aLink;
}
}
if ( count( $validFooterLinks ) &gt; 0 ) {
?&gt; &lt;ul id="f-list"&gt;
</pre>
</pre>


=== Favicon ===
Zeile 245 mit if-Abfrage ergänzen, um php-Warnung für nicht existierenden Array-Schlüssel zu verhindern:
 
<pre>if(array_key_exists('file', $args)){$file = $args["file"];} //ergänzt 2011-03-18 für Hornemann Institut
Damit ein Favicon dargestellt wird, ist die datei in das Verzeichnis "../repository" hochzuladen und folgender Eintrag in den localsettings.php vorzunehmen:
</pre>
 
<pre>$wgFavicon="/repository/SalzWiki.ico";</pre>
 
=== Lizenzvorlagen  ===
 
Vorlagen = Templates finden sich beispielhaft auf der Seite [[Vorlagen]] dargestellt. Die einzelnen Vorlagen sind im Namensraum Vorlagen zu finden.
 
"Kategorie:Lizenzenvorlagen" erstellt.
 
 
=== Lizenzen im Upload-Formular ===
 
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:


Zeilen 267ff:
<pre>
<pre>
*Free licenses:           <!-- Lizenztyp -->
switch($type){
**PD|PD: public domain    <!--einzelne Lizenz-->
case "intext": // Within a written article/paper
**GNU|GFDL: GNU Free Documentation License
switch($entry["entry_type"]){
 
case "book":
*Creative Commons
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
**CC-by-nc-nd|Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0)  
if(isset($entry["publisher"]) && $entry["publisher"]!="") $entry_publisher=" <i>{$entry["publisher"]}.</i> ";
**CC-by-nc-sa|Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)
$return="{$entry["author"]}$entry_year. <br>{$entry["title"]}.$entry_publisher".$bibliography_url;
</pre>
break;
case "article":
$return="{$entry["author"]} ({$entry["year"]}). <br>{$entry["title"]} {$entry["journal"]}.".$bibliography_url;
break;
case "misc":
$return="{$entry["author"]} ({$entry["year"]}). <br>{$entry["title"]}.".$bibliography_url;
break;
break;
default: //inproceedings, phdthesis, masterthesis, techreport, unpublished
$return="{$entry["author"]} ({$entry["year"]}). <br><i>{$entry["title"]}</i>.".$bibliography_url;
break;
}
return stripslashes($return);
break;
case "list": // As a list bei bibprint
$start="<span  class='bibprint'>";
$end="</span>\n";
if(!isset($entry["entry_name"]) || $entry["entry_name"]=="") //whenever an entry name is not available show at least the entry_id
$entry["entry_name"]=$entry_id;
$entry_name_url="<span  class='bibprintwide' ><a href='$wgScriptPath/index.php?title=literature:Bibliography#".str_replace(' ','_',$entry_id)."'>[".$entry["entry_name"]."]:</a></span>"; //  Literaturliste auf der Seite Hschwarz Namensraum ergänzt 18.10.2009


== Extensions  ==
switch($entry["entry_type"]){
 
case "book":
=== AccessControl  ===
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
 
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.)";
* Die Extension wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki kopiert.
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
* Einfügen in LocalSettings:
if(isset($entry["address"]) && $entry["address"]!="") $entry_address=", ({$entry["address"]})";
 
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". ({$entry["titleaddon"]})";
<pre> require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");</pre>
if(isset($entry["publisher"]) && $entry["publisher"]!="") $entry_publisher=". <i>{$entry["publisher"]}</i>";
 
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
Der Zugang auf eine Seite wird durch Eingabe einer Nutzergruppe erlaubt, die vorher z.B. in den local settiongs definiert werden kann.  <pre><accesscontrol>SalzWiki</accesscontrol> : Zugang nur für Mitglieder der Gruppe SalzWiki</pre>
 
$return="$entry_name_url $start<a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a>  {$entry["title"]}$entry_titleaddon$entry_publisher$entry_address$entry_pages. $end";
Siehe dazu auch wie z.B. http://www.mediawiki.org/wiki/Extension:AccessControl
// $return="$entry_name_url $start $entry_author $entry_year: {$entry["title"]}$entry_titleaddon$entry_publisher$entry_pages. $end";
 
break;
=== Approved_Revs ===
case "article":
 
if(isset($entry["volume"]) && $entry["volume"]!="") $entry_volume=", <b>{$entry["volume"]}</b>";
 
if(isset($entry["number"]) && $entry["number"]!="") $entry_number=" ({$entry["number"]})";
Diese Erweiterung wurde entsprechend den Anweisungen  unter SalzWiki [[#Approved_Revs]] installiert.  
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
 
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon="- {$entry["titleaddon"]}";
Als Prefix für die Datenbank ist dabei sr_ zu benützen.
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
 
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
In den Localsettings.php wurde eingefügt:
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
 
if(isset($entry["journal"]) && $entry["journal"]!=""){$entry_journal="{$entry["journal"]} ";
<pre>
}
##Erlaubt das Freischalten zum Lesen von einer älteren Version Schwarz 04.04.2011
else { //if yournal is not set, then there is no point in setting volume, number, pages
require_once("$IP/extensions/ApprovedRevs/ApprovedRevs.php");
$entry_volume="";
 
$entry_pages="";
$wgGroupPermissions['sysop']['approverevisions'] = true;
$entry_number="";
$wgGroupPermissions['*']['viewlinktolatest'] = false;
}
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>{$entry["author"]} ({$entry["year"]}) </a>: {$entry["title"]}$entry_titleaddon. In: <i>{$entry["journal"]}</i>$entry_volume$entry_number$entry_pages$entry_doi$entry_fulltext$entry_url.$end";
</pre>
break;
 
case "misc":
=== DynamicPagesList  ===
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
 
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.)";
*Die Extension http://www.mediawiki.org/wiki/Extension:DynamicPageList_%28third-party%29  wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki kopiert.
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
* Einfügen in LocalSettings:  
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
 
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
<pre>include("$IP/extensions/DynamicPageList/DynamicPageList2.php");</pre>  
if(isset($entry["howpublished"]) && $entry["howpublished"]!="") $entry_howpublished=". ({$entry["howpublished"]})";
 
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki//index.php/{$entry["fulltext"]}'> Volltext</a>";
Zur Funktionsweise und den umfangreichen Einsatzmöglichkeiten siehe auch http://semeb.com/dpldemo/index.php?title=Main_Page.
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_howpublished{$entry["address"]}$entry_pages$entry_fulltext.$end";
 
break;
=== BibManager===
//masterthesis test
case "mastersthesis":
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
if(isset($entry["type"]) && $entry["type"]!="") $entry_type=", ({$entry["type"]})";
if(isset($entry["school"]) && $entry["school"]!="") $entry_school=", {$entry["school"]}";
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_school$entry_type$entry_pages$entry_doi$entry_fulltext$entry_url.$end";
break;
// ende Masterthesis Test
default: //inproceedings, phdthesis, masterthesis, techreport, unpublished, incollection
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.)";
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
if(isset($entry["school"]) && $entry["school"]!="") $entry_school=", {$entry["school"]}";
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
//if(isset($entry["crossref"]) && $entry["crossref"]!="") $entry_crossref=". In: {$entry["crossref"]}";
if(isset($entry["crossref"]) && $entry["crossref"]!="") $entry_crossref=". In:
<a href='http://193.175.110.91/salzwiki/index.php/Literature:Bibliography#{$entry["crossref"]}'>{$entry["crossref"]}</a>";
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_school{$entry["publisher"]}$entry_crossref$entry_pages$entry_doi$entry_fulltext$entry_url.$end";
</pre>


Die Erweiterung wird zur Erstellung und Verwaltung der Literaturhinweise bzw. zum Einbinden der Zitate in Artikel benutzt.
In der "return" - Anweisung zur Ausgabe der Zitate wurde die"$entry_id" durch die Variable $Seitenname, die in der Zeile vorher als
<Pre>$Seitenname=str_replace(":", "_", $entry_id);//ersetzt den : durch einen "_"</pre>
definiert worden ist, in allen Wikis ersetzt.  


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.
Hierdurch wird in der Id der ":" durch einen "_" ersetzt, sodass der erzeugte Link nicht mehr zu einem Seitennamen in einem neuen Namensraum weist (wird durch den ":" angezeigt), der von den normalen "usern" nicht gelesen werden kann.
Die Erweiterungen werden in den Ordner "extensions" kopiert.


In die Localsettings.php wird dann folgendes eingefügt.
Die Literaturliste im Repositorium wird bisher durchnummeriert durch Anpassung der Zeilen 294ff:
<pre>$entry_name_url="# <span  class='bibprintwide' ><a href='$wgScriptPath/index.php?title=literature:Bibliography#".str_replace(' ','_',$entry_id)."'>[".$entry["entry_name"]."]:</a></span>"; </pre>
Das "#" Zeichen führt zur Nummerierung.
-->


#Definition eines Namensraumes , in dem nachher alle Literaturseiten liegen
=== CharacterEscapes, LOParserFunctions, ControlStructureFunctions ===
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
Notwendig für #if: und #switch-Anweisungen (z. B. beim Einsetzen des Seitentitels im Kopf von Vorlage:Infobox_Salz und bei den Hilfe-Seiten.
require_once('extensions/BibManager/BibManager.php');
"ControlStructureFunctions" soll laut "mediawiki.org" nur bis Version 1.12 erforderlich und danach im Wiki-Code integriert sein, was aber scheinbar nicht zutrifft.<br>
require_once('extensions/SaltWiki/SaltWiki.php' );
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:
<pre>
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.
</pre>


$wgBibManagerCitationArticleNamespace = NS_CITATION;
*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'''
#### RepoClass und ScholarLink auskommentiert 2012-05-11 wg. neuer Version inkl. GoogleScholar
***Im Verzeichnis "extensions" ein Unterverzeichnis "CharacterEscapes" und darin eine Datei "CharacterEscapes.php" anlegen.
## Option zur Weiterentwickung zur Benutzung einer zentralen Bibliographie
***In der Datei das Quelltext-Beispiel von http://www.mediawiki.org/wiki/Extension:Character_Escapes einfügen.
#$wgBibManagerRepoClass = 'BibManagerLocalMWDatabaseRepo';
**'''LOParserFunctions'''
## Verlinkung zu GoogleScholar wird konfiguriert
***Im Verzeichnis "extensions" ein Unterverzeichnis "LOParserFunctions" und darin eine Datei "LOParserFunctions.php" und eine Datei "LOParserFunctions.i18n.php" anlegen.
#$wgBibManagerScholarLink = 'http://scholar.google.com/scholar?q=%title%';
***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.


## Anpassung an die gewünschte Zitierweise
*Erweiterungen in Datei "LocalSettings.php" eingefügen.
$wgBibManagerCitationFormats = array (
<pre>##Extension CharacterEscapes fuer Helppages
    '-' => '%author%: %title%, %year% %url%, %doi%.',
require_once("extensions/CharacterEscapes/CharacterEscapes.php");
    'article' => '%author% (%year%): %title%. <em>%journal%</em>, <b>%volume%</b> (%number%), %pages%, %url%, %doi%.',
    'book' => '%editor% %author% (%year%): <em>%title%, %edition%, %publisher%, %address%, %pages%</em>, %url%., %doi%',
    'booklet' => '%title% %url%, %doi%.',
    'conference' => '%author% (%year%): %title%. %booktitle% %url%, %doi%.',
    'inbook' => '%author% (%year%): <em>%title%. In: %editor%: %edition%, %publisher%, %address%, %pages%</em> %url%, %doi%.',
    'incollection' => '%author% (%year%): %title%. In: %editor%: %booktitle%, <em>%publisher%</em>, %pages%, %url%, %doi%.',
    'inproceedings' => '%author% (%year%): %title%. In: %editor%: %booktitle%,<em>%publisher%</em>, %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%,<em> %publisher%</em>, %url%, %doi%.',
    'techreport' => '%author% (%year%): %title%. %institution% %url%, %doi%.',
    'unpublished' => '%author% (%year%): %title%. %note%, %url%, %doi%.'
);


'''Rechte-Vergabe für BibManager'''
##Extension LOParserFunctions  fuer Helppages
require_once( "extensions/LOParserFunctions/LOParserFunctions.php" );


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:
##Extension  ControlStructureFunctions fuer Helppages
# require_once( "extensions/ControlStructureFunctions/ControlStructureFunctions.php" );
</pre>


## Berechtigungen eingefügt 2012-05-11
=== CategoryTree ===
$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'''
Die Extension dient zur Darstellung der Kategorienbäzme, damit schnell den Artikeln und Dokumenten die richtigen Kategorien zugewiesen werden können.


Das Entfernen der Schaltflächen funktionierte bis April 2012 auf nachfolgend beschriebene Weise, solange es noch kein Rechte-Management für den BibManager gab.
* Extension unter http://www.mediawiki.org/wiki/Categorytree herunterladen und in den Extensionsordner kopieren.
* In den Localsettinge eingefügen.


In der Datei BibManager/includes/BibManagerPagerList.php werden in den Zeilen 57ff dazu die Variablen "$editLink" und "$deleteLink" entfernt.
<pre>
$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen
require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");
</pre>


Mit ein wenig PHP-Kenntnissen kann man auch die Anzeige des Links schaltbar machen:
=== Cite  ===


  $tablerow = array ( );
Dient zum Erstellen von Fußnoten in SalzWiki Artikeln.
  $tablerow[] = '<tr>';
  $tablerow[] = '  <td style="vertical-align:top;">' . $citationLink . '</td>';
  $tablerow[] = '  <td>' . $format . '</td>';
  #$tablerow[] = '  <td style="text-align:center;">' . $editLink . $deleteLink . '</td>';
  if($_REQUEST['showDelete'] == 1){$tablerow[] = '  <td style="text-align:center;">' . $editLink . $deleteLink . '</td>';}
  else{$tablerow[] = '  <td style="text-align:center;">' . $editLink . '</td>';}
  $tablerow[] = '  <td style="text-align:center;">' . $exportLink . '</td>';
  $tablerow[] = '<tr>';


So würde der Link nur angezeigt werden, wenn in der Url "&showDelete=1" vorkommt.
*Extension unter http://www.mediawiki.org/wiki/Cite herunterladen.
*Extrahieren der Dateien nach extensions/Cite
*In den Localsettings eingefügen


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:
<pre>
require_once("$IP/extensions/Cite/Cite.php");
</pre>


  $wgAutoloadClasses['BibManagerDelete'] = $dir . 'specialpages/BibManagerDelete_body.php';
Siehe näheres zum Einfügen von Fußnoten unter http://193.175.110.91/salzwiki/index.php/Autor#Fu.C3.9Fnoten.
  $wgSpecialPages['BibManagerDelete'] = 'BibManagerDelete';
  $wgSpecialPageGroups['BibManagerDelete'] = 'BibManager';


=== Bibliography  ===


Die Bibliography - Erweiterung wurde durch den BibManager ersetzt!!
=== CreativeCommonsRdf ===
<!--
Diese Extension ersetzt BibWiki (http://www.mediawiki.org/wiki/Extension:Bibwiki) und wird zum Erstellen von Literaturhinweisen und der Bibliographie eingesetzt.


*Extension unter http://www.mediawiki.org/wiki/Extension:Bibliography herunterladen und in den Extensionsordner kopieren.
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
*In den Localsettinge eingefügen.


<pre>require_once("$IP/extensions/bibliography/bibliography.php");</pre>
=== MwEmbedSupport ===


Das das bibtex Feld, "Abstracts" die Laufzeit der Extension deutlich erhört, wurde dieses Feld ausgeklammert, da es auch nicht benötigt wird.
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


Die Publikationstypen und auch die Bibtex-Variablen, die vorgeschlagen werden, wenn keine Literatur zu einer angegebenen Literaturstelle in der Bibliography vorhanden ist, wurde angepasst. Anpassungen in der Datei bibtex_fields.php.
=== OggHandler ===


Damit eine neue Literaturstelle mit einer Überschrift 2. Grades dargestellt wird, wurde die Datei bibliography.php in Zeile 16 angepasst:
Die Erweiterung wird ab Mediawiki 1.24 nicht mehr unterstützt; empfohlen wird die Erweiterung "TimedMediaHandler", die die Erweiterung "MwEmbedSupport" benötigt.


<pre> $temp_textbox1= "==$entry_name==\n<bibentry>\n@".$entry_type.'{'.$entry_id.",\n";</pre>
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\"


Zur Darstellung der Literatureinträge erfolgten weitere Anpassungen der Ausgaben ider bibliography.php:
Installation der Erweiterung:
 
* Extension unter http://www.mediawiki.org/wiki/Extension:OggHandler herunterladen.
Zeile 56ff: <pre>$temp_return.="<a href='$wgScriptPath/?title=literature:Bibliography&action=edit&section=0&bibliography=new&entry_id=$entry_id&entry_name=$entry_name&entry_type=".rawurlencode($val)."'>$val</a>, "; </pre>
* Extrahieren der Dateien nach extensions/OggHandler
 
* In der Datei "LocalSettings.php" einfügen:
Zeilen 194ff:
<pre>
<pre> while(list($key,$val)=each($bibtex_entry_fields))
require( "$IP/extensions/OggHandler/OggHandler.php" );
$$key=stripslashes($val); //variable variables now you have all the keys assigned as variable names, $author, $title etc...
$wgFFmpegLocation = 'd:\ffmpeg-wiki\bin\ffmpeg';
if(isset($author) && $author!="") $author="$author ";
</pre>
if(isset($editor) && $editor!="") $author="$editor (eds.)";
 
if(isset($year) && $year!="") $year="$year";
=== Inline SVG Extension ===
$return.="<a href='http://193.175.110.91/repository_1.16.1/index.php/$bibtex_entry->key_identifier'>$author ($year): </a>";
 
##     if(isset($bibtex_entry->key_identifier) && $bibtex_entry->key_identifier!="") $return.= "$bibtex_entry->key_identifier";//Ausgabe ID
Diese Erweiterung wird ab Mediawiki 1.23 nicht mehr verwendet, weil die üblichen Browser inzwischen SVG-Elemente darstellen können.
if(isset($title) && $title!="") $return.="$title";                                // HSChwarz Ausgabeformet geändert 18.10.2009
 
if(isset($booktitle) && $booktitle!="") $return.=". $booktitle";
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.
if(isset($titleaddon) && $titleaddon!="") $return.=". $titleaddon";
 
if(isset($crossref) && $crossref!="") $return.=". In: <a href='../Literature:Bibliography#$crossref'>$crossref</a>";
* Extension unter http://www.mediawiki.org/wiki/Extension:Inline_SVG_extension herunterladen.
if(isset($howpublished) && $howpublished!="") $return.=" $howpublished";
* Datei in das Verzeichnis "extensions" kopieren
if(isset($school) && $school!="") $return.=", $school";
* In der Datei "LocalSettings.php" einfügen:
if(isset($journal) && $journal!="") $return.=".<i> In: $journal</i>";
<pre>require_once("$IP/extensions/SVGtag.php");</pre>
if(isset($publisher) && $publisher!="") $return.=", $publisher";
if(isset($address) && $address!="") $return.=", $address";
if(isset($volume) && $volume!="") $return.=", <b>$volume</b>";
if(isset($number ) && $number !="") $return.=" ($number)";
if(isset($series) && $series!="") $return.=" $series";
if(isset($edition) && $edition!="") $return.=", $edition";
if(isset($pages) && $pages!="") $return.=", pp. $pages";
if(isset($doi) && $doi!="") $return.=", doi: <a href='http://dx.doi.org/$doi'>$doi</a>";
if(isset($url) && $url!="") $return.=", link: <a href='$url'>$url</a>";
if(isset($source) && $source!="") $return.=", link: <a href='$source'>$source</a>";
if(isset($fulltext) && $fulltext!="") $return.=", <a href='http://193.175.110.91/repository/index.php/$fulltext'>Volltext</a>";</pre>


Zeilen 267ff:
=== Terminology ===
<pre>switch($type){
 
case "intext": // Within a written article/paper
Diese Erweiterung wird seit 2010-07-29 nicht mehr weiterentwickelt. Sie gilt als ineffizient bei umfangreichen Glossars. Es wird die Erweiterung "Lingo" empfohlen.
switch($entry["entry_type"]){
case "book":
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
if(isset($entry["publisher"]) && $entry["publisher"]!="") $entry_publisher=" <i>{$entry["publisher"]}.</i> ";
$return="{$entry["author"]}$entry_year. <br>{$entry["title"]}.$entry_publisher".$bibliography_url;
break;
case "article":
$return="{$entry["author"]} ({$entry["year"]}). <br>{$entry["title"]} {$entry["journal"]}.".$bibliography_url;
break;
case "misc":
$return="{$entry["author"]} ({$entry["year"]}). <br>{$entry["title"]}.".$bibliography_url;
break;
break;
default: //inproceedings, phdthesis, masterthesis, techreport, unpublished
$return="{$entry["author"]} ({$entry["year"]}). <br><i>{$entry["title"]}</i>.".$bibliography_url;
break;
}
return stripslashes($return);
break;
case "list": // As a list bei bibprint
$start="<span  class='bibprint'>";
$end="</span>\n";
if(!isset($entry["entry_name"]) || $entry["entry_name"]=="") //whenever an entry name is not available show at least the entry_id
$entry["entry_name"]=$entry_id;
        $entry_name_url="<span  class='bibprintwide' ><a href='$wgScriptPath/index.php?title=literature:Bibliography#".str_replace(' ','_',$entry_id)."'>[".$entry["entry_name"]."]:</a></span>"; //  Literaturliste auf der Seite Hschwarz Namensraum ergänzt 18.10.2009


switch($entry["entry_type"]){
Die Extension Terminology dient zum Erstellen eines Glossars.
case "book":
<br>Um Verwirrungen zu vermeiden wurde 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):
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
*Z. 31
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.)";
<pre>
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
$wgExtensionCredits['parserhook'][] = array(
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". ({$entry["titleaddon"]})";
  'name' => 'Glossar', //in Glossar umbenannt HJSChwarz 12.08.2010
if(isset($entry["publisher"]) && $entry["publisher"]!="") $entry_publisher=". <i>{$entry["publisher"]}</i> ";
</pre>
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
*Z. 53
<pre>
$return="$entry_name_url $start<a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a>  {$entry["title"]}$entry_titleaddon$entry_publisher, {$entry["address"]}$entry_pages. $end";
$rev = Revision::newFromTitle(Title::makeTitle(null, 'Glossar')); //in Glossar umbenannt HJSChwarz 12.08.2010
// $return="$entry_name_url $start $entry_author $entry_year: {$entry["title"]}$entry_titleaddon$entry_publisher$entry_pages. $end";
</pre>
break;
 
case "article":
* Extension unter http://www.mediawiki.org/wiki/Extension:Terminology herunterladen.
if(isset($entry["volume"]) && $entry["volume"]!="") $entry_volume=", <b>{$entry["volume"]}</b>";
* Datei in das Verzeichnis "extensions" kopieren
if(isset($entry["number"]) && $entry["number"]!="") $entry_number=" ({$entry["number"]})";
* In der Datei "LocalSettings.php" einfügen:
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
<pre>require_once("$IP/extensions/terminology.php");</pre>
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon="- {$entry["titleaddon"]}";
 
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
Wird seit 2010 nicht mehr weiterentwickelt. Stattdessen wird die Erweiterung "Lingo" empfohlen: http://www.mediawiki.org/wiki/Extension:Lingo
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
 
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
=== TimedMediaHandler ===
if(isset($entry["journal"]) && $entry["journal"]!=""){$entry_journal="{$entry["journal"]} ";
 
}
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.
else { //if yournal is not set, then there is no point in setting volume, number, pages
 
$entry_volume="";
* Extensions unter https://www.mediawiki.org/wiki/Extension:MwEmbedSupport und https://www.mediawiki.org/wiki/Extension:TimedMediaHandler herunterladen.
$entry_pages="";
* Dateien in das Verzeichnis "extensions" kopieren
$entry_number="";
* In der Datei "LocalSettings.php" registrieren:
}
<pre>
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>{$entry["author"]} ({$entry["year"]}) </a>: {$entry["title"]}$entry_titleaddon. In: <i>{$entry["journal"]}</i>$entry_volume$entry_number$entry_pages$entry_doi$entry_fulltext$entry_url.$end";
require_once("$IP/extensions/MwEmbedSupport/MwEmbedSupport.php");
break;
require_once("$IP/extensions/TimedMediaHandler/TimedMediaHandler.php");
case "misc":
</pre>
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
 
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.)";
=== User Merge - Benutzername löschen ===
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
 
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
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.  
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
 
if(isset($entry["howpublished"]) && $entry["howpublished"]!="") $entry_howpublished=". ({$entry["howpublished"]})";
* Extension unter http://www.mediawiki.org/wiki/Extension:User_Merge_and_Delete herunterladen.
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'> Volltext</a>";
* Datei in das Verzeichnis extensions/UserMerge kopieren
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_howpublished{$entry["address"]}$entry_pages$entry_fulltext.$end";
* In den Localsettings eingefügen
break;
 
<pre>
//masterthesis test
require_once( "$IP/extensions/UserMerge/UserMerge.php" );
case "mastersthesis":
# Assign the usermerge right to a usergroup, i.e. to the bureaucrats:
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
$wgGroupPermissions['bureaucrat']['usermerge'] = true;
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
</pre>
if(isset($entry["type"]) && $entry["type"]!="") $entry_type=", ({$entry["type"]})";
 
if(isset($entry["school"]) && $entry["school"]!="") $entry_school=", {$entry["school"]}";
=== WhosOnline - Wer ist online ===
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
 
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
Die Extension WhosOnline dient dazu sich auf einer Specialpage anzeigen zu lassen, wer gerade online ist.
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
 
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
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
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
 
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_school$entry_type$entry_pages$entry_doi$entry_fulltext$entry_url.$end";
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.
break;
 
// ende Masterthesis Test
*Dateien unter http://www.mediawiki.org/wiki/Extension:WhosOnline herunterladen und extrahieren
default: //inproceedings, phdthesis, masterthesis, techreport, unpublished, incollection
*Verzeichnis "WhosOnline" unter "Extensions" speichern
if(isset($entry["author"]) && $entry["author"]!="") $entry_author=" {$entry["author"]} ";
*Für MediaWiki 1.23 in der Datei "WhosOnlineSpecialPage.php" die Funktion "getNavigationBar()" anpassen
if(isset($entry["editor"]) && $entry["editor"]!="") $entry_author=" {$entry["editor"]} (eds.) ";
*SQL-Befehl in der Extension-Datei "WhosOnline.sql" für neue Datenbank-Tabelle anpassen (siehe weiter unten)
if(isset($entry["year"]) && $entry["year"]!="") $entry_year=" ({$entry["year"]})";
*Mit "phpMyAdmin" und geändertem SQL-Befehl eine neue Datenbank-Tabelle erstellen (siehe weiter unten)
if(isset($entry["school"]) && $entry["school"]!="") $entry_school=", {$entry["school"]}";
*In der Datei "LocalSettings.php" einfügen:
if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}";
<pre>
if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}";
require_once("$IP/extensions/WhosOnline/WhosOnline.php");
//if(isset($entry["crossref"]) && $entry["crossref"]!="") $entry_crossref=". In: {$entry["crossref"]}";
$wgWhosOnlineShowAnons = true;
if(isset($entry["crossref"]) && $entry["crossref"]!="") $entry_crossref=". In:
</pre>
<a href='http://193.175.110.91/salzwiki/index.php/Literature:Bibliography#{$entry["crossref"]}'>{$entry["crossref"]}</a>";
if(isset($entry["url"]) && $entry["url"]!="") $entry_url=", <a href='{$entry["url"]}'>URL</a>";
if(isset($entry["doi"]) && $entry["doi"]!="") $entry_doi=", <a href='http://dx.doi.org/{$entry["doi"]}'>DOI</a>";
if(isset($entry["fulltext"]) && $entry["fulltext"]!="") $entry_fulltext=", <a href='http://193.175.110.91/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>";
$return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_school{$entry["publisher"]}$entry_crossref$entry_pages$entry_doi$entry_fulltext$entry_url.$end";</pre>


'''Datei "WhosOnlineSpecialPage.php" für MW 1.23 anpassen'''


Die Literaturliste im Repositorium wird bisher durchnumeriert durch Anpassung der Zeilen 294ff:
Die Funktion "getNavigationBar()" ab Zeile 75 kopieren, auskommentieren und die Kopie darunter einfügen.
<pre>$entry_name_url="# <span  class='bibprintwide' ><a href='$wgScriptPath/index.php?title=literature:Bibliography#".str_replace(' ','_',$entry_id)."'>[".$entry["entry_name"]."]:</a></span>"; </pre>
In der Kopie die Variable $wgLang als Ersatz für $wgContLang und die entsprechenden Variablen für die return-Funktion hinzufügen:
Das "#" Zeichen führt zur Nummerierung.
<pre>
-->
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


=== OGG ===
  return $wgLang->viewPrevNext(
    $title,
    $offset,
    $limit,
    $query,
    $atend
  );
}
</pre>


Dient zum Darstellen von Videodateien in SalzWiki Artikeln. Da es sich beim OGG-Format um ein freies Format hat, benötigt man keine Lizenz zum Darstellen der Inhalte.
'''Datei "WhosOnline.sql" anpassen'''
(Es ist noch zu klären, ob eventuell das MPEG Format für eine Hochschulanwendung Lizenzfrei sein könnte)
 
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:
<pre>CREATE TABLE `[datenbankname]`.`[praefix]online` (</pre>


* Extension unter http://www.mediawiki.org/wiki/Extension:OggHandler herunterladen.
'''Datenbank-Tabelle erstellen'''
* Extrahieren der Dateien nach extensions/OggHandler
* In den Localsettings eingefügen


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:
<pre>
<pre>
require( "$IP/extensions/OggHandler/OggHandler.php" );
CREATE TABLE  `[datenbankname]`.`[praefix]online`  (
$wgFFmpegLocation = 'd:\ffmpeg-wiki\bin\ffmpeg';
`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;
</pre>
</pre>


=== Hilfeseiten  ===
=== ConfirmEdit ===


Deutsche und Englische Hilfeseiten von Wikimedia importiert (Risos 20.08.09) (Aktualisiert)  
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''').


Hilfe:Contents | Hilfe/Contents/de |(einige Bilder fehlen noch)  
*Dateien unter http://www.mediawiki.org/wiki/Confirmedit herunterladen und unter "extensions\ConfirmEdit\" speichern.
 
*In der Datei "LocalSettings.php" einfügen:
Templates der Hilfeseiten Korrigiert, Bilder unter Beachtung der Lizenzen hochgeladen
<pre>
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
$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;


<br>
$wgCaptchaTriggers['edit']          = true;
$wgCaptchaTriggers['create']        = true;
$wgCaptchaTriggers['addurl']        = true;
$wgCaptchaTriggers['createaccount'] = true;
$wgCaptchaTriggers['badlogin']      = true;
</pre>


=== Javascript ===
=== QuestyCaptcha ===


Die Erweiterung dient dazu, den Navigationsbereich "Werkzeuge" entsprechend dem Anmeldestatus zu manipulieren.
Für SaltWiki wird zusätzlich zu "ConfirmEdit" als Erweiterung das Captcha "QuestyCaptcha" gegen Spam-Anmeldungen genutzt, da das Standard-Mathe-Captcha nicht ausreichte.
Siehe hierzu [[#Sidebar anpassen|Sidebar]] anpassen.
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.
   
* Extension unter http://www.mediawiki.org/wiki/Extension:Javascript herunterladen.
* Die Dateien unter "extensions" in ein Unterverzeichnis "JavaScript" extrahieren.
* In die Datei "LocalSettings.php" einfügen:
<pre>include("$IP/extensions/JavaScript/JavaScript.php");</pre>


Die Erweiterung funktionierte leider nicht out of the box. Folgende Änderungen wurden von S. Reher (25.07.2010) vorgenommen:
*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:
<pre>
require_once( "$IP/extensions/ConfirmEdit/QuestyCaptcha.php" );
$wgCaptchaClass = "QuestyCaptcha";
$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) );
$wgCaptchaQuestions[] = array( 'question' => 'The taste of salt is neither bitter nor sweet nor sourish but &hellip;', 'answer' => '***' );
$wgCaptchaQuestions[] = array('question' => 'Ask a question, give an &hellip;', '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) );
#$wgCaptchaQuestions[] = array('question' => 'Please write the magic secret, "salt", here:', 'answer' => '***');
#$wgCaptchaQuestions[] = array('question' => 'Type the code word, 8eight8, here:', 'answer' => '***');
</pre>


Ab Zeile 32 wurden in der JavaScript.php die folgenden Zeilen hinzugefügt; dies dient dazu auf dem Window-System die Pfade korrekt anzupassen:
=== ContactPage - Kontaktseite (Wiki-Code de-Formal) ===
  $slashPos = strpos('/',$wgScriptPath);
  if ($slashPos==0) $wgScriptPath_tmp = substr_replace($wgScriptPath ,"",0, 1);
  $file = str_replace('\\','/', $file);
  $pos = strpos($file, $wgScriptPath_tmp);
  $length = strlen($file)-$pos;
  $file = substr($file, $pos, $length);
  $out->addScript( "<script src='/$file' type='$wgJsMimeType'></script>" );


Das Javascript lädt alle Dateien aus dem Verzeichnis, in diesem Falle die Datei "customizeSidebar.js". Das Javascript entfernt aufgrund der folgenden Zeilen Einträge aus dem Werkzeug-Kasten:
Für Mitteilungen allgemeiner Art wird eine Kontaktformular-Seite eingesetzt, die im Repositorium nur nach Anmeldung zur Verfügung steht. Für das Formular wird die Erweiterung "ContactPage" benutzt. Die Sie-Form der Wiki-Übersetzungsdatei ist um einen Eintrag zu ergänzen.


ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Spezial:Spezialseiten");
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.


Wann dies aktiv wird, wird über die folgenden Zeilen geregelt:
*Dateien unter http://www.mediawiki.org/wiki/Extension:ContactPage bzw. <b>für MW 1.23</b> unter https://git.wikimedia.org/zip/?r=mediawiki/extensions/ContactPage&h=daa666dec4793a2ce9675dbb8b6c365d105e8986&format=zip herunterladen und die Dateien unter "Extensions/ContactPage" speichern.
/*if the user is not autor or admin, there should be displayed only necessary links*/
*Für MediaWiki 1.23 in den Übersetzungsdateien "de.json", "en.json" und "qqq.json" Zeilen einfügen (siehe weiter unten)
if ( wgUserGroups.Contains('autor') || wgUserGroups.Contains('Administrators') || wgUserGroups.Contains('forschung')) {
*Für MediaWiki 1.16 in der Übersetzungsdatei "ContactPage.i18n.php" bei der deutschen Du-Variante die "Sie"-Bezeichnungen durch "Du"-Bezeichnungen ersetzen und am Anfang der Sprachvariante im Kommentar @author mit Datum ergänzen.
/*if the user is guest, there should be displayed only necessary links*/
*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"
if (wgUserName == null) {
**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
**Für MediaWiki 1.16 im Verzeichnis "[wikiverzeichnis]\languages\messages\" aus der Datei "MessagesDE.php" aus Zeile 2111 in Datei "MessagesDe_formal.php" in Zeile 411 einfügen
*Erweiterung mit Variablenzuweisungen in der Datei "LocalSettings.php" einfügen


===SaltWikiUpload===
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"
* MW1.16 "[wikiverzeichnis]\languages\messages\MessagesDE_formalSW.php"


Die Erweiterung "SaltWikiUpoload" modifiziert das Upload-Formular im Repositorium, sodass die Eingabe von Metadaten deutlich einfacher vonstatten geht und auch vom System her schon die richtigen "Katergorien" angelegt werden. Eine Verifizierung einzelner Felder findet statt.
==== MW 1.23 Code-Anpassungen ====


Die Erweiterung wird dazu in den Ordner "extensions" kopiert.
Zur Code-Anpassung siehe auch https://gerrit.wikimedia.org/r/#/c/156052/


In die "localsettings.php" ist einzufügen:  
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:
<pre>
{
  "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.)"
}
</pre>


## enable new upload extension
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:
require_once("$IP/extensions/SaltWikiUpload/SaltWikiUpload.php");
<pre>
## Extension AccessControl (Risos 07.07.10)
{
require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");
  "metadata": {
    "authors": [
      ...
      "Umherirrender",
      "Gunnar Werner HAWK HHG"
    ]
  },
  ...
  "contactpage-usermailererror": "Mail object returned error:",
  "contactpage-captcha-error": "CAPTCHA error"
}
</pre>


=== SpecialInterwiki ===
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:
<pre>
{
  "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]])"
}
</pre>


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.
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):
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".
<pre>
...
// 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,
  );
}


Die Extension wird bei http://www.mediawiki.org/wiki/Extension:SpecialInterwiki heruntergeladen und in ...Extensions/Interwiki extrahiert.
$form = new HTMLForm( $formItems, $this->getContext(), "contactpage-{$this->formType}" );
 
...
In die "localsettings" eines jeden Wiki's ist dann einzufügen:
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";
  }
}
</pre>


require_once("$IP/extensions/Interwiki/SpecialInterwiki.php");
==== LocalSettings.php ====
$wgGroupPermissions['*']['interwiki'] = false;
<pre>
$wgGroupPermissions['sysop']['interwiki'] = true; ## nur sysops können die InterWiki Tabelle ändern und sehen
// Version 2.2 für MediaWiki 1.25
$wgEnableScaryTranscluding = true;               ## Seiten von anderen Wikis können eingebunden werden
#wfLoadExtension("ContactPage.php");
// Version 2.2 für MediaWiki 1.23
require_once( "$IP/extensions/ContactPage/ContactPage.php" );
$wgContactConfig['default'] = array(
  'RecipientUser' => 'BHentschel', //'WikiUser' // Must be the name of a valid account //vormals $wgContactUser
  'SenderName'=> 'Kontaktformular ' . $wgSitename, // "Contact Form on" needs to be translated //vormals $wgContactSenderName
  'SenderEmail'=> 'hentschel@hornemann-institut.de', //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'=> true, // 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', //'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.
);
$wgCaptchaTriggers['contactpage'] = true;
</pre>


=== Terminology ===
<pre>
// für MediaWiki 1.16
require_once( "$IP/extensions/ContactPage/ContactPage.php" );


Die Extension Terminology dient zum Erstellen eines Glossars. Um Verwirrungen zu vermeiden, wurde die Datei in der alles gespeichert wird von Terminology in Glossar umbenannt. Nur in SalzWiki!!
#$wgContactUser = 'HSchwarz';
#$wgContactSender = $wgPasswordSender;
$wgContactUser = 'Bhentschel'; // muss als User-Name im Wiki existieren
$wgContactSender = [E-Mail-Adresse von $wgContactUser]; // User muss E-Mail eingetragen, bestätigt und E-Mail-Empfang von Anderen erlaubt haben
$wgContactSenderName = 'Contact Form SalzWiki ' . $wgSitename;
$wgCaptchaTriggers['contactpage'] = true;
</pre>


* Extension unter http://www.mediawiki.org/wiki/Extension:Terminology herunterladen.
=== CharInsert ===
* Datei in das Verzeichnis extensions kopieren
* In den Localsettings eingefügen


<pre>require_once( "$IP/extensions/terminology.php" );</pre>;
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.


=== CategoryTree ===
Die Extension wird bei http://www.mediawiki.org/wiki/Extension:CharInsert heruntergeladen und in ...Extensions/CharInsert extrahiert.


Die Extension dient zur Darstellung der Kategorienbäzme, damit schnell den Artikeln und Dokumenten die richtigen Kategorien zugewiesen werden können.
In die localsettings ist einzufügen:


* Extension unter http://www.mediawiki.org/wiki/Categorytree herunterladen und in den Extensionsordner kopieren.
require_once("$IP/extensions/CharInsert/CharInsert.php");
* In den Localsettinge eingefügen.


<pre>
In Mediawiki:Edittools werden die entsprechenden Zeichen bzw. Hilfen mit
$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen
<pre><charinsert> .. </charinsert> </pre>
require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");
</pre>


=== Cite  ===
eingefügt.




Dient zum Erstellen von Fußnoten in SalzWiki Artikeln.


*Extension unter http://www.mediawiki.org/wiki/Cite herunterladen.
=== SpecialInterwiki ===
*Extrahieren der Dateien nach extensions/Cite
*In den Localsettings eingefügen


<pre>
Die Erweiterung wurde später in "Interwiki" umbenannt und ist in Mediawiki seit Version 1.21 enthalten.
require_once("$IP/extensions/Cite/Cite.php");
</pre>


Siehe näheres zum Einfügen von Fußnoten unter http://193.175.110.91/salzwiki/index.php/Autor#Fu.C3.9Fnoten.
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".


=== User Merge - Benutzername löschen ===
Die Erweiterung für MW 1.23 wird bei http://www.mediawiki.org/wiki/Extension:Interwiki heruntergeladen und in ...Extensions/Interwiki extrahiert.


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.  
Die Extension für MW 1.15 wird bei http://www.mediawiki.org/wiki/Extension:SpecialInterwiki heruntergeladen und in ...Extensions/Interwiki extrahiert.


* Extension unter http://www.mediawiki.org/wiki/Extension:User_Merge_and_Delete herunterladen.
In die "localsettings" eines jeden Wiki's ist dann einzufügen:  
* Datei in das Verzeichnis extensions/UserMerge kopieren
 
* In den Localsettings eingefü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


<pre>
require_once( "$IP/extensions/UserMerge/UserMerge.php" );
# Assign the usermerge right to a usergroup, i.e. to the bureaucrats:
$wgGroupPermissions['bureaucrat']['usermerge'] = true;
</pre>


=== WhosOnline - Wer ist online ===
Diese Erweiterung wurde in SalzWiki, SaltWiki und im Repositorium installiert.


Die Extension WhosOnline dient dazu sich auf einer Specialpage anzeigen zu lassen, wer gerade online ist.
== Eingabe von Formeln mittels Tex (Wiki-Code) ==


*Dateien unter http://www.mediawiki.org/wiki/Extension:WhosOnline herunterladen und extrahieren
Damit z.B mathematische und auch chemische Formeln dargestellt werden können, wird in Mediawiki TEX benutzt.  
*Verzeichnis "WhosOnline" unter "Extensions" speichern '''wurde noch nicht durchgeführt'''
'''Nach jedem mediawiki-Update muss die Datei "includes/Math.php" auf Windows-Kompatibilität überprüft werden!'''
*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 '''wurde noch nicht durchgeführt''':
<pre>
require_once("$IP/extensions/WhosOnline/WhosOnline.php");
$wgWhosOnlineShowAnons = true;
</pre>


'''Datei "WhosOnline.sql" anpassen'''
Die '''[[#Tats.C3.A4chliche_Installation|tatsächliche Installation ]]''' eines Tex-Systems erfolgte in Anlehnung an die [[#Alternative_Installationsmethode_gem.C3.A4.C3.9F_Mediawiki|alternative Methode]] auf der Mediawiki Seite
http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows#Alternative_Solution.


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:
=== Tatsächliche Installation ===
<pre>CREATE TABLE `[datenbankname]`.`[praefix]online` (</pre>


'''Datenbank-Tabelle erstellen'''
Die Applikationen als Administrator für alle User im Verzeichnis "D:\texmf\" installieren:


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:
#GhostScript im Unterverzeichnis "ghostscript/" für alle User installieren
<pre>
##aus dem Unterverzeichnis "bin/" die Datei "gswin32c.exe" kopieren und die Kopie umbenennen zu "gs.exe"
CREATE TABLE `[datenbankname]`.`[praefix]online` (
##Im ServerManager bei "Systemeigenschaften ändern/Erweitert/Umgebungsvariablen" die Systemvariable "path" erweitern mit "D:\texmf\ghostscript\gs8.70\bin;"
`userid` int(5) NOT NULL default '0',
#ImageMagick im Unterverzeichnis "imagick/" installieren
`username` varchar(255) NOT NULL default '',
##ImageMagick-6.5.9-0-Q16.dll (bei vorhandener Windows-Server-Konfigurationsberechtigung), sonst "static" (nur XAMPP-Zugriffsberechtigungen), inkl. "Desktop-Icon", "zum Systempfad hinzufügen" und "header für C/C++ Developement"
`timestamp` char(14) NOT NULL default '',
##Testen mit der "Eingabeaufforderung/Konsole" durch Eingabe von
PRIMARY KEY USING HASH (`userid`, `username`),
##*convert logo: logo.miff [=&gt;Enter drücken]
INDEX USING BTREE (`timestamp`)
##*imdisplay logo.miff [=&gt;Enter drücken]
) TYPE=MEMORY;
##*= &gt; ein Bild soll angezeigt werden
##Für PHP die VC6-kompilierte Datei "php_imagick_dyn-Q16.dll" von [http://valokuva.org/outside-blog-content/imagick-windows-builds/080709/ valukova.org] herunterladen und in das PHP-Unterverzeichnis "ext/" kopieren und umbenennen zu "php_imagick_dyn_Q16.dll"
##In der Datei "php.ini" im Bereich Windows Extensions die Datei "php_imagick_dyn_Q16.dll" einbinden:<br/> extension=php_imagick_dyn_Q16.dll
#Im Verzeichnis "D:\texmf\" ein Unterverzeichnis "miktex" erstellen
#Für Sophos-Antivirus eine Ausnahme festlegen:
#:Konfigurieren-&gt;On-Access-Überprüfung-&gt;Ausnahmen -&gt; "D:\texmf\Miktex\" hinzufügen
#MikTex im Unterverzeichnis "miktex/" installieren
#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 [http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows/math.php 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".
#In der Datei "LocalSettings.php" ist jeweils einzufügen:  
<pre>
  $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';
</pre>
</pre>


== Eingabe von Formeln mittels Tex  ==
=== Alternative Installationsmethode gemäß Mediawiki ===


Damit z.B mathematische und auch chemische Formneln dargestellt werden können, wird in Mediawiki TEX benutzt.
#install the complete [http://www.miktex.org/Setup.aspx 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 [http://www.imagemagick.org/script/binary-releases.php#windows ImageMagick] in D:\texmf\imagick (ensure there are no spaces in the path you choose) - '''No: We installed the dynamic version wih administrator rights.'''
Die [[#Tats.C3.A4chliche_Installation|tatsächliche Installation ]] eines Tex-Systems erfolgte in Anlehnung an die [[#Installation_gem.C3.A4.C3.9F_Mediawiki|alternative Methode]] auf der Mediawiki Seite
#install AFPL [http://www.imagemagick.org/script/binary-releases.php#windows GhostScript] bzw. [http://sourceforge.net/projects/ghostscript/files/AFPL%20Ghostscript/8.54/ GhostScript] bzw. [http://sourceforge.net/projects/ghostscript/ GhostScript] in D:\texmf\ghostscript
http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows#Alternative_Solution.  
#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 -&gt; execute -&gt; cmd.exe)
#verify that the following commands are working:
#:latex
#:dvips
#:convert (not the microsoft convert)
#:gs
#[edit] Settings


Siehe im entsprechenden  [[Adm:Aenderungen_SalzWiki#Eingabe_von_Formeln_mittels_Tex|Kapitel ]] unter SalzWiki
*your wiki directory = $<br/>
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:
<pre>$wgUseTeX= true;</pre>


== Hochladen von Dateien ==
*insert in $/LocalSettings.php:
 
Damit Dateien hochgeladen werden können, ist in der localsettings.php folgende Einstellung vorzunehmen:


- ImageMagick<br>
<pre>
$wgImageMagickConvertCommand    = 'D:\texmf\imagick\convert.exe';
$wgImageMagickIdentifyCommand  = 'D:\texmf\imagick\identify.exe';
</pre>
- Tex<br>
<pre>
<pre>
## To enable image uploads, make sure the 'images' directory
$wgLaTexCommand                = 'D:\texmf\miktex\miktex\bin\latex.exe';
## is writable, then set this to true:
$wgDvipsCommand                = 'D:\texmf\miktex\miktex\bin\dvips.exe';
$wgEnableUploads      = true;
</pre>
</pre>


Folgende Dateitypen sind durch eine entsprechende Einstellung in den localsettings.php zugelassen:
*reboot if needed so that paths variables are updated for your services too


<pre>
<!--
$wgFileExtensions = array('png', 'gif', 'tiff','tif','jpg', 'jpeg', 'doc', 'xls', 'xml','pdf', 'svg', 'avi',
==== TeX - Beseitigung von Problemen mit dem FCK Editor  ====
'mpeg','ogg', 'ogv', 'oga','mov');
</pre>


== Mehrsprachigkeit ==
<font color="#0000ff">HSchwarz 12.3.2010: </font>
in der FCKeditorParser.body.php, das was unter "case 'math':" steht ersetzen durch:&nbsp;
<pre>case 'math':
    if($wgUseTeX){ //normal render
    $output = '&lt;img _fckfakelement="true" class="FCK__MWMath" _fck_mw_math="'.$content.'" src="'.$wgScriptPath.'/skins/common/images/button_math.png" /&gt;';
    }else //show fakeimage
    $output = $wgContLang-&gt;armourMath( MathRenderer::renderMath( $content ) );
    break;
</pre>
<br>


Zitat Alexander Risos:
Den Parserfehler konnte ich auf den Grund gehen. Dieser Fehler ist in der alten Version nicht aufgetreten, da an stelle der "Parser"-Fehlermeldung ein Summensymbol auftreten sollte. Dies hängt mit der "TEX Box" zusammen. Leider wird auch in der 16er Version das Summensymbol nicht angezeigt.


=== Mehrsprachigkeit von Seiten ===
-->


Jede Seite muss für jeder gewünschten Sprache erstellt werden (siehe [[help:contents|Hilfeseiten]]). Die Grundsprache wird für das Repositorium Englisch sein, so dass der Seitenname zunächst in Englisch angelegt wird, z.B. "DummyPage". Für jede Sprachversion, z.B für Deutsch, wird eine Subpage der englischen Seite mit dem Sprachenkürzel erstellt, wie z.B. DummyPage/de.
== Hilfeseiten  ==
   
An das Ende jeder Seite schreibt man nun
<pre>{{Languages|Namensraum:Seitennamename}} </pre>


im obigen Fall wäre dies
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-&gt;Seitenwerkzeuge" bzw. "Special pages-&gt;Page tools" zur Verfügung. Aktuelle Dateien vom 16.3.2011 sind unter D:\Dokumente\Hilfe-Dateien auf dem SalzWiki-Server gespeichert.
<pre>{{Languages|Dummypage}}</pre> da sich die Seite im Stammverzeichnis befindet.


Mit dem Installieren der Hilfetexte wurden bereits alle Vorlagen mit installiert, die benötigt werden. um jetzt aus den unterschiedlichen Subpages am unteren Ende einer Seite die Schaltflächen zur Auswahl der gewünschten Sprache zur Verfügung zu stellen.
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.  
[[Datei:Language-button.png|thumb|left|200px|durch <nowiki>{{languages}}</nowiki> erzeugte Schaltflächen zur Auswahl einer Sprache]]
<br clear=all>


Die unter Einstellungen zur Auswahl stehende Sprache "de-formal" wird dabei nicht berücksichtigt .
Die Abbildungen werden - in Abwandlung der Hinweise - direkt aus Mediawiki im Verzeichnis D:\Dokumente\Hilfe-Dateien gespeichert und von dort im Repositorium über "Spezialseiten-&gt;Medien" oder den Menüpunkt "Werkzeuge: Hochladen" hochgeladen. Auf die z. T. unterschiedlichen Lizenzen ist beim  Hochladen bei der Eingabe der Metadaten zu achten.
 
*<b>Deutsche Version:</b> Soll zuerst auf die deutsche Version verwiesen werden, ist der Hyperlink  im Menü links (Sidebar) auf "help:contents/de" zu setzen.
*<b>Englische Version:</b> 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.


=== Mehrsprachigkeit der Navigation ===
= Repositorium  =


Um die Navigationsschaltflächen zweisprachig zu gestalten, die beim Auswählen einer Sprache automatisch umgesetzt werden sollen, müssen die deutschen Begriffe in der Datei MessagesDe.php entsprechend angepasst werden. Der Pfad auf dem RZ-Server zur Datei ist
Zur Installation wurden fogende Einstellungen und Extensions eingestzt:
D:\xampp\htdocs\repository\languages\messages\MessagesDe.php


== Datenbank mittel XAMPP und phpmyAdmin anlegen  ==


Dort wurden für die '''Übersetzung deutsch – englisch''' folgende Ergänzungen  ab Zeile 607 eingefügt:
Es muss vor der Installation zuerst eine Datenbank angelegt werden.


'news'                => 'Aktuelles',                ##Beginn Ergänzung Hschwarz
database name: repository  
'literature'          => 'Literatur',                 
datbase table prefix: sr_
'category-tree'        => 'Kategorienbaum',
'templates'            => 'Vorlagen',
'glossary'            => 'Glossar',
'repository'          => 'Repositorium',
'rights'              => 'Nutzungsrechte',
'bibliography'        => 'Zur Bilbiographie',
'authors'              => 'Autoren/innen',
'communication'        => 'Kommunikation',
'projects'            => 'Projekte',
'market'              => 'Marktplatz',
'salzwiki'            => 'Zum SalzWiki',                ##Ende Ergänzungen


Benutzer: hschwarz


Die englischen Begriffe müssen hier alle klein geschrieben werden. In der Navigation können sie trotzdem groß geschrieben sein.
Host: localhost


Für die '''Übersetzung deutsch – französich''' wurde folgende Ergänzungen ab Zeile 601 eingefügt:
Global Rechte: all privileges
 
Grant&nbsp;: ja
 
== Mediawiki Installieren  ==
 
Nach Installationsanweisung mit folgenden Namen:&nbsp;: Repository  
 
http://193.175.110.91/repository/index.php/Main_Page


'news'                => 'Actualités',                ##Beginn Ergänzung Hschwarz
'literature'          => 'Littérature',                 
'category-tree'        => 'Arborescence des catégories',
'templates'            => 'Modèles',
'glossary'            => 'Glossaire',
'repository'          => 'Repositorium',
'rights'              => 'Jouissance ',
'bibliography'        => 'à Bilbiographie',
'authors'              => 'Auteur/Auteure',
'communication'        => 'Communication',
'projects'            => 'Projet',
'market'              => 'Marché ',
'salzwiki'            => 'à SalzWiki',                ##Ende Ergänzungen


Die Übersetzungen in Französich sind noch zu prüfen!
=== Lizenz für das Repositorium ===


== Zugangsberechtigungen  ==
Einfügen in LocalSettings.php


===Einrichten der Usergruppe "Redakteur"===
<pre>
<pre>
# Spezialgruppe Redakteur
$wgEnableCreativeCommonsRdf = true;
$wgGroupPermissions['Redakteur']['emailconfirmed'] = true;
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgGroupPermissions['Redakteur']['createpage'] = true;
$wgRightsUrl = "http://creativecommons.org/licenses/by-nc-sa/3.0/";
$wgGroupPermissions['Redakteur']['createtalk'] = true;
$wgRightsText = "Attribution-Noncommercial-Share Alike 3.0 Unported";
$wgGroupPermissions['Redakteur']['edit'] = true;
$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png";
$wgGroupPermissions['Redakteur']['protect'] = true;
# $wgRightsCode = "[license_code]"; # Not yet used
$wgGroupPermissions['Redakteur']['editprotected'] = true;
$wgGroupPermissions['Redakteur']['read'] = true;
$wgGroupPermissions['Redakteur']['upload'] = true;
$wgGroupPermissions['Redakteur']['move'] = true;
$wgGroupPermissions['Redakteur']['createaccount'] = true;
$wgGroupPermissions['Redakteur']['movefile'] = true;
$wgGroupPermissions['Redakteur']['deletedtext'] = true;
$wgGroupPermissions['Redakteur']['deletedhistory'] = true;
$wgGroupPermissions['Redakteur']['noratelimit'] = true;
$wgGroupPermissions['Redakteur']['undelete'] = true;
$wgGroupPermissions['Redakteur']['restrictusers'] = true;
$wgGroupPermissions['Redakteur']['skipcaptcha'] = true;
$wgGroupPermissions['Redakteur']['approverevisions'] = true;
</pre>
</pre>
=== Nur Autoren können lesen und editieren  ===


Das aktuelle Nutzerschema lautet:
=== Style/Skin  ===
<pre>
 
$wgWhitelistRead = array(":home", "Spezial:Userlogin");
[[#Style.2FSkin|siehe oben bei "SalzWiki]]  
$wgGroupPermissions['*']['read'] = false;
 
$wgGroupPermissions['*']['edit'] = false;
=== Logo  ===
$wgGroupPermissions['user']['read'] = false;
$wgGroupPermissions['user']['edit'] = false;


# Prevent new user registrations except by sysops
Die Datei für das Logo ist noch hochzuladen und einzufügen in LocalSettings.php:
$wgWhitelistAccount = array ( "user" => 0, "sysop" => 1, "developer" => 1 );
$wgGroupPermissions['*']['createaccount'] = false;


# Spezialgruppe Autor  
<pre>
$wgGroupPermissions['autor']['emailconfirmed'] = true;
## The relative URL path to the logo.  Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
$wgLogo = "$wgStylePath/common/images/Logo_Repo.png";
</pre>
 
=== Logos mit Verlinkung (und Footerlinks angepasst) ===
 
Änderungen in MonoBookSW.php: Zeile 213 - 239
<pre> &lt;!-- end of banner1 --&gt;
&lt;/div&gt;&lt;!-- end of the left (by default at least) column --&gt;
 
&lt;div class="visualClear"&gt;&lt;/div&gt;
&lt;div id="footer"&gt;
&lt;!-- Logos der HAWK und des Honrmanninstitues zentral in den footer. Rudimentaere Anpassung der Bilder!! Zeitsparend--&gt;
 
&lt;?php
if($this-&gt;data['poweredbyico']) {&nbsp;?&gt;
&lt;div id="f-poweredbyico"&gt;&lt;?php $this-&gt;html('poweredbyico')&nbsp;?&gt;&lt;/div&gt;
&lt;?php }
if($this-&gt;data['copyrightico']) {&nbsp;?&gt;
&lt;div id="f-poweredbyico"&gt;&lt;?php $this-&gt;html('copyrightico')&nbsp;?&gt;&lt;/div&gt;
&lt;?php }
if($this-&gt;data['copyrightico']) {&nbsp;?&gt;
&lt;div id="f-copyrightico"&gt;
&lt;a href="http://www.hornemann-institut.de/"&gt;
&lt;img src="/[repository_1.16.1]/skins/common/images/HI.png" width=91 height=30&gt;
&lt;/a&gt;
&nbsp; &nbsp;
&lt;a href="http://www.hawk-hhg.de/"&gt;
&lt;img src="/[repository_1.16.1]/skins/common/images/HAWK.png" height=30 width=84&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;?php }
 
// Generate additional footer links "'copyright',  'viewcount', 'numberofwatchingusers'," entfernt!
$footerlinks = array(
'lastmod',  'credits',
'privacy', 'about', 'disclaimer', 'tagline', 'Hallo',
);
$validFooterLinks = array();
foreach( $footerlinks as $aLink ) {
if( isset( $this-&gt;data[$aLink] ) &amp;&amp; $this-&gt;data[$aLink] ) {
$validFooterLinks[] = $aLink;
}
}
if ( count( $validFooterLinks ) &gt; 0 ) {
?&gt; &lt;ul id="f-list"&gt;
</pre>
 
=== Favicon ===
 
Damit ein Favicon dargestellt wird, ist die datei in das Verzeichnis "../repository" hochzuladen und folgender Eintrag in den localsettings.php vorzunehmen:
 
<pre>$wgFavicon="/repository/SalzWiki.ico";</pre>
 
=== Lizenzvorlagen  ===
 
Vorlagen = Templates finden sich beispielhaft auf der Seite [[Vorlagen]] dargestellt. Die einzelnen Vorlagen sind im Namensraum Vorlagen zu finden.
 
"Kategorie:Lizenzenvorlagen" erstellt.
 
 
=== Lizenzen im Upload-Formular ===
 
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:
 
<pre>
*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)
</pre>
 
== Extensions  ==
 
=== AccessControl  ===
 
* Die Extension wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki kopiert.
* Einfügen in LocalSettings:
 
<pre> require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");</pre>
 
Der Zugang auf eine Seite wird durch Eingabe einer Nutzergruppe erlaubt, die vorher z.B. in den local settiongs definiert werden kann.  <pre><accesscontrol>SalzWiki</accesscontrol>  : Zugang nur für Mitglieder der Gruppe SalzWiki</pre>
 
Siehe dazu auch wie z.B. http://www.mediawiki.org/wiki/Extension:AccessControl
 
=== Approved_Revs ===
 
 
Diese Erweiterung wurde entsprechend den Anweisungen  unter SalzWiki [[#Approved_Revs]]  installiert.
 
Als Prefix für die Datenbank ist dabei sr_ zu benützen.
 
In den Localsettings.php wurde eingefügt:
 
<pre>
##Erlaubt das Freischalten zum Lesen von einer älteren Version Schwarz 04.04.2011
require_once("$IP/extensions/ApprovedRevs/ApprovedRevs.php");
 
$wgGroupPermissions['sysop']['approverevisions'] = true;
$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;
</pre>
 
=== DynamicPagesList  ===
 
*Die Extension http://www.mediawiki.org/wiki/Extension:DynamicPageList_%28third-party%29  wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki kopiert.
* Einfügen in LocalSettings:
 
<pre>include("$IP/extensions/DynamicPageList/DynamicPageList2.php");</pre>
 
Zur Funktionsweise und den umfangreichen Einsatzmöglichkeiten siehe auch http://semeb.com/dpldemo/index.php?title=Main_Page.
 
=== OggHandler ===
 
Die Erweiterung wird ab Mediawiki 1.24 nicht mehr unterstützt; empfohlen wird die Erweiterung "TimedMediaHandler".
 
Dient zum Darstellen von Videodateien in SalzWiki Artikeln. Da es sich beim OGG-Format um ein freies Format hat, 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)
 
* Extension unter http://www.mediawiki.org/wiki/Extension:OggHandler herunterladen.
* Extrahieren der Dateien nach extensions/OggHandler
* In den Localsettings eingefügen
 
<pre>
require( "$IP/extensions/OggHandler/OggHandler.php" );
$wgFFmpegLocation = 'd:\ffmpeg-wiki\bin\ffmpeg';
</pre>
 
=== Hilfeseiten  ===
 
Deutsche und Englische Hilfeseiten von Wikimedia importiert (Risos 20.08.09) (Aktualisiert)
 
Hilfe:Contents | Hilfe/Contents/de |(einige Bilder fehlen noch)
 
Templates der Hilfeseiten Korrigiert, Bilder unter Beachtung der Lizenzen hochgeladen
 
<br>
 
=== Javascript ===
 
Die Erweiterung dient dazu, den Navigationsbereich "Werkzeuge" entsprechend dem Anmeldestatus zu manipulieren.
Siehe hierzu [[#Sidebar anpassen|Sidebar]] anpassen.
   
* Extension unter http://www.mediawiki.org/wiki/Extension:Javascript herunterladen.
* Die Dateien unter "extensions" in ein Unterverzeichnis "JavaScript" extrahieren.
* In die Datei "LocalSettings.php" einfügen:
<pre>include("$IP/extensions/JavaScript/JavaScript.php");</pre>
 
Die Erweiterung funktionierte leider nicht out of the box. Folgende Änderungen wurden von S. Reher (25.07.2010) vorgenommen:
 
Ab Zeile 32 wurden in der JavaScript.php die folgenden Zeilen hinzugefügt; dies dient dazu auf dem Window-System die Pfade korrekt anzupassen:
  $slashPos = strpos('/',$wgScriptPath);
  if ($slashPos==0) $wgScriptPath_tmp = substr_replace($wgScriptPath ,"",0, 1);
  $file = str_replace('\\','/', $file);
  $pos = strpos($file, $wgScriptPath_tmp);
  $length = strlen($file)-$pos;
  $file = substr($file, $pos, $length);
  $out->addScript( "<script src='/$file' type='$wgJsMimeType'></script>" );
 
Das Javascript lädt alle Dateien aus dem Verzeichnis, in diesem Falle die Datei "customizeSidebar.js". Das Javascript entfernt aufgrund der folgenden Zeilen Einträge aus dem Werkzeug-Kasten:
 
ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Spezial:Spezialseiten");
 
Wann dies aktiv wird, wird über die folgenden Zeilen geregelt:
/*if the user is not autor or admin, there should be displayed only necessary links*/
if ( wgUserGroups.Contains('autor') || wgUserGroups.Contains('Administrators') || wgUserGroups.Contains('forschung')) {
/*if the user is guest, there should be displayed only necessary links*/
if (wgUserName == null) {
 
===SaltWikiUpload===
 
Die Erweiterung "SaltWikiUpoload" modifiziert das Upload-Formular im Repositorium, sodass die Eingabe von Metadaten deutlich einfacher vonstatten geht und auch vom System her schon die richtigen "Katergorien" angelegt werden. Eine Verifizierung einzelner Felder findet statt.
 
Die Erweiterung wird dazu in den Ordner "extensions" kopiert.
 
In die "localsettings.php" ist einzufügen:
 
## enable new upload extension
require_once("$IP/extensions/SaltWikiUpload/SaltWikiUpload.php");
## Extension AccessControl (Risos 07.07.10)
require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");
 
=== SpecialInterwiki ===
 
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 Extension wird bei http://www.mediawiki.org/wiki/Extension:SpecialInterwiki heruntergeladen und in ...Extensions/Interwiki extrahiert.
 
In die "localsettings" eines jeden Wiki's ist dann einzufügen:
 
require_once("$IP/extensions/Interwiki/SpecialInterwiki.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
 
=== Terminology ===
 
Diese Erweiterung wird seit 2010-07-29 nicht mehr weiterentwickelt. Sie gilt als ineffizient bei umfangreichen Glossars. Es wird die Erweiterung "Lingo" empfohlen.
 
Die Extension Terminology dient zum Erstellen eines Glossars. Um Verwirrungen zu vermeiden, wurde die Datei in der alles gespeichert wird von Terminology in Glossar umbenannt. Nur in SalzWiki!!
 
* Extension unter http://www.mediawiki.org/wiki/Extension:Terminology herunterladen.
* Datei in das Verzeichnis extensions kopieren
* In den Localsettings eingefügen
 
<pre>require_once( "$IP/extensions/terminology.php" );</pre>
 
=== CategoryTree ===
 
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.
 
<pre>
$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen
require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");
</pre>
 
=== Cite  ===
 
 
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
 
<pre>
require_once("$IP/extensions/Cite/Cite.php");
</pre>
 
Siehe näheres zum Einfügen von Fußnoten unter http://193.175.110.91/salzwiki/index.php/Autor#Fu.C3.9Fnoten.
 
=== User Merge - Benutzername löschen ===
 
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
 
<pre>
require_once( "$IP/extensions/UserMerge/UserMerge.php" );
# Assign the usermerge right to a usergroup, i.e. to the bureaucrats:
$wgGroupPermissions['bureaucrat']['usermerge'] = true;
</pre>
 
=== WhosOnline - Wer ist online ===
 
Die Extension WhosOnline dient dazu sich auf einer Specialpage anzeigen zu lassen, wer gerade online ist.
 
*Dateien unter http://www.mediawiki.org/wiki/Extension:WhosOnline herunterladen und extrahieren
*Verzeichnis "WhosOnline" unter "Extensions" speichern '''wurde noch nicht durchgeführt'''
*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 '''wurde noch nicht durchgeführt''':
<pre>
require_once("$IP/extensions/WhosOnline/WhosOnline.php");
$wgWhosOnlineShowAnons = true;
</pre>
 
'''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:
<pre>CREATE TABLE `[datenbankname]`.`[praefix]online` (</pre>
 
'''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:
<pre>
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;
</pre>
 
== Eingabe von Formeln mittels Tex  ==
 
Damit z.B mathematische und auch chemische Formneln dargestellt werden können, wird in Mediawiki TEX benutzt.
 
Die [[#Tats.C3.A4chliche_Installation|tatsächliche Installation ]] eines Tex-Systems erfolgte in Anlehnung an die [[#Installation_gem.C3.A4.C3.9F_Mediawiki|alternative Methode]] auf der Mediawiki Seite
http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows#Alternative_Solution.
 
Siehe im entsprechenden  [[Adm:Aenderungen_SalzWiki#Eingabe_von_Formeln_mittels_Tex|Kapitel ]] unter SalzWiki
 
== Hochladen von Dateien ==
 
Damit Dateien hochgeladen werden können, ist in der localsettings.php folgende Einstellung vorzunehmen:
 
<pre>
## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads      = true;
</pre>
 
Folgende Dateitypen sind durch eine entsprechende Einstellung in den localsettings.php zugelassen:
 
<pre>
$wgFileExtensions = array('png', 'gif', 'tiff','tif','jpg', 'jpeg', 'doc', 'xls', 'xml','pdf', 'svg', 'avi',
'mpeg','ogg', 'ogv', 'oga','mov');
</pre>
 
== Mehrsprachigkeit ==
 
 
=== Mehrsprachigkeit von Seiten ===
 
Jede Seite muss für jeder gewünschten Sprache erstellt werden (siehe [[help:contents|Hilfeseiten]]). Die Grundsprache wird für das Repositorium Englisch sein, so dass der Seitenname zunächst in Englisch angelegt wird, z.B. "DummyPage". Für jede Sprachversion, z.B für Deutsch, wird eine Subpage der englischen Seite mit dem Sprachenkürzel erstellt, wie z.B. DummyPage/de.
An das Ende jeder Seite schreibt man nun
<pre>{{Languages|Namensraum:Seitennamename}} </pre>
 
im obigen Fall wäre dies
<pre>{{Languages|Dummypage}}</pre> da sich die Seite im Stammverzeichnis befindet.
 
Mit dem Installieren der Hilfetexte wurden bereits alle Vorlagen mit installiert, die benötigt werden. um jetzt aus den unterschiedlichen Subpages am unteren Ende einer Seite die Schaltflächen zur Auswahl der gewünschten Sprache zur Verfügung zu stellen.
[[Datei:Language-button.png|thumb|left|200px|durch <nowiki>{{languages}}</nowiki> erzeugte Schaltflächen zur Auswahl einer Sprache]]
<br clear=all>
 
Die unter Einstellungen zur Auswahl stehende Sprache "de-formal" wird dabei nicht berücksichtigt .
 
 
=== Mehrsprachigkeit der Navigation ===
 
Um die Navigationsschaltflächen zweisprachig zu gestalten, die beim Auswählen einer Sprache automatisch umgesetzt werden sollen, müssen die deutschen Begriffe in der Datei MessagesDe.php entsprechend angepasst werden. Der Pfad auf dem RZ-Server zur Datei ist
D:\xampp\htdocs\repository\languages\messages\MessagesDe.php
 
 
Dort wurden für die '''Übersetzung deutsch – englisch''' folgende Ergänzungen  ab Zeile 607 eingefügt:
 
'news'                => 'Aktuelles',                ##Beginn Ergänzung Hschwarz
'literature'          => 'Literatur',                 
'category-tree'        => 'Kategorienbaum',
'templates'            => 'Vorlagen',
'glossary'            => 'Glossar',
'repository'          => 'Repositorium',
'rights'              => 'Nutzungsrechte',
'bibliography'        => 'Zur Bilbiographie',
'authors'              => 'Autoren/innen',
'communication'        => 'Kommunikation',
'projects'            => 'Projekte',
'market'              => 'Marktplatz',
'salzwiki'            => 'Zum SalzWiki',                ##Ende Ergänzungen
 
 
Die englischen Begriffe müssen hier alle klein geschrieben werden. In der Navigation können sie trotzdem groß geschrieben sein.
 
Für die '''Übersetzung deutsch – französich''' wurde folgende Ergänzungen  ab Zeile 601 eingefügt:
 
'news'                => 'Actualités',                ##Beginn Ergänzung Hschwarz
'literature'          => 'Littérature',                 
'category-tree'        => 'Arborescence des catégories',
'templates'            => 'Modèles',
'glossary'            => 'Glossaire',
'repository'          => 'Repositorium',
'rights'              => 'Jouissance ',
'bibliography'        => 'à Bilbiographie',
'authors'              => 'Auteur/Auteure',
'communication'        => 'Communication',
'projects'            => 'Projet',
'market'              => 'Marché ',
'salzwiki'            => 'à SalzWiki',                ##Ende Ergänzungen
 
Die Übersetzungen in Französich sind noch zu prüfen!
 
== Zugangsberechtigungen  ==
 
===Einrichten der Usergruppe "Redakteur"===
<pre>
# Spezialgruppe Redakteur
$wgGroupPermissions['Redakteur']['emailconfirmed'] = true;
$wgGroupPermissions['Redakteur']['createpage'] = true;
$wgGroupPermissions['Redakteur']['createtalk'] = true;
$wgGroupPermissions['Redakteur']['edit'] = true;
$wgGroupPermissions['Redakteur']['protect'] = true;
$wgGroupPermissions['Redakteur']['editprotected'] = true;
$wgGroupPermissions['Redakteur']['read'] = true;
$wgGroupPermissions['Redakteur']['upload'] = true;
$wgGroupPermissions['Redakteur']['move'] = true;
$wgGroupPermissions['Redakteur']['createaccount'] = true;
$wgGroupPermissions['Redakteur']['movefile'] = true;
$wgGroupPermissions['Redakteur']['deletedtext'] = true;
$wgGroupPermissions['Redakteur']['deletedhistory'] = true;
$wgGroupPermissions['Redakteur']['noratelimit'] = true;
$wgGroupPermissions['Redakteur']['undelete'] = true;
$wgGroupPermissions['Redakteur']['restrictusers'] = true;
$wgGroupPermissions['Redakteur']['skipcaptcha'] = true;
$wgGroupPermissions['Redakteur']['approverevisions'] = true;
</pre>
=== Nur Autoren können lesen und editieren  ===
 
Das aktuelle Nutzerschema lautet:
<pre>
$wgWhitelistRead = array(":home", "Spezial:Userlogin");
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['read'] = false;
$wgGroupPermissions['user']['edit'] = false;
 
# Prevent new user registrations except by sysops
$wgWhitelistAccount = array ( "user" => 0, "sysop" => 1, "developer" => 1 );
$wgGroupPermissions['*']['createaccount'] = false;
 
# Spezialgruppe Autor  
$wgGroupPermissions['autor']['emailconfirmed'] = true;
$wgGroupPermissions['autor']['createpage'] = true;
$wgGroupPermissions['autor']['createpage'] = true;
$wgGroupPermissions['autor']['createtalk'] = true;
$wgGroupPermissions['autor']['createtalk'] = true;
$wgGroupPermissions['autor']['edit'] = true;
$wgGroupPermissions['autor']['edit'] = true;
$wgGroupPermissions['autor']['read'] = true;
$wgGroupPermissions['autor']['read'] = true;
$wgGroupPermissions['autor']['upload'] = true;
$wgGroupPermissions['autor']['upload'] = true;
$wgGroupPermissions['autor']['move'] = true;
$wgGroupPermissions['autor']['move'] = true;
 
 
 
 
# Spezialgruppe SalzWiki
# Spezialgruppe SalzWiki
$wgGroupPermissions['SalzWiki']['emailconfirmed'] = true;
$wgGroupPermissions['SalzWiki']['emailconfirmed'] = true;
$wgGroupPermissions['SalzWiki']['createpage'] = true;
$wgGroupPermissions['SalzWiki']['createpage'] = true;
$wgGroupPermissions['SalzWiki']['createtalk'] = true;
$wgGroupPermissions['SalzWiki']['createtalk'] = true;
$wgGroupPermissions['SalzWiki']['edit'] = true;
$wgGroupPermissions['SalzWiki']['edit'] = true;
$wgGroupPermissions['SalzWiki']['read'] = true;
$wgGroupPermissions['SalzWiki']['read'] = true;
$wgGroupPermissions['SalzWiki']['move'] = true;
$wgGroupPermissions['SalzWiki']['move'] = true;
 
 
$wgGroupPermissions['autor']['restrictusers'] = true; ##nur Autoren haben Zugriff auf special pages
$wgGroupPermissions['autor']['restrictusers'] = true; ##nur Autoren haben Zugriff auf special pages
</pre>
</pre>
 
=== Zugriff für Verzeichnis mit Bildern einschränken  ===
 
Standardmäßig kann in der Adresszeile des Browsers das Verzeichnis "images" aufgerufen werden, wodurch alle Dateien angezeigt und verfügbar werden. Um dies zu Verhindern ist eien Änderung wie folgt notwendig:
 
 
'''in der httpd.conf des Apache in ein "-" einzufügen'''
 
&lt;Directory "D:\xampp\apache\conf"&gt;
 
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #  Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options -Indexes FollowSymLinks Includes ExecCGI  // hier wurde ein "-" vor Indexces eingefügt


=== Zugriff für Verzeichnis mit Bildern einschränken  ===
= Software-Installationen =


Standardmäßig kann in der Adresszeile des Browsers das Verzeichnis "images" aufgerufen werden, wodurch alle Dateien angezeigt und verfügbar werden. Um dies zu Verhindern ist eien Änderung wie folgt notwendig:
== Programme unter Windows-Systemsteuerung ==


* GPL GhostScript 8.70
* ImageMagick 6.5.9-0 Q16 (2010-01-01)
* Microsoft .Net Framework 3.5 Language Pack SP1 - DEU
* Microsoft .Net Framework 3.5 SP1
* Microsoft .Net Framework 4.5.2
* Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148
* Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.61030
* MikTeX 2.8
* MSXML 4.0 SP2 (KB954430)
* MSXML 4.0 SP2 (KB973688)
* OggVideoTools Ogg Video Tools
* XAMPP 1.7.1


'''in der httpd.conf des Apache in ein "-" einzufügen'''
== Test-Software ==


&lt;Directory "D:\xampp\apache\conf"&gt;
Installationsdateien von ARisos (Juli 2009):


    #
* binutils-2.19.1-mingw32-bin.tar.gz
    # Possible values for the Options directive are "None", "All",
* gcc-ada-3.4.5-20060117-3.tar.gz
    # or any combination of:
* gcc-core-3.4.5-20060117-3.tar.gz
    #  Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
* gcc-g77-3.4.5-20060117-3.tar.gz
    #
* gcc-g++-3.4.5-20060117-3.tar.gz
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
* gcc-java-3.4.5-20060117-3.tar.gz
    # doesn't give it to you.
* gcc-objc-3.4.5-20060117-3.tar.gz
    #
* MinGW.exe
    # The Options directive is both complicated and important. Please see
* mingw.ini
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
* mingw.ini.old
    # for more information.
* mingw32-make-3.81-20080326-2.tar.gz
    #
* mingwrt-3.15.2-mingw32-dev.tar.gz
    Options -Indexes FollowSymLinks Includes ExecCGI  // hier wurde ein "-" vor Indexces eingefügt
* w32api-3.13-mingw32-dev.tar.gz


[[Category:Administration]]
[[Category:Administration]]

Aktuelle Version vom 25. Februar 2019, 15:35 Uhr

Dokumentation der Installation von "SalzWiki"


Allgemeines[Bearbeiten]

In dieser Dokumentation werden die Installation und Konfiguration des Salzwikis (3 Wikisysteme) und der Erweiterungen (Extensions) beschrieben. Aktuell ist Mediawiki Version 1.16.1 installiert. In Vorbereitung ist ein Update auf Version 1.23.10 LTS.

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 - Verzeichnisauflistungen verhindern[Bearbeiten]

Um Verzeichnisauflistungen für Browser zu verbieten, ist in der Datei "apache\conf\httpd.conf" folgende Konfiguration erforderlich:

Z.192ff

<Directory />
    Options -Indexes FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

Z.209ff

<Directory "D:/xampp/htdocs">
...
Options -Indexes FollowSymLinks Includes ExecCGI
...
AllowOverride All
...
Order deny,allow
Allow from all
</Directory>

Suchmaschinen[Bearbeiten]

robots.txt[Bearbeiten]

Hschwarz 28.07.2009: Damit die Wikis während der Erprobungsphase nicht von Suchmaschinen durchsucht werden können, wurde eine Datei
"robots.txt" in das htdocs-Verzeichnis gestellt.
Damit kein Robot irgendetwas liest:

User-agent: *
Disallow:

Robots.txt neu am 13.2.2011 zu Beginn der Freischaltung der 16er Version und angepasst am 01.03.2011 wegen Installation von "saltwiki": im Verzeichnis "htdocs"

  1. robots.txt für das Salzwiki: Robots sollen nur SalzWiki finden und keine Unterverzeichnisse und auch im Repositorium nicht lesen können:
User-agent: *

Disallow:/saltwiki/
Disallow:/salzwiki_1.16.1/bibtex/
Disallow:/salzwiki_1.16.1/bin/
Disallow:/salzwiki_1.16.1/config/
Disallow:/salzwiki_1.16.1/docs/
Disallow:/salzwiki_1.16.1/extensions/
Disallow:/salzwiki_1.16.1/images/
Disallow:/salzwiki_1.16.1/includes/
Disallow:/salzwiki_1.16.1/languages/
Disallow:/salzwiki_1.16.1/maintenance/
Disallow:/salzwiki_1.16.1/math/
Disallow:/salzwiki_1.16.1/serialized/
Disallow:/salzwiki_1.16.1/skins/
Disallow:/salzwiki_1.16.1/t/
Disallow:/salzwiki_1.16.1/tests/
Disallow:/de/salzwiki/bibtex/
Disallow:/de/salzwiki/bin/
Disallow:/de/salzwiki/config/
Disallow:/de/salzwiki/docs/
Disallow:/de/salzwiki/extensions/
Disallow:/de/salzwiki/images/
Disallow:/de/salzwiki/includes/
Disallow:/de/salzwiki/languages/
Disallow:/de/salzwiki/maintenance/
Disallow:/de/salzwiki/math/
Disallow:/de/salzwiki/serialized/
Disallow:/de/salzwiki/skins/
Disallow:/de/salzwiki/t/
Disallow:/de/salzwiki/tests/
Disallow:/repository_1.16.1/
Disallow:/repository/
Disallow:/repository-test/
Disallow:/repository-test02/
Disallow:/repository-test-20100712/
Disallow:/repository-Kopie/
Disallow:/salzwiki-test/
Disallow:/salzwiki-test02/
Disallow:/salzwiki-test16/
Disallow:/salzwiki-test-20100712/
Disallow:/Test/


Im Verzeichnis "salzWiki"

WM 1.23

# robots.txt für das Salzwiki: Robots sollen nur SalzWiki finden und keine Unterverzeichnisse lesen
User-agent: *
Disallow:/cache/
Disallow:/docs/
Disallow:/extensions/
Disallow:/images/
Disallow:/includes/
Disallow:/languages/
Disallow:/maintenance/
Disallow:/mw-config/
Disallow:/resources/
Disallow:/skins/
Disallow:/tests/

WM 1.16

# robots.txt für das Salzwiki: Robots sollen nur SalzWiki finden und keine Unterverzeichnisse lesen
User-agent: *
Disallow:/bin/
Disallow:/cache/
Disallow:/config/
Disallow:/docs/
Disallow:/extensions/
Disallow:/images/
Disallow:/includes/
Disallow:/languages/
Disallow:/maintenance/
Disallow:/math/
Disallow:/pres/
Disallow:/serialized/
Disallow:/skins/

Edit by Risos: Das Verhindern von Robots ist für Google eine "verdächtige" Seite und kommt in die Blacklist (im Firefox eine große rote Warnseite für den Anwender), da Google diese Seiten nicht ausspähen kann (Google zeigt auch bestimme Seiten gar nicht an, wenn sie Google nicht "gefallen"!). Dies ist wohl das Resultat der macht von Google durch uns. Abhilfe schafft hier die Einstellung im Firefox, dass man nicht auf verdächtige Seiten hingewiesen werden soll - doch wer weiß das schon?

Hier müsste es explizit jetzt und später mit einem resetteten Firefox getestet werden.

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 Datei "LocalSettings.php" wurde in den Verzeichnissen

  • salzwiki/
  • repository/
  • saltwiki/

folgendermaßen für E-Mail-Versand angepasst:

Salzwiki/Repositorium

## E-Mail-Versand angepasst 2016-01-15 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 2016-01-15 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]

  • 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
  • MW1.16 mit PHP5.6.14 erzeugt Warnung in Datei "includes\MagicWord.php" Z.560 wegen PCRE8.34+, siehe https://gerrit.wikimedia.org/r/#/c/103215/
  • MW1.16 mit PHP5.6.14 erzeugt Warnung wegen Datei "extensions\accesscontrol-1.1\AccessControl.php"
    • In Funktion "wfAccessControlExtension()" Z.60 auskommentieren: #$wgParser->disableCache();
    • In Datei "LocalSettings.php" hinzufügen: $wgEnableParserCache = false; $wgCachePages = false;
  • MW1.16 mit PHP5.6.14 erzeugt Warnung in Datei "extensions\ApprovedRevs\ApprovedRevs.hooks.php"
    • Z.230 Referenzen "&" bei "&$skin" und "&$contentActions" entfernern und Z.231 ergänzen "global ..., $skin, $contentActions;
    • Z.246 und Z.249 => if-Abfrage ergänzen mit "is_array($contentAccess) && "

XAMPP[Bearbeiten]

XAMPP 5.5.30/5.6.14.0[Bearbeiten]

  • PHP 5.5.30/5.6.14 + Pear, MS VC11 x86 32Bit ThreadSafe
  • MariaDB 10.0.17
  • Apache 2.4.17 Win32
  • phpMyAdmin 4.5.0.2
  • openSSL 1.0.2d

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
  • 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.

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).

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.

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"

SalzWiki[Bearbeiten]

Datenbank mittels XAMPP und phpmyAdmin anlegen:[Bearbeiten]

Bei der Mediawiki-Version 1.15 muss vor der Installation des Wikis zuerst für das jeweilige Wiki eine Datenbank angelegt werden.
Bei der Version 1.16.1 kann die jeweilige Datenbank während der Installation mittels Browser (/[wikiverzeichnis]/config/index.php) angelegt werden, sofern der Superuser-Account (Datenbank-Hauptadministrator) bekannt ist:

salzwiki[Bearbeiten]

salzwiki
Benutzer: SW_sawi 
Host: localhost 
Global Rechte: all privileges 
Grant: ja 
database table prefix: sw_

repository[Bearbeiten]

repository 
Benutzer: SW_repo 
Host: localhost 
Global Rechte: all privileges 
Grant: ja 
database table prefix: sr_

saltwiki[Bearbeiten]

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. 
// bei MW 1.23 nicht erforderlich
#$wgEnableCreativeCommonsRdf = true; // bei MW 1.16
$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.16
#$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/de/88x31.png"; 
// 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. 
// bei MW 1.23 nicht erforderlich
#$wgEnableCreativeCommonsRdf = true; 
$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.16
#$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png"; 
// 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

Das Design für das Salzwiki basiert wegen der Hintergrundgrafik und der links angeordneten Footer-Icons weiter auf dem Stil (Skin) "Monobook", obwohl er seit MW 1.17 von "Vector" als Standardstil abgelöst wurde. Dazu wird "Monobook" wegen der veralteten Auto-discovery-Funktion, die "Monobook" bei MW 1.23 LTS noch hat, als Kopie im Verzeichnis "skins/" als Unterverzeichnis "monobook_original/" gespeichert und die Datei "Monobook.php" als Kopie namens "Monobook_original_autodiscovery.php" in diesem Unterverzeichnis 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

"Vector" wird wegen der veralteten Auto-discovery-Funktion, die "Vector" bei MW 1.23 LTS noch hat, als Kopie im Verzeichnis "skins/" als Unterverzeichnis "vector_original/" gespeichert und die Datei "Vector.php" als Kopie namens "Vector_original_autodiscovery.php" in diesem Unterverzeichnis 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*/
}

MW 1.16

Das Design für das Salzwiki basiert auf dem Stil (Skin) "monobook". Dazu wird im Verzeichnis "skins/" das Verzeichnis "monobook/" sowie die Dateien "MonoBook.php" und "MonoBook.deps.php" kopiert und die Kopien umbenannt in "monobooksw" sowie in "MonoBookSW.php" und "MonoBookSW.deps.php".

In der Datei "MonoBookSW.php" werden dann alle Verweise und Bezeichnungen von "monobook" zu "monobooksw" geändert sowie die Klassennamen "SkinMonoBook" und "MonoBookTemplate" bei der Klassendefinition und den Klassenverwendungen geändert zu "SkinMonoBookSW" und "MonoBookSWTemplate".

Im Verzeichnis "monobooksw/" wird die Datei "headbg.jpg" durch ein eigenes Hintergrundbild mit gleichem Dateinamen ersetzt.
In der Datei "main.css" werden Anpassungen für Farben u. a. vorgenommen.

In der Datei "LocalSettings.php" heißt die entsprechende Zuweisung dann
$wgDefaultSkin = 'monobooksw';.

[Bearbeiten]

Die Datei für das Logo links oben ist hochzuladen und in der Datei "LocalSettings.php" zuzuweisen:

  • Salzwiki und Saltwiki
##Logo MW1.23
$wgLogo = $wgScriptPath."/images/common/Logo.png";
##Logo MW1.16
#$wgLogo = $wgStylePath."/common/images/Logo.png";
  • Repositorium
##Logo MW1.23
$wgLogo = $wgScriptPath."/images/common/Logo_Repo.png";
    1. Logo MW1.16
  1. $wgLogo = $wgStylePath."/common/images/Logo_Repo.png";

Fußzeile "Footer" anpassen[Bearbeiten]

Logos mit Verlinkung und Footerlinks anpassen MW 1.23[Bearbeiten]

Für Anpassungen in der Datei "MonoBookSW.php" siehe https://www.mediawiki.org/wiki/Manual:$wgFooterIcons und https://www.mediawiki.org/wiki/Manual:Footer.

  • Grafiken wie die Logos "HI.png", "HAWK.png" und "DFG.jpg" im Verzeichnis "[wikiverzeichnisname]/images/common/" speichern.

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;

In der Datei "MonoBook.php" werden die Texte von "lastmodified" und "CC-Lizenz" durch eigenen Code unter Zeile 154 herausgefiltert:

<?php
      foreach ( $validFooterLinks as $aLink ) { ?>
        <?php if($aLink!=="lastmod" && $aLink!=="copyright"){ /*eingefügt für HAWK HHG 2015-15-07*/ ?>
    <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?>
<?php   } /*eingefügt für HAWK HHG 2015-15-07*/
      }
?>

Original:

<?php
      foreach ( $validFooterLinks as $aLink ) { ?>
    <li id="<?php echo $aLink ?>"><?php $this->html( $aLink ) ?>
<?php
      }
?>

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;
}

Die Variable $wgCopyrightIcon 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['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;
}

Logos mit Verlinkung und Footerlinks anpassen MW 1.16[Bearbeiten]

  • Grafiken wie die Logos "Hornemann Institut", "HAWK", "DFG" und "CreativeCommons BY-NC_SA" im Verzeichnis "[wikiverzeichnisname]/skins/common/images/" speichern.
  • Änderungen in MonoBookSW.php: Zeile 213 - 239
</div><!-- end of the left (by default at least) column -->

<div class="visualClear"></div>
<div id="footer">
			
<!-- Logos der HAWK und des Hornemann Instituts zentral in den "Footer". Rudimentaere Anpassung der Bilder!! Zeitsparend-->

<?php
if($this->data['copyrightico']) { ?>
  <div id="f-copyrightico">
   <a href="http://www.hornemann-institut.de/">
    <img src="/[wikiverzeichnisname]/skins/common/images/HI.png" width=91 height=30>
   </a>
     
   <a href="http://www.hawk-hhg.de/">
    <img src="/[wikiverzeichnisname]/skins/common/images/HAWK.png" height=30 width=84>
   </a>
     
   <a href="http://www.dfg.de/">
    <img src="/[wikiverzeichnisname]/skins/common/images/dfg_logo_blau.jpg" height="30" width="85">
   </a>
  </div>
<?php }
if($this->data['poweredbyico']) { ?>
  <div id="f-poweredbyico"><?php $this->html('poweredbyico') ?></div>
<?php }
if($this->data['copyrightico']) { ?>
  <div id="f-poweredbyico"><?php $this->html('copyrightico') ?></div>
<?php }

  // Generate additional footer links, entfernt: "'lastmod',  'copyright',  'viewcount', 'numberofwatchingusers',"
  $footerlinks = array(
   'credits',
   'privacy', 'about', 'disclaimer', 'tagline', 'Hallo', 
  );
  $validFooterLinks = array();
  foreach( $footerlinks as $aLink ) {
   if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    $validFooterLinks[] = $aLink;
   }
  }
  if ( count( $validFooterLinks ) > 0 ) {
?>  <ul id="f-list">

"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.16 Datei "MonoBookSW.php"
  • MW 1.23 Datei "monobook.php"

MW 1.23

???

MW 1.16

<?php
      foreach( $validFooterLins as $aLink ) {
        if( isset($this->data[$aLink]) && $this->data[$aLink] ) {
          // "Projektverbund" eingefügt 2013-12-04 für HAWK HHG
          if($aLink=="about"){$this->data[$aLink] = str_replace("Forschungsverbund", "Projektverbund", $this->data[$aLink]);}
?>        <li id="<?php echo $aLink?>"><?php $this->html($aLink) ?></li>
<?php   } 
      }
?>

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'; 

Hierzu näheres unter http://webcache.googleusercontent.com/search?q=cache:H1KG7SKYpvoJ:100thpriest.appspot.com/www.mediawiki.org/wiki/Project:Support_desk+mediawiki+1.16.1+frame+warnung+anmelden&cd=3&hl=de&ct=clnk&gl=de&client=firefox-a&source=www.google.de

* 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]

Zugangsberechtigungen[Bearbeiten]

Spracheinstellungen[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";

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;
Berechtigung "restrictusers"[Bearbeiten]

Damit nur Autor/inn/en Spezialseiten lesen dürfen, im Verzeichnis "includes" in der Datei "SpecialPage.php" im Array "static public $mList" in zeile 187 bei der Array-Variablen "Specialpages" den Wert "restrictusers" einfügen:

'Specialpages' => array( 'UnlistedSpecialPage', 'Specialpages', 'restrictusers'),
Gruppe "Sicherheit"[Bearbeiten]

Diese Seite ist für die Benutzer der Gruppe "Sicherheit" zu sehen: "Listfiles" http://193.175.110.91/salzwiki_1.16.1__p/index.php/Spezial:Dateien

Hingegen andere Seiten dieser Kategorie "Medien" durch ein zusätzliches "block" nur von Admins gesehn werden können. So sieht die Konfiguration dann aus:

Datei "/includes/SpecialPage.php" ab Zeile 139:

## Edit: ", 'block' , 'Sicherheit'" am ende eingeführt! Risos 02.02.2012
# Media reports and uploads
'Listfiles'                 => array( 'SpecialPage', 'Listfiles', 'Sicherheit' ),
'Filepath'                  => array( 'SpecialPage', 'Filepath', 'block', 'Sicherheit' ),
'MIMEsearch'                => array( 'SpecialPage', 'MIMEsearch', 'block', 'Sicherheit' ),
'FileDuplicateSearch'       => array( 'SpecialPage', 'FileDuplicateSearch', 'block', 'Sicherheit'),
'Upload'                    => 'SpecialUpload',

Der Block ist dann übergeordnet und substituiert "Sicherheit" -> kann auch herausgenommen werden.

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:

Für die Navigation links (Sidebar), den Footer-Bereich und dergleichen gibt es folgende Weiterleitungen:

  • Bibliographie => :Special:BibMangerList
  • Hauptseite => :Willkommen im Salzwiki
  • Projektverbund => :Project:Projektverbund
  • Adm:ToDoListe => :Project:ToDo-Liste
  • Diskussion:Hauptseite => :Talk:Willkommen im SalzWiki
  • Hilfe:Variables => :Help:Magic words
  • Salzwiki:Über => :Über SalzWiki
  • Salzwiki:Über Salzwiki => :Project:Über SalzWiki

Sidebar anpassen (Wiki-Code, JS)[Bearbeiten]

Navigation links mit 2 Varianten[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.

Navigation links Standard-Variante[Bearbeiten]

Sichtbare Menüpunkte ohne JavaScript:

SalzWiki SaltWiki Repository
Navigation Navigation Navigation
Home Home Home
SalzWiki:Portal SaltWiki:Portal
Aktuelles News
Bibliographie Bibliography
Glossar Glossary
Redaktion Editorial Board
Autoren/innen Authors
Letzte Änderungen
Kontakt Contact Page
Hilfe Help
Other Wikis
SalzWiki
SaltWiki
Suche Search Search
Werkzeuge Toolbox Toolbox
Links auf diese Seite What links here What links here
Änderungen an verlinkten Seiten Related changes Related changes
Datei hochladen Upload file
Spezialseiten Special pages Special pages
Druckversion Printable version Printable version
Permanenter Link Permanent link
Andere Sprachen Languages
English German

Die Standardvariante ist zu erreichen über:
http://193.175.110.91/[wikiverzeichnis]/index.php/MediaWiki:Sidebar

<!-- Salzwiki -->
*navigation
**Mainpage|Home
**Salzwiki:Portal|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|mainpage-description
** portal-url|SaltWiki-Portal
** currentevents-url|currentevents
** Bibliography|Literature
** Glossary|Glossary
** special:contact|Contact
** recentchanges-url|recentchanges 
** helppage|help
* SEARCH
* TOOLBOX
*Languages
**http://www.salzwiki.de/|German

Navigation links Autor-Variante[Bearbeiten]

Sichtbare Menüpunkte ohne JavaScript:

SalzWiki SaltWiki Repository
Navigation Navigation Navigation
Home Home Home
SalzWiki:Portal SaltWiki:Portal Repository Portal
Aktuelles News News
VRE/Repositorium VRE/Repository Projects
Communication
Publication
Bibliographie Bibliography Bibliography
Glossar Glossary Glossary
Redaktion Editorial Board
Autor/inn/en Authors Authors' Contents
Letzte Änderungen Recent changes Recent changes
Kontakt Contact Page Contact Page
Hilfe Help Help
Autoren-Seiten Author Pages
Richtlinien/Übersichten Guidelines
Nutzungsrechte Rights Rights
Review Review
Kategorienbaum Category tree Category tree
Vorlagen Templates Templates
Other Wikis
SalzWiki
SaltWiki
Suche Search Search
Werkzeuge Toolbox Toolbox
Links auf diese Seite What links here What links here
Änderungen an verlinkten Seiten Related changes Related changes
Datei hochladen Upload file Upload file
Spezialseiten Special pages Special pages
Druckversion Printable version Printable version
Permanenter Link Permanent link Permanent link
Andere Sprachen Languages
English German

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|Home 
**SalzWiki:Portal|SalzWiki:Portal 
**Aktuelles|Aktuelles
**http://193.175.110.91/repository/index.php/Main_Page|VRE/Repositorium
**Spezial:Bibliographieeinträge_verwalten|Literatur  
**Glossar|Glossar
<!--**Autorenanmeldung|Autorenanmeldung-->
**Redaktion_Salzwiki|Redaktion
**special:contact|Contact
**recentchanges-url|recentchanges 
**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
**Review|Review
**Autoren|Richtlinien/Übersichten
**Kategorie|Kategorienbaum
**Vorlagen|Vorlagen
**Nutzungsrechte|Nutzungsrechte
<!--**sandkasten|Sandbox-->

*SEARCH 

*TOOLBOX

*Andere Sprachen
**http://www.saltwiki.net/|English
<-- Repositorium -->
*Research Environment
**Mainpage|Home
**Projekte|Projects
**Communication|Communication
**Publications|Publication
**Repository Portal|Repository Portal

<!--*Authors-->
* 
**News|News
**Special:BibManager_Overview|Bibliography
**Category:Author|Content
**terminology|Glossary
**Kategorienbaum|Category-tree
**Rights|Rights
**Vorlagen|Templates
**http://www.salzwiki.de/|SalzWiki
**http://www.saltwiki.net/|SaltWiki

*
**recentchanges-url|Recentchanges
**special:contact|contact
**help:Contents|help
<!--
*VRE
**laufende Projekte|Projekte
**Marktplatz|Marktplatz
**Publizieren|Publizieren
-->
*SEARCH

*TOOLBOX

*LANGUAGES
<-- Saltwiki -->
*navigation
**Mainpage|Home 
**Saltwiki:Community_portal|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
**special:contact|Contact
**recentchanges-url|recentchanges 
**helppage|help

* Author-Pages
**Authors_Page|Authors
**Review|Review
<!--** SIC|Online Journal: Salts in Conservation-->
**categories|Categorytree
**Templates|Templates
**Rights|Rights of Use 
<!--**sandbox|Sandbox-->

*SEARCH

*TOOLBOX
*Languages
**http://www.salzwiki.de/|German

Navigationsbereich "Werkzeuge" mit Nutzungsrechten versehen (Wiki-Code, JS)[Bearbeiten]

Die Sidebar im Bereich "Werkzeuge" wird mit Hilfe von Javascript und Eingriff in den Wiki-Code bei "includes/Skin.php" für alle Gruppen außer "autor", "admin" und "forschung" manipuliert.
Achtung: Funktioniert nur bei Browsern mit aktiviertem JavaScript und muss in "includes/Skin.php" nach jedem mediawiki-Update auf Vorhandensein überprüft werden!

  1. Die Erweiterung "JavaScript" einbinden - siehe hierzu weiter unten bei "Extensions/JavaScript".
  2. Die Datei "customizeSidebar.js" von S. Reher in das Extensions-Unterverzeichnis "JavaScript" kopieren und an die Sprachvariante anpassen - siehe ebenfalls bei "Extensions/JavaScript".
  3. Die Datei "include/Skin.php" für linke Navigation wie nachfolgend beschrieben anpassen.

Um die Navigation-Box anzupassen wurden folgende Änderungen an der "include/Skin.php" vorgenommen:

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;
<!--MW1.16-->
global $wgLang, $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.

Ü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, siehe https://phabricator.wikimedia.org/T27563. Dazu wird von der Datei eine Kopie "httpFunctions_original.php" gespeichert. Danach wird folgender Code eingefügt:
    • für die Mediawiki-Version 15.3:
--- HttpFunctions.php	2009-01-08 07:56:11.000000000 +0100
+++ HttpFunctions_new.php	2010-11-01 11:47:57.000000000 +0100
@@ -78,6 +78,65 @@
 				}
 			}

+		  global $wgAuthenticatedRepository, $wgAuthenticatedRepositoryUser, $wgAuthenticatedRepositoryPassword, $wgShowAuthenticatedRepositoryError;
+      $text = '';
+			if ( $wgAuthenticatedRepository ) {
+			  require_once 'extensions/Snoopy-1.2.4/Snoopy.class.php';
+        $index = '';
+        $login = '';
+			  
+			  $wikiPath = "";
+			  if (!preg_match('/(.*)\/index.php\/(.*)\?(.*)/', $url, $matches)) {
+			      echo "nicht gefunden";
+			  } else {
+			      $wikiPath = $matches[1];
+			  }
+			  
+			  $apiPath = "$wikiPath/api.php";
+			  $indexPath = "$wikiPath/index.php";
+			  $title = $wgTitle->mPrefixedText;
+			  			  		
+			  $snoopy = new Snoopy;
+			  	  
+			  $request_vars = array('action' => 'login', 'lgname' => $wgAuthenticatedRepositoryUser, 'lgpassword' => $wgAuthenticatedRepositoryPassword, 'format' => 'php');
+			  if(!$snoopy->submit($apiPath, $request_vars))
+			          die("Snoopy error: {$snoopy->error}");
+			  
+			  // We're only really interested in the cookies
+			  $snoopy->setcookies();
+			  $token = unserialize($snoopy->results);
+        $error = true;
+			  $token2 = array();
+			  
+			  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))
+  			          die("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 ) $text = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
+			  }
+			  
+			  
+			  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))
+  			          die("Snoopy error: {$snoopy->error}");
+  			  $text = $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 ) $text = "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 ) $text = "Wrong or no User for <i>wgAuthenticatedRepositoryUser</i> in the LocalSetting.<br/>";
+        }
+			}
+			else 
+			{
 			ob_start();
 			curl_exec( $c );
 			$text = ob_get_contents();
@@ -97,6 +156,7 @@
 				$text = false;
 			}
 			curl_close( $c );
+			}
 		} else {
 			# Otherwise use file_get_contents...
 			# This doesn't have local fetch capabilities...
    • 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.

  • 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)
  • 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


Alle anderen Vorlagen wurden beim Einbinden der Hilfeseiten bzw. Extensions eingestellt.

XEB Extra Edit Buttons (Wiki-Code, JS)[Bearbeiten]

Achtung: Funktioniert nur bei Browsern mit aktiviertem JavaScript und muss bei "MonoBook.php", "EditPage.php", "extraeditbutton.js" und "live.css" nach jedem mediawiki-Update auf Vorhandensein und Änderungen überprüft werden!

Weitere Nachteile, die sich aus den Angaben der offiziellen Info-Seite ergeben:

  • nicht mehrsprachig
  • setzt Installation in Nutzungskonten bei Wikipedia oder auf eigenem Server voraus

Siehe auch https://en.wikipedia.org/wiki/User:MarkS/Extra_edit_buttons und http://meta.wikimedia.org/wiki/Help_talk:Edit_toolbar; hier können noch weitere eigene Funktionen implementiert werden.

Die Funktionen bzw. verfügbaren Schaltflächensymbole des Editors wurden durch nachfolgenden Code in der Datei "/includes/EditPage.php" erweitert. Die Dateien "MonoBook.php", "extraeditbuttons.js" und "live.css" waren für die Erweiterung des Editors unerheblich.

Die im Code benannten Bilder "Button_[...].png" sind im Verzeichnis skins/common/images/" zu speichern.

Den Code im Verzeichnis "includes" in der Datei "EditPage.php" bei der Array-Variablen "$Toolarray" (ab Zeile 2110) am Ende einfügen (Z. 2210) - Komma nicht vergessen!.

			,
			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 "includes" 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:

  1. "ADM" bzw. "Access": "ADM" bei Salzwiki und Saltwiki, "Access" bei Repository) für Dokumente der Administratoren, den nur diese bearbeiten können,
  2. "Bearbeitung": nur bei Saltwiki zum erstmaligen Erstellen von Dokumenten, die kein Leser sehen soll
  3. "Literature": für die Bibliographie - Achtung: Bei der Zuweisung in $wgExtraNamespaces ist ein Leerzeichen vor "_talk"!
  4. "SalzeImPorenraum": nur bei Repository
  5. "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

JavaScript[Bearbeiten]

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.

Diese Erweiterung dient 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.

Installation von "JavaScript.php"

  • Quelltext der Erweiterung "JavaScript" unter "http://www.mediawiki.org/wiki/Extension:Javascript -> Download" kopieren
  • Code am Ende mit "?>" ergänzen und speichern unter "extensions/JavaScript/JavaScript.php"
  • In der Datei "LocalSettings.php" einfügen:
include("$IP/extensions/JavaScript/JavaScript.php");

Code-Anpassungen in der Datei "JavaScript.php"

Die Erweiterung in der Version 2.1.3 für "saltwiki" hat zusätzlichen Code für CSS (StyleSheets). Die Erweiterung in der Version 2.1.1 funktionierte in "salzwiki" leider nicht out of the box. Deshalb wurden von S. Reher (25.07.2010) Änderungen vorgenommen. In der Datei "JavaScript.php" werden die Zeilen 33 bis 34 auskommentiert:

 #$file = preg_replace( "|^.*/extensions/|", "$wgScriptPath/extensions/", $file );
 #$out->addScript( "<script src='$file' type='$wgJsMimeType'></script>" );

Stattdessen werden die folgenden Zeilen hinzugefügt, um auf dem Window-System die Pfade korrekt anzupassen:

  $slashPos = strpos('/',$wgScriptPath);
  if ($slashPos==0) $wgScriptPath_tmp = substr_replace($wgScriptPath ,"",0, 1);
  $file = str_replace('\\','/', $file);
  $pos = strpos($file, $wgScriptPath_tmp);
  $length = strlen($file)-$pos;
  $file = substr($file, $pos, $length);
  $out->addScript( "<script src='/$file' type='$wgJsMimeType'></script>" );

Das Javascript lädt alle Dateien aus dem Verzeichnis, in diesem Falle die Datei "customizeSidebar.js".

Code-Anpassungen in der Datei "customizeSidebar.js"

Die Funktion "CustomizeModificationsOfSidebar()" entfernt mittels der nachfolgenden Zeilen Einträge aus dem Werkzeug-Kasten.

Deutsche Version:

  ModifySidebar("remove", "toolbox", "Hochladen", wgServer+"/repository/index.php/Spezial:Hochladen");
  ModifySidebar("remove", "toolbox", "Änderungen an verlinkten Seiten", wgServer+wgScriptPath+"/index.php/Spezial:%C3%84nderungen_an_verlinkten_Seiten");
  ModifySidebar("remove", "toolbox", "Links auf diese Seite", wgServer+wgScriptPath+"/index.php?/Special:WhatLinksHere/Main_Page");
  ModifySidebar("remove", "toolbox", "Permanentlink", wgServer+wgScriptPath+"/index.php?title=Salztransportmodellierung&oldid=1658");
  ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Spezial:Spezialseiten");

Englische Version:

  ModifySidebar("remove", "toolbox", "Hochladen", wgServer+"/repository/index.php/Special:Upload");
  ModifySidebar("remove", "toolbox", "Änderungen an verlinkten Seiten", wgServer+wgScriptPath+"/index.php/Special:RecentChangesLinked");
  ModifySidebar("remove", "toolbox", "What links here", wgServer+wgScriptPath+"/index.php?/Special:WhatLinksHere/Main_Page");
  ModifySidebar("remove", "toolbox", "Permanentlink", wgServer+wgScriptPath+"/index.php?title=Salztransportmodellierung&oldid=1658");
  ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Special:SpecialPages");

Wann dies aktiv wird, wird über die folgenden Zeilen geregelt:

/*if the user is not autor or admin, there should be displayed only necessary links*/
if (isArray(wgUserGroups)) {
  if (wgUserGroups.Contains('autor') || wgUserGroups.Contains('Administrators') || wgUserGroups.Contains('forschung')) {
    /*Nothing*/
  }
  else {
    /*Administrators,autor,sysop,*,user,autoconfirmed*/
    /*alert(wgUserGroups);*/
    addOnloadHook(CustomizeModificationsOfSidebar);
  }
}
/*if the user is guest, there should be displayed only necessary links*/
if (wgUserName == null) {
  addOnloadHook(CustomizeModificationsOfSidebar);
}

AccessControl[Bearbeiten]

Für MW 1.23 wird AccessControl v2.4 und für MW 1.16 wurde AccessControl v1.1 verwendet.

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.5 für MW 1.23[Bearbeiten]

  • Die Extension wird heruntergeladen und nach dem Extrahieren in das Verzeichnis "extensions" kopiert.
  • Einfügen in Datei "LocalSettings.php":
require_once("$IP/extensions/AccessControl/AccessControl.php");

PHP erzeugt eine Meldung "Notice: Undefined varibale: rights ... on line 225". Es fehlt bei $rights wie bei $allow die Abfrage "isset(...)".

Die Datei "AccessControl.php" ist zur Verhinderung von php-Warnungen wie folgt zu bearbeiten:
In Zeile 173 "if(is_array($allow)){" mit "isset($allow) &&" und in Zeile 225 "if(is_array($rights)){" mit "isset($rights) ergänzen:

if(isset($allow) && is_array($allow)){

AccessControl v1.1 für MW 1.16[Bearbeiten]

  • Die Extension wird heruntergeladen und nach dem Extrahieren in das Verzeichnis "extensions" kopiert.
  • Einfügen in Datei "LocalSettings.php":
require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");

Die Datei "AccessControl.php" ist wie folgt zu bearbeiten:
In Zeile 68 das & bei "&$parser" entfernen, damit es nicht zu Problemen zwischen den Extensions "AccessControl" und "DymanicPageList" kommt:

function doControlUserAccess( $input, $argv, &$parser ) {

In Zeile 193 "if(is_array($allow)){" zur Verhinderung einer php-Warnung mit "isset($allow) &&" ergänzen:

if(isset($allow) && is_array($allow)){

Einrichten einer Nutzungsgruppe[Bearbeiten]

Eine Gruppe von Usern, die alleine Zugang auf bestimmte Seiten haben soll, wird 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 Extension wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki bzw. Saltwiki kopiert; im Repositorium wurde die Erweiterung noch nicht installiert.
  • Es wird eine Datenbank-Tabelle mit dem Präfix "sw_" und dem Namen "approved_revs" angelegt. 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
require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" );
Approved Revs-1.jpg

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;
}

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]

include("$IP/extensions/DynamicPageList3/DynamicPageList.php");

MediaWiki 1.16[Bearbeiten]

include("$IP/extensions/DynamicPageList/DynamicPageList2.php");

Zur Funktionsweise und den umfangreichen Einsatzmöglichkeiten siehe auch http://semeb.com/dpldemo/index.php?title=Main_Page.

BibManager[Bearbeiten]

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. Die Erweiterung "BibManager" wird in den Ordner "\extensions\BibManager\" kopiert.

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]' );

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%.'
);

Spezialseiten-Gruppe[Bearbeiten]

Von den zu ändernden Dateien ist nach den Anpassungen jeweils eine Kopie mit dem Suffix "SW" im Dateinamen zu speichern, um nach Updates von MediaWiki oder Erweiterungen die Änderungen übernehmen zu können.

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]

Falscher Text nach Löschvorgang

Nachdem ein Eintrag gelöscht wurde, erscheint "Ihre Daten wurden erfolgreich gespeichert!".

In der Datei "BibManagerDelete_body.php" in Z.90 wird fälschlicherweise "bm_success_save-complete" verwendet. Da es kein Text-Element "bm_success_delete" gibt, muss es in der Datei "BibManager.i18n.php" 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.

//BibManager.i18n.php
//Z.149f
$messages['de'] = array (
  '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>Die Daten wurden erfolgreich gelöscht!</strong></div><div class="visualClear" id="mw-pref-clear"></div>',
...
);
//Z.295f
$messages['de-formal'] = array (
  '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>Die Daten wurden erfolgreich gelöscht!</strong></div><div class="visualClear" id="mw-pref-clear"></div>',
...
);
//Z.442f
$messages['en'] = array (
  '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>',
...
);
//BibManagerDelete_body.php Z.89f
if ( $result === true ) {
  $wgOut->addHtml( wfMsg( 'bm_success_delete') ); #wfMsg( 'bm_success_save-complete')
  ...
}

Fehler im HTML-Code korrigieren

Bei der BibManager-Übesicht wird für jede Tabellenzeile ein statt eines erzeugt. 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

Scrollbalken horizontal wegen Verweisen rechts für "edit" und "delete"

In der BibManager-Übersicht sind weit rechts Text-Hyperlinks für "edit" und "delete", weshalb ein horizontaler Scrollbalken vorhanden ist. Es sind in 2 Dateien Anpassungen vorzunehmen:

  • "\extensions\BibManager\client\BibManagerCommon.css"
  • "\extensions\BibManager\includes\BibManagerPagerList.php"

Bei "BibManagerCommon.css" in Zeile 64 einen Kommentar einfügen und in Zeile 68 "text-indent: 9999px" ersetzen durch "height: 15px;"

/* geändert wg. BibManager-Bug mit Scrollbalken und Linktext rechts 2013-01-21 G. Werner */
#bm_table a.icon {
  ...
  height: 15 px; /*text-indent: 9999px;*/
  ...
}

Bei "BibManagerPagerList.php" ab Zeile 101 Kommentare einfügen und "wfMsg"-Funktionen, die nicht in Datei "\includes\BibManagerFieldsList.php" definiert sind, ersetzen durch leeren String:


if ($wgUser->isAllowed('bibmanageredit')){
  // geändert wg. BibManager-Bug mit Scrollbalken und Linktext rechts 2013-01-21 G. Werner
  $editLink = $wgUser->getSkin()->link(
    SpecialPage::getTitleFor( 'BibManagerEdit' ),
    '', /*wfMsg( 'bm_list_table_edit' ),*/
    array (
      ...
    ),
  );
}

if ($wgUser->isAllowed('bibmanagerdelete')){
  // geändert wg. BibManager-Bug mit Scrollbalken und Linktext rechts 2013-01-21 G. Werner
  $deleteLink = $wgUser->getSkin()->link(
    SpecialPage::getTitleFor( 'BibManagerDelete' ),
    '', /*wfMsg( 'bm_list_table_delete' ),*/
    array (
      ...
    ),
  );
}

Fehlermeldung anpassen[Bearbeiten]

Fehlermeldung korrigieren Bei der BibManager-Übesicht im Einleitungstext wird auf 2 Seiten für "neu anlegen" und "importieren" verlinkt, aber für nicht autorisierte User die Fehlermeldung "Diese Aktion kann auf diese Seite nicht angewendet werden" angezeigt. Damit angezeigt wird "Du hast|Sie haben nicht die erforderliche Berechtigung für diese Aktion", müssen im Verzeichnis "BibManager\specialpages\" die Dateien "bibManagerCreate_body.php" in Zeile 19 und "bibManagerImport_body.php" in Zeile 18 geändert werden:

if (!$wgUser->isAllowed('bibmanager[create|edit]')){
  // geändert 2012-06-08 Gunnar Werner
  #$wgOut -> showErrorPage('error','badarticleerror');
  $wgOut -> showErrorPage('error','badaccess-group0');
  return true;
}

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

Bibliography[Bearbeiten]

Die Extension Bibliography wurde durch die Erweiterung BibManager ersetzt. Siehe hierzu unter "Erweiterungen - BibManager".


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.
  • 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" );

CategoryTree[Bearbeiten]

Die Extension dient zur Darstellung der Kategorienbäzme, damit schnell den Artikeln und Dokumenten die richtigen Kategorien zugewiesen werden können.

$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen
require_once("{$IP}/extensions/CategoryTree/CategoryTree.php"); 

Cite[Bearbeiten]

Dient zum Erstellen von Fußnoten in SalzWiki Artikeln.

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.


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

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:

require( "$IP/extensions/OggHandler/OggHandler.php" );
$wgFFmpegLocation = 'd:\ffmpeg-wiki\bin\ffmpeg';

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.

require_once("$IP/extensions/SVGtag.php");

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.

Die Extension Terminology dient zum Erstellen eines Glossars.
Um Verwirrungen zu vermeiden wurde 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
require_once("$IP/extensions/terminology.php");

Wird seit 2010 nicht mehr weiterentwickelt. Stattdessen wird die Erweiterung "Lingo" empfohlen: http://www.mediawiki.org/wiki/Extension:Lingo

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.

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.

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;

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).

require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
$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;

$wgCaptchaTriggers['edit']          = true; 
$wgCaptchaTriggers['create']        = true; 
$wgCaptchaTriggers['addurl']        = true; 
$wgCaptchaTriggers['createaccount'] = true;
$wgCaptchaTriggers['badlogin']      = true;

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:
require_once( "$IP/extensions/ConfirmEdit/QuestyCaptcha.php" );
$wgCaptchaClass = "QuestyCaptcha";
$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) );
$wgCaptchaQuestions[] = array( 'question' => 'The taste of salt is neither bitter nor sweet nor sourish but …', 'answer' => '***' );
$wgCaptchaQuestions[] = array('question' => '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) );
#$wgCaptchaQuestions[] = array('question' => 'Please write the magic secret, "salt", here:', 'answer' => '***');
#$wgCaptchaQuestions[] = array('question' => 'Type the code word, 8eight8, here:', 'answer' => '***');

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. 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)
  • Für MediaWiki 1.16 in der Übersetzungsdatei "ContactPage.i18n.php" bei der deutschen Du-Variante die "Sie"-Bezeichnungen durch "Du"-Bezeichnungen ersetzen und am Anfang der Sprachvariante im Kommentar @author mit Datum ergänzen.
  • 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
    • Für MediaWiki 1.16 im Verzeichnis "[wikiverzeichnis]\languages\messages\" aus der Datei "MessagesDE.php" aus Zeile 2111 in Datei "MessagesDe_formal.php" in Zeile 411 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"
  • MW1.16 "[wikiverzeichnis]\languages\messages\MessagesDE_formalSW.php"

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' => 'BHentschel', //'WikiUser' // Must be the name of a valid account //vormals $wgContactUser
  'SenderName'=> 'Kontaktformular ' . $wgSitename, // "Contact Form on" needs to be translated //vormals $wgContactSenderName
  'SenderEmail'=> 'hentschel@hornemann-institut.de', //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'=> true, // 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', //'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.
);
$wgCaptchaTriggers['contactpage'] = true;
// für MediaWiki 1.16
require_once( "$IP/extensions/ContactPage/ContactPage.php" );

#$wgContactUser = 'HSchwarz';
#$wgContactSender = $wgPasswordSender;
$wgContactUser = 'Bhentschel'; // muss als User-Name im Wiki existieren
$wgContactSender = [E-Mail-Adresse von $wgContactUser]; // User muss E-Mail eingetragen, bestätigt und E-Mail-Empfang von Anderen erlaubt haben
$wgContactSenderName = 'Contact Form SalzWiki ' . $wgSitename;
$wgCaptchaTriggers['contactpage'] = true;

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.


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.

Die Extension für MW 1.15 wird bei http://www.mediawiki.org/wiki/Extension:SpecialInterwiki 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.

Eingabe von Formeln mittels Tex (Wiki-Code)[Bearbeiten]

Damit z.B mathematische und auch chemische Formeln dargestellt werden können, wird in Mediawiki TEX benutzt. Nach jedem mediawiki-Update muss die Datei "includes/Math.php" auf Windows-Kompatibilität überprüft werden!

Die tatsächliche Installation eines Tex-Systems erfolgte 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:

  1. GhostScript im Unterverzeichnis "ghostscript/" für alle User installieren
    1. aus dem Unterverzeichnis "bin/" die Datei "gswin32c.exe" kopieren und die Kopie umbenennen zu "gs.exe"
    2. Im ServerManager bei "Systemeigenschaften ändern/Erweitert/Umgebungsvariablen" die Systemvariable "path" erweitern mit "D:\texmf\ghostscript\gs8.70\bin;"
  2. ImageMagick im Unterverzeichnis "imagick/" installieren
    1. ImageMagick-6.5.9-0-Q16.dll (bei vorhandener Windows-Server-Konfigurationsberechtigung), sonst "static" (nur XAMPP-Zugriffsberechtigungen), inkl. "Desktop-Icon", "zum Systempfad hinzufügen" und "header für C/C++ Developement"
    2. Testen mit der "Eingabeaufforderung/Konsole" durch Eingabe von
      • convert logo: logo.miff [=>Enter drücken]
      • imdisplay logo.miff [=>Enter drücken]
      • = > ein Bild soll angezeigt werden
    3. Für PHP 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"
    4. In der Datei "php.ini" im Bereich Windows Extensions die Datei "php_imagick_dyn_Q16.dll" einbinden:
      extension=php_imagick_dyn_Q16.dll
  3. Im Verzeichnis "D:\texmf\" ein Unterverzeichnis "miktex" erstellen
  4. Für Sophos-Antivirus eine Ausnahme festlegen:
    Konfigurieren->On-Access-Überprüfung->Ausnahmen -> "D:\texmf\Miktex\" hinzufügen
  5. MikTex im Unterverzeichnis "miktex/" installieren
  6. 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".
  7. 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]

  1. 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.
  2. install the static (to be sure dependencies are embed) binary of ImageMagick in D:\texmf\imagick (ensure there are no spaces in the path you choose) - No: We installed the dynamic version wih administrator rights.
  3. install AFPL GhostScript bzw. GhostScript bzw. GhostScript in D:\texmf\ghostscript
  4. 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)
  5. 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)
  6. 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!
  7. open a command line (start -> execute -> cmd.exe)
  8. verify that the following commands are working:
    latex
    dvips
    convert (not the microsoft convert)
    gs
  9. [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.

Repositorium[Bearbeiten]

Zur Installation wurden fogende Einstellungen und Extensions eingestzt:

Datenbank mittel XAMPP und phpmyAdmin anlegen[Bearbeiten]

Es muss vor der Installation zuerst eine Datenbank angelegt werden.

database name: repository datbase table prefix: sr_

Benutzer: hschwarz

Host: localhost

Global Rechte: all privileges

Grant : ja

Mediawiki Installieren[Bearbeiten]

Nach Installationsanweisung mit folgenden Namen: : Repository

http://193.175.110.91/repository/index.php/Main_Page


Lizenz für das Repositorium[Bearbeiten]

Einfügen in LocalSettings.php

$wgEnableCreativeCommonsRdf = true;
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "http://creativecommons.org/licenses/by-nc-sa/3.0/";
$wgRightsText = "Attribution-Noncommercial-Share Alike 3.0 Unported";
$wgRightsIcon = "http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png";
# $wgRightsCode = "[license_code]"; # Not yet used

Style/Skin[Bearbeiten]

siehe oben bei "SalzWiki

Logo[Bearbeiten]

Die Datei für das Logo ist noch hochzuladen und einzufügen in LocalSettings.php:

## The relative URL path to the logo.  Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
$wgLogo = "$wgStylePath/common/images/Logo_Repo.png";

Logos mit Verlinkung (und Footerlinks angepasst)[Bearbeiten]

Änderungen in MonoBookSW.php: Zeile 213 - 239

 	<!-- end of banner1 -->
		</div><!-- end of the left (by default at least) column -->

			<div class="visualClear"></div>
			<div id="footer">
			
<!-- Logos der HAWK und des Honrmanninstitues zentral in den footer. Rudimentaere Anpassung der Bilder!! Zeitsparend-->

<?php
		if($this->data['poweredbyico']) { ?>
				<div id="f-poweredbyico"><?php $this->html('poweredbyico') ?></div>
<?php 	}
		if($this->data['copyrightico']) { ?>
				<div id="f-poweredbyico"><?php $this->html('copyrightico') ?></div>
<?php 	}
		if($this->data['copyrightico']) { ?>
				<div id="f-copyrightico">
				<a href="http://www.hornemann-institut.de/">
				<img src="/[repository_1.16.1]/skins/common/images/HI.png" width=91 height=30>
				</a>
				   
				<a href="http://www.hawk-hhg.de/">
				<img src="/[repository_1.16.1]/skins/common/images/HAWK.png" height=30 width=84>
				</a>
				</div>
<?php	}

		// Generate additional footer links "'copyright',  'viewcount', 'numberofwatchingusers'," entfernt!
		$footerlinks = array(
			'lastmod',  'credits',
			'privacy', 'about', 'disclaimer', 'tagline', 'Hallo', 
		);
		$validFooterLinks = array();
		foreach( $footerlinks as $aLink ) {
			if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
				$validFooterLinks[] = $aLink;
			}
		}
		if ( count( $validFooterLinks ) > 0 ) {
?> 			<ul id="f-list">

Favicon[Bearbeiten]

Damit ein Favicon dargestellt wird, ist die datei in das Verzeichnis "../repository" hochzuladen und folgender Eintrag in den localsettings.php vorzunehmen:

$wgFavicon="/repository/SalzWiki.ico";

Lizenzvorlagen[Bearbeiten]

Vorlagen = Templates finden sich beispielhaft auf der Seite Vorlagen dargestellt. Die einzelnen Vorlagen sind im Namensraum Vorlagen zu finden.

"Kategorie:Lizenzenvorlagen" erstellt.


Lizenzen 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)

Extensions[Bearbeiten]

AccessControl[Bearbeiten]

  • Die Extension wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki kopiert.
  • Einfügen in LocalSettings:
 require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");

Der Zugang auf eine Seite wird durch Eingabe einer Nutzergruppe erlaubt, die vorher z.B. in den local settiongs definiert werden kann.

<accesscontrol>SalzWiki</accesscontrol>  : Zugang nur für Mitglieder der Gruppe SalzWiki

Siehe dazu auch wie z.B. http://www.mediawiki.org/wiki/Extension:AccessControl

Approved_Revs[Bearbeiten]

Diese Erweiterung wurde entsprechend den Anweisungen unter SalzWiki #Approved_Revs installiert.

Als Prefix für die Datenbank ist dabei sr_ zu benützen.

In den Localsettings.php wurde eingefügt:

##Erlaubt das Freischalten zum Lesen von einer älteren Version Schwarz 04.04.2011
require_once("$IP/extensions/ApprovedRevs/ApprovedRevs.php");

$wgGroupPermissions['sysop']['approverevisions'] = true;
$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;

DynamicPagesList[Bearbeiten]

include("$IP/extensions/DynamicPageList/DynamicPageList2.php");

Zur Funktionsweise und den umfangreichen Einsatzmöglichkeiten siehe auch http://semeb.com/dpldemo/index.php?title=Main_Page.

OggHandler[Bearbeiten]

Die Erweiterung wird ab Mediawiki 1.24 nicht mehr unterstützt; empfohlen wird die Erweiterung "TimedMediaHandler".

Dient zum Darstellen von Videodateien in SalzWiki Artikeln. Da es sich beim OGG-Format um ein freies Format hat, 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)

require( "$IP/extensions/OggHandler/OggHandler.php" );
$wgFFmpegLocation = 'd:\ffmpeg-wiki\bin\ffmpeg';

Hilfeseiten[Bearbeiten]

Deutsche und Englische Hilfeseiten von Wikimedia importiert (Risos 20.08.09) (Aktualisiert)

Hilfe:Contents | Hilfe/Contents/de |(einige Bilder fehlen noch)

Templates der Hilfeseiten Korrigiert, Bilder unter Beachtung der Lizenzen hochgeladen


Javascript[Bearbeiten]

Die Erweiterung dient dazu, den Navigationsbereich "Werkzeuge" entsprechend dem Anmeldestatus zu manipulieren. Siehe hierzu Sidebar anpassen.

include("$IP/extensions/JavaScript/JavaScript.php");

Die Erweiterung funktionierte leider nicht out of the box. Folgende Änderungen wurden von S. Reher (25.07.2010) vorgenommen:

Ab Zeile 32 wurden in der JavaScript.php die folgenden Zeilen hinzugefügt; dies dient dazu auf dem Window-System die Pfade korrekt anzupassen:

 $slashPos = strpos('/',$wgScriptPath);
 if ($slashPos==0) $wgScriptPath_tmp = substr_replace($wgScriptPath ,"",0, 1);
 $file = str_replace('\\','/', $file);
 $pos = strpos($file, $wgScriptPath_tmp);
 $length = strlen($file)-$pos;
 $file = substr($file, $pos, $length);
 $out->addScript( "<script src='/$file' type='$wgJsMimeType'></script>" );

Das Javascript lädt alle Dateien aus dem Verzeichnis, in diesem Falle die Datei "customizeSidebar.js". Das Javascript entfernt aufgrund der folgenden Zeilen Einträge aus dem Werkzeug-Kasten:

ModifySidebar("remove", "toolbox", "Spezialseiten", wgServer+wgScriptPath+"/index.php/Spezial:Spezialseiten");

Wann dies aktiv wird, wird über die folgenden Zeilen geregelt:

/*if the user is not autor or admin, there should be displayed only necessary links*/
if ( wgUserGroups.Contains('autor') || wgUserGroups.Contains('Administrators') || wgUserGroups.Contains('forschung')) {
/*if the user is guest, there should be displayed only necessary links*/
if (wgUserName == null) {

SaltWikiUpload[Bearbeiten]

Die Erweiterung "SaltWikiUpoload" modifiziert das Upload-Formular im Repositorium, sodass die Eingabe von Metadaten deutlich einfacher vonstatten geht und auch vom System her schon die richtigen "Katergorien" angelegt werden. Eine Verifizierung einzelner Felder findet statt.

Die Erweiterung wird dazu in den Ordner "extensions" kopiert.

In die "localsettings.php" ist einzufügen:

    1. enable new upload extension

require_once("$IP/extensions/SaltWikiUpload/SaltWikiUpload.php");

    1. Extension AccessControl (Risos 07.07.10)

require_once("$IP/extensions/accesscontrol-1.1/AccessControl.php");

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 Extension wird bei http://www.mediawiki.org/wiki/Extension:SpecialInterwiki heruntergeladen und in ...Extensions/Interwiki extrahiert.

In die "localsettings" eines jeden Wiki's ist dann einzufügen:

require_once("$IP/extensions/Interwiki/SpecialInterwiki.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

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.

Die Extension Terminology dient zum Erstellen eines Glossars. Um Verwirrungen zu vermeiden, wurde die Datei in der alles gespeichert wird von Terminology in Glossar umbenannt. Nur in SalzWiki!!

require_once( "$IP/extensions/terminology.php" );

CategoryTree[Bearbeiten]

Die Extension dient zur Darstellung der Kategorienbäzme, damit schnell den Artikeln und Dokumenten die richtigen Kategorien zugewiesen werden können.

$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen
require_once("{$IP}/extensions/CategoryTree/CategoryTree.php"); 

Cite[Bearbeiten]

Dient zum Erstellen von Fußnoten in SalzWiki Artikeln.

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.

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.

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.

  • Dateien unter http://www.mediawiki.org/wiki/Extension:WhosOnline herunterladen und extrahieren
  • Verzeichnis "WhosOnline" unter "Extensions" speichern wurde noch nicht durchgeführt
  • 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 wurde noch nicht durchgeführt:
require_once("$IP/extensions/WhosOnline/WhosOnline.php");
$wgWhosOnlineShowAnons = true;

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[Bearbeiten]

Damit z.B mathematische und auch chemische Formneln dargestellt werden können, wird in Mediawiki TEX benutzt.

Die tatsächliche Installation eines Tex-Systems erfolgte in Anlehnung an die alternative Methode auf der Mediawiki Seite http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Windows#Alternative_Solution.

Siehe im entsprechenden Kapitel unter SalzWiki

Hochladen von Dateien[Bearbeiten]

Damit Dateien hochgeladen werden können, ist in der localsettings.php folgende Einstellung vorzunehmen:

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads       = true;

Folgende Dateitypen sind durch eine entsprechende Einstellung in den localsettings.php zugelassen:

$wgFileExtensions = array('png', 'gif', 'tiff','tif','jpg', 'jpeg', 'doc', 'xls', 'xml','pdf', 'svg', 'avi',
'mpeg','ogg', 'ogv', 'oga','mov');

Mehrsprachigkeit[Bearbeiten]

Mehrsprachigkeit von Seiten[Bearbeiten]

Jede Seite muss für jeder gewünschten Sprache erstellt werden (siehe Hilfeseiten). Die Grundsprache wird für das Repositorium Englisch sein, so dass der Seitenname zunächst in Englisch angelegt wird, z.B. "DummyPage". Für jede Sprachversion, z.B für Deutsch, wird eine Subpage der englischen Seite mit dem Sprachenkürzel erstellt, wie z.B. DummyPage/de.

An das Ende jeder Seite schreibt man nun

{{Languages|Namensraum:Seitennamename}} 

im obigen Fall wäre dies

{{Languages|Dummypage}}

da sich die Seite im Stammverzeichnis befindet.

Mit dem Installieren der Hilfetexte wurden bereits alle Vorlagen mit installiert, die benötigt werden. um jetzt aus den unterschiedlichen Subpages am unteren Ende einer Seite die Schaltflächen zur Auswahl der gewünschten Sprache zur Verfügung zu stellen.

durch {{languages}} erzeugte Schaltflächen zur Auswahl einer Sprache


Die unter Einstellungen zur Auswahl stehende Sprache "de-formal" wird dabei nicht berücksichtigt .


Mehrsprachigkeit der Navigation[Bearbeiten]

Um die Navigationsschaltflächen zweisprachig zu gestalten, die beim Auswählen einer Sprache automatisch umgesetzt werden sollen, müssen die deutschen Begriffe in der Datei MessagesDe.php entsprechend angepasst werden. Der Pfad auf dem RZ-Server zur Datei ist D:\xampp\htdocs\repository\languages\messages\MessagesDe.php


Dort wurden für die Übersetzung deutsch – englisch folgende Ergänzungen ab Zeile 607 eingefügt:

'news'                 => 'Aktuelles',                 ##Beginn Ergänzung Hschwarz
'literature'           => 'Literatur',                   
'category-tree'        => 'Kategorienbaum',
'templates'            => 'Vorlagen',
'glossary'             => 'Glossar',
'repository'           => 'Repositorium',
'rights'               => 'Nutzungsrechte',
'bibliography'         => 'Zur Bilbiographie',
'authors'              => 'Autoren/innen',
'communication'        => 'Kommunikation',
'projects'             => 'Projekte',
'market'               => 'Marktplatz',
'salzwiki'             => 'Zum SalzWiki',                 ##Ende Ergänzungen


Die englischen Begriffe müssen hier alle klein geschrieben werden. In der Navigation können sie trotzdem groß geschrieben sein.

Für die Übersetzung deutsch – französich wurde folgende Ergänzungen ab Zeile 601 eingefügt:

'news'                 => 'Actualités',                 ##Beginn Ergänzung Hschwarz
'literature'           => 'Littérature',                   
'category-tree'        => 'Arborescence des catégories',
'templates'            => 'Modèles',
'glossary'             => 'Glossaire',
'repository'           => 'Repositorium',
'rights'               => 'Jouissance ',
'bibliography'         => 'à Bilbiographie',
'authors'              => 'Auteur/Auteure',
'communication'        => 'Communication',
'projects'             => 'Projet',
'market'               => 'Marché ',
'salzwiki'             => 'à SalzWiki',                 ##Ende Ergänzungen

Die Übersetzungen in Französich sind noch zu prüfen!

Zugangsberechtigungen[Bearbeiten]

Einrichten der Usergruppe "Redakteur"[Bearbeiten]

# Spezialgruppe Redakteur
$wgGroupPermissions['Redakteur']['emailconfirmed'] = true;
$wgGroupPermissions['Redakteur']['createpage'] = true;
$wgGroupPermissions['Redakteur']['createtalk'] = true;
$wgGroupPermissions['Redakteur']['edit'] = true;
$wgGroupPermissions['Redakteur']['protect'] = true;
$wgGroupPermissions['Redakteur']['editprotected'] = true;
$wgGroupPermissions['Redakteur']['read'] = true;
$wgGroupPermissions['Redakteur']['upload'] = true;
$wgGroupPermissions['Redakteur']['move'] = true;
$wgGroupPermissions['Redakteur']['createaccount'] = true;
$wgGroupPermissions['Redakteur']['movefile'] = true;
$wgGroupPermissions['Redakteur']['deletedtext'] = true;
$wgGroupPermissions['Redakteur']['deletedhistory'] = true;
$wgGroupPermissions['Redakteur']['noratelimit'] = true;
$wgGroupPermissions['Redakteur']['undelete'] = true;
$wgGroupPermissions['Redakteur']['restrictusers'] = true;
$wgGroupPermissions['Redakteur']['skipcaptcha'] = true;
$wgGroupPermissions['Redakteur']['approverevisions'] = true;

Nur Autoren können lesen und editieren[Bearbeiten]

Das aktuelle Nutzerschema lautet:

$wgWhitelistRead = array(":home", "Spezial:Userlogin");
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['read'] = false;
$wgGroupPermissions['user']['edit'] = false;

# Prevent new user registrations except by sysops
$wgWhitelistAccount = array ( "user" => 0, "sysop" => 1, "developer" => 1 );
$wgGroupPermissions['*']['createaccount'] = false;

# Spezialgruppe Autor 
$wgGroupPermissions['autor']['emailconfirmed'] = true;
$wgGroupPermissions['autor']['createpage'] = true;
$wgGroupPermissions['autor']['createtalk'] = true;
$wgGroupPermissions['autor']['edit'] = true;
$wgGroupPermissions['autor']['read'] = true;
$wgGroupPermissions['autor']['upload'] = true;
$wgGroupPermissions['autor']['move'] = true;


# Spezialgruppe SalzWiki
$wgGroupPermissions['SalzWiki']['emailconfirmed'] = true;
$wgGroupPermissions['SalzWiki']['createpage'] = true;
$wgGroupPermissions['SalzWiki']['createtalk'] = true;
$wgGroupPermissions['SalzWiki']['edit'] = true;
$wgGroupPermissions['SalzWiki']['read'] = true;
$wgGroupPermissions['SalzWiki']['move'] = true;

$wgGroupPermissions['autor']['restrictusers'] = true; ##nur Autoren haben Zugriff auf special pages

Zugriff für Verzeichnis mit Bildern einschränken[Bearbeiten]

Standardmäßig kann in der Adresszeile des Browsers das Verzeichnis "images" aufgerufen werden, wodurch alle Dateien angezeigt und verfügbar werden. Um dies zu Verhindern ist eien Änderung wie folgt notwendig:


in der httpd.conf des Apache in ein "-" einzufügen

<Directory "D:\xampp\apache\conf">

   #
   # Possible values for the Options directive are "None", "All",
   # or any combination of:
   #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
   #
   # Note that "MultiViews" must be named *explicitly* --- "Options All"
   # doesn't give it to you.
   #
   # The Options directive is both complicated and important.  Please see
   # http://httpd.apache.org/docs/2.2/mod/core.html#options
   # for more information.
   #
   Options -Indexes FollowSymLinks Includes ExecCGI  // hier wurde ein "-" vor Indexces eingefügt

Software-Installationen[Bearbeiten]

Programme unter Windows-Systemsteuerung[Bearbeiten]

  • GPL GhostScript 8.70
  • ImageMagick 6.5.9-0 Q16 (2010-01-01)
  • Microsoft .Net Framework 3.5 Language Pack SP1 - DEU
  • Microsoft .Net Framework 3.5 SP1
  • Microsoft .Net Framework 4.5.2
  • Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148
  • Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.61030
  • MikTeX 2.8
  • MSXML 4.0 SP2 (KB954430)
  • MSXML 4.0 SP2 (KB973688)
  • OggVideoTools Ogg Video Tools
  • XAMPP 1.7.1

Test-Software[Bearbeiten]

Installationsdateien von ARisos (Juli 2009):

  • binutils-2.19.1-mingw32-bin.tar.gz
  • gcc-ada-3.4.5-20060117-3.tar.gz
  • gcc-core-3.4.5-20060117-3.tar.gz
  • gcc-g77-3.4.5-20060117-3.tar.gz
  • gcc-g++-3.4.5-20060117-3.tar.gz
  • gcc-java-3.4.5-20060117-3.tar.gz
  • gcc-objc-3.4.5-20060117-3.tar.gz
  • MinGW.exe
  • mingw.ini
  • mingw.ini.old
  • mingw32-make-3.81-20080326-2.tar.gz
  • mingwrt-3.15.2-mingw32-dev.tar.gz
  • w32api-3.13-mingw32-dev.tar.gz