Adm:Einrichtung Wikis MW1.16
Dokumentation der Installation von „SalzWiki"
Allgemeines[Bearbeiten]
UÍn diesr Dokumentaion werden die Schitte und Extensions beschrieben, die in der Version 1.16.1 umgestzt sind.
Verzeichnisauflisten verboten[Bearbeiten]
apache\conf\httpd.conf
<Directory /> Options FollowSymLinks -Indexes AllowOverride None Order deny,allow Deny from all </Directory>
Suchmaschienen
[Bearbeiten]
Hschwarz 28.07.2009: Damit die Wikis während der Erprobungsphase nicht von Suchmaschinen durchsucht werden können, wurde eine
ROBOTS.txt in das htdocs-Verzeichnis gestellt.
robots.txt für das Salzwiki, kein Robot soll irgendetwas lesen können
User-agent: *
Disallow: /
Robots.txt neu am 13.2.2011 zu Beginn der Freischaltungder 16er VersionHschwarz 30.08.2010:
im Verzeichniss htdocs
- 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:/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 de/salzWiki
- robots.txt für das Salzwiki,Robots sollen nur SalzWiki finden und keien Unterverzeichnisse lesen
User-agent: *
Disallow:/bibtex/ Disallow:/bin/ Disallow:/config/ Disallow:/docs/ Disallow:/extensions/ Disallow:/images/ Disallow:/includes/ Disallow:/languages/ Disallow:/maintenance/ Disallow:/math/ Disallow:/serialized/ Disallow:/skins/ Disallow:/t/ Disallow:/tests/
......................................................................................
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 garnicht 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 gestestet werden.
E-Mail-Versand[Bearbeiten]
die "localSettings.php" wurde in den Verzeichnissen
- salzwiki_1.16.1/
- repository_1.16.1/
folgendermaßen für E-Mail-Versand angepasst:
E-Mail-Versand angepasst 09.10.2009 G. Werner
/*
$wgEmergencyContact = "schwarz@hornemann-institut.de";
$wgPasswordSender = "schwarz@hornemann-institut.de";
- /
$wgEmergencyContact = "service@salzwiki.hawk-hhg.de";
$wgPasswordSender = "service@salzwiki.hawk-hhg.de";
$wgSMTP = array(
'host' => "10.104.1.2",
'IDHost' => "hawk-hhg.de",
'port' => "25",
'auth' => true,
'username' => "service@salzwiki.hawk-hhg.de",
'password' => "********"
);
SalzWiki[Bearbeiten]
Datenbank mittels XAMPP und phpmyAdmin anlegen:[Bearbeiten]
HSchwarz 13.07.2009: Es muss vor der Installation zuerst eine Datenbank angelegt werden.
salzwiki_1.16.1
Benutzer: hschwarz
Host: localhost
Global Rechte: all privileges
Grant : ja database table prefix: sw_
Mediawiki Installieren[Bearbeiten]
Nach Installationsanweisung mit folgenden Namen: „Salzwiki"
Lizenz für das Fachwiki[Bearbeiten]
HSchwarz 13.07.2009: Einfügen in LocalSettings.php
## 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
$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]
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';.
XEB Extra Edit Buttons Installation[Bearbeiten]
Die Funktionen des Editors wurden durch folgendes Skript erweitert:
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_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" )
Diesen Code entsprechend in das Toolbar array in der EditPage.php im Verzeichniss "includes" einfügen ( siehe auch http://meta.wikimedia.org/wiki/Help_talk:Edit_toolbar ). Die Bilder "Button_reflink.png" etc..in skins/common/images speichern. Fertig. Selbstredend, dass hier eigene Funktionen implementiert werden können!
Installieren mittel VPN auf dem Server des RZ
Logo[Bearbeiten]
Die Datei für das Logo ist hochzuladen und einzufügen in LocalSettings.php:
##LOGO
$wgLogo = "/salzwiki_1.16.1/skins/common/images/Logo.png";
[Bearbeiten]
Änderungen in MonoBookSW.php: Zeile 213 - 239 , als Pfad entweder salzwiki
<!-- 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="/[salzwiki_1.16.1]/skins/common/images/HI.png" width=91 height=30> </a> <a href="http://www.hawk-hhg.de/"> <img src="/[salzwiki_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">
Sidebar anpassen[Bearbeiten]
Änderungen von Sven reher: 25.07.2010: Die Sidebar im Bereich Werkzeuge wird mit Hilfe von Javascript für alle Gruppen außer "autor", "admin" und "forschung" manipuliert. Dazu wird eine Erweiterung JavaScript (http://www.mediawiki.org/wiki/Extension:Javascript) eingebunden. Die Erweiterung funktionierte leider nicht out of the box. Folgende Änderungen habe ich vorgenommen:
Ab Zeile 32 wurden in der skin.php die folgende Zeilen hinzugefügt. Dies dient dazu auf dem Windows 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 "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) {
Um die Navigation Box anzupassen wurden folgende Änderungen an der "include/skin.php".
In der Funktion: "function buildSidebar()" In der zweiten Zeile die globale Variable "$wgUser" hinzufügen, um später die Gruppenrechte abzufragen zu können.
global $wgLang, $wgUser;
Nach der Zeile mit "$bar = array();" Z.2085 wird nun der folgende Code eingefügt:
//$wgHooks['SkinBuildSidebar'][] = 'customizeSidebar'; function customizeSidebar( $sidebar, &$bar) { global $wgUser; $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' ) ); $sidebar->addToSidebar( &$bar, 'autor_sidebar' ); } else { //$lines = explode( "\n", wfMsgForContent( 'sidebar' ) ); $sidebar->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. ACHTUNG: Wenn das Mediawiki aktualisiert wird, muss diese Änderung wieder eingefügt werden, um die Funktionalität zu erhalten!!!
Für normale eingeloggte User: http://193.175.110.91/salzwiki_1.16.1/index.php/MediaWiki:Sidebar
Für Autoren, Administratoren und Forscher: http://193.175.110.91/salzwiki_1.16.1/index.php/MediaWiki:Autor_sidebar
Darstellung in einem Frame[Bearbeiten]
Die neuen Versionen des Internet Explorers und des Firefox zeigen eine Fehlermeldung, wenn man sich anmelden möchte, da der Inhalt in einem Frame angezeigt werden soll. Meist hilft die Nutzung eines Links zur IP-Seite weiter.
Dies ist zu umgehen, d.h. es tritt keine Fehlermeldung auf, wenn man in den localsetting.php einfügt:
$wgEditPageFrameOptions = 'false';
* The X-Frame-Options header to send on pages sensitive to clickjacking * attacks, such as edit pages. This prevents those pages from being displayed * in a frame or iframe. The options are: * * - 'DENY': Do not allow framing. This is recommended for most wikis. * * - 'SAMEORIGIN': Allow framing by pages on the same domain. This can be used * to allow framing within a trusted domain. This is insecure if there * is a page on the same domain which allows framing of arbitrary URLs. * * - false: Allow all framing. This opens up the wiki to XSS attacks and thus * full compromise of local user accounts. Private wikis behind a * corporate firewall are especially vulnerable. This is not * recommended. * * For extra safety, set $wgBreakFrames = true, to prevent framing on all pages, * not just edit pages.
Lizenzvorlagen[Bearbeiten]
Vorlagen = Templates fidnen sich beispielhaft auf der Seite Vorlagen dargestellt. Die einzelnen Vorlagen sind im Namensraum Vorlagen zu finden.
"Kategorie:Lizenzenvorlagen" erstellt.
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]
Installation der Erweiterung "Approved_Revs".
- Die Extension wird heruntergeladen und nach dem Extrahieren in das Extensions-Verzeichnis von SalzWiki kopiert.
- Anlage einer Datenbank-Tabelle: Sie müssen für diese Extension eine Datenbanktabelle anlegen mit dem Namen "approved_revs". Hierzu gibt es zwei Möglichkeiten: Entweder Sie benutzen das Skript "update.php" in MediaWiki's /maintenance oder gehen direkt in die Datenbank und erstellen sie dort mit einem SQL Befehl, den Sie im File ApprovedRevs.sql finden. Achten Sie dabei auf ein mögliches DBprefix.
- Konfiguration von den Approved_Revs in der LocalSettings.php
require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" );
- Funktionsweise
Man kann Revisionen (Versionen einer SalzWiki-Seite) 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 markie
$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['redakteure']['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
Wenn nur die Autoren, Redakteure und Admins die History sehen sollen, ergänze folgendes:
- in der LocalSettings.php
## 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; }
DynamicPagesList[Bearbeiten]
- 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:
include("$IP/extensions/DynamicPageList/DynamicPageList2.php");
Zur Funktionsweise und den umfangreichen Einsatzmöglichkeiten siehe auch http://semeb.com/dpldemo/index.php?title=Main_Page.
Bibliography[Bearbeiten]
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.
- In den Localsettinge eingefügen.
require_once("$IP/extensions/bibliography/bibliography.php");
Das das bibtex Feld, "Abstracts" die Laufzeit der Extension deutlich erhört, wurde dieses Feld ausgeklammert, da es auch nicht benötigt wird.
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.
Damit eine neue Literaturstelle mit einer Überschrift 2. Grades dargestellt wird, wurde die Datei bibliography.php in Zeile 16 angepasst:
$temp_textbox1= "==$entry_name==\n<bibentry>\n@".$entry_type.'{'.$entry_id.",\n";
Zur Darstellung der Literatureinträge erfolgrten weitere Anpassungen der Ausgaben ider bibliography.php:
Zeile 56ff:
$temp_return.="<a href='$wgScriptPath/?title=literature:Bibliography&action=edit§ion=0&bibliography=new&entry_id=$entry_id&entry_name=$entry_name&entry_type=".rawurlencode($val)."'>$val</a>, ";
Zeilen 194ff:
while(list($key,$val)=each($bibtex_entry_fields))
$$key=stripslashes($val); //variable variables now you have all the keys assigned as variable names, $author, $title etc...
if(isset($author) && $author!="") $author="$author ";
if(isset($editor) && $editor!="") $author="$editor (eds.)";
if(isset($year) && $year!="") $year="$year";
$return.="<a href='http://193.175.110.91/salzwiki_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
if(isset($title) && $title!="") $return.="$title"; // HSChwarz Ausgabeformet geändert 18.10.2009
if(isset($booktitle) && $booktitle!="") $return.=". $booktitle";
if(isset($titleaddon) && $titleaddon!="") $return.=". $titleaddon";
if(isset($crossref) && $crossref!="") $return.=". In: <a href='http://193.175.110.91/salzwiki_1.16.1/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_1.16.1/index.php/$fulltext'>Volltext</a>";
Zeilen 267ff:
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"]){ case "book": 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["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". ({$entry["titleaddon"]})"; if(isset($entry["publisher"]) && $entry["publisher"]!="") $entry_publisher=". <i>{$entry["publisher"]}</i> "; if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}"; $return="$entry_name_url $start<a href='http://193.175.110.91/salzwiki_1.16.1/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_publisher, {$entry["address"]}$entry_pages. $end"; // $return="$entry_name_url $start $entry_author $entry_year: {$entry["title"]}$entry_titleaddon$entry_publisher$entry_pages. $end"; break; case "article": if(isset($entry["volume"]) && $entry["volume"]!="") $entry_volume=", <b>{$entry["volume"]}</b>"; if(isset($entry["number"]) && $entry["number"]!="") $entry_number=" ({$entry["number"]})"; if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}"; if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon="- {$entry["titleaddon"]}"; 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_1.16.1/index.php/{$entry["fulltext"]}'>Volltext</a>"; if(isset($entry["journal"]) && $entry["journal"]!=""){$entry_journal="{$entry["journal"]} "; } else { //if yournal is not set, then there is no point in setting volume, number, pages $entry_volume=""; $entry_pages=""; $entry_number=""; } $return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki_1.16.1/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; case "misc": 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["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}"; if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}"; 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/de/salzwiki/index.php/{$entry["fulltext"]}'> Volltext</a>"; $return="$entry_name_url $start <a href='http://193.175.110.91/de/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_howpublished{$entry["address"]}$entry_pages$entry_fulltext.$end"; break; //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/de/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>"; $return="$entry_name_url $start <a href='http://193.175.110.91/de/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 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_1.16.1/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/de/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>"; $return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki_1.16.1/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";
Die Literaturliste im Repositorium wird bisher durchnumeriert durch Anpassung der Zeilen 294ff:
$entry_name_url="# <span class='bibprintwide' ><a href='$wgScriptPath/index.php?title=literature:Bibliography#".str_replace(' ','_',$entry_id)."'>[".$entry["entry_name"]."]:</a></span>";
Das "#" Zeichen führt zur Nummerierung.
Caracter Escapes, LOParserFunktions, Control Strukture Funktions[Bearbeiten]
Notwendig für #if: und #switch-Anweisungen (zb beim einsetzen des Seitentitels im Kopf von Vorlage:Infobox_Salz
- Extension unter http://www.mediawiki.org/wiki/Extension:Character_Escapes , http://www.mediawiki.org/wiki/Extension:Control_Structure_Functions/ControlStructureFunctions.php und http://www.mediawiki.org/wiki/Extension:LO_Parser_Functions herunterladen und in den Extensionsordner kopieren.
- In den Localsettinge eingefügen.
##Extension Character Escapes 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.
- Extension unter http://www.mediawiki.org/wiki/Categorytree herunterladen und in den Extensionsordner kopieren.
- In den Localsettinge eingefügen.
$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");
Cite[Bearbeiten]
Dient zum Erstellen von Fußnoten in SalzWiki Artikeln.
- Extension unter http://www.mediawiki.org/wiki/Cite herunterladen.
- Extrahieren der Dateien nach extensions/Cite
- In den Localsettings eingefügen
require_once("$IP/extensions/Cite/Cite.php");
Siehe näheres zum Einfügen von Fußnoten unter http://193.175.110.91/salzwiki_1.16.1/index.php/Autor#Fu.C3.9Fnoten.
Javascript[Bearbeiten]
Sie dient dazu um den Navigationsbereich "Werkzeuge" entsprechend dem Anmeldestatus zu manipulieren. Siehe hierzu Sidebar anpassen.
- Extension unter http://www.mediawiki.org/wiki/Extension:Javascript herunterladen.
- Extrahieren der Dateien nach extensions/javascript
- In den Localsettings eingefügen
include("$IP/extensions/JavaScript/JavaScript.php");
Hilfeseiten[Bearbeiten]
Muss noch überarbeitet werden!!!
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
OGG[Bearbeiten]
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
require( "$IP/extensions/OggHandler/OggHandler.php" ); $wgFFmpegLocation = 'd:\ffmpeg-wiki\bin\ffmpeg';
Terminology[Bearbeiten]
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
require_once( "$IP/extensions/terminology.php" );
User Merge - Benutzername löschen[Bearbeiten]
Das Löschen von benutzernamen, die nicht mehr benötigt werden, geschieht durch das Zusammenführen des zu löschenden Benuztzernamens mit dem Benutzername "Testuser" zu "Testuser" mit Hilfe der Extension UserMerge.
- Extension unter http://www.mediawiki.org/wiki/Extension:User_Merge_and_Delete herunterladen.
- Datei in das Verzeichnis extensions/UserMerge kopieren
- In den Localsettings eingefügen
require_once( "$IP/extensions/UserMerge/UserMerge.php" ); # Assign the usermerge right to a usergroup, i.e. to the bureaucrats: $wgGroupPermissions['bureaucrat']['usermerge'] = true;
WhosOnline - Wer ist online[Bearbeiten]
Die Extension WhosOnline dient dazu sich auf einer Specialpage anzeigen zu lassen, wer gerade online ist.
Geschieht mit der Extension "Whoisonline"
- Dateien unter http://www.mediawiki.org/wiki/Extension:WhosOnline herunterladen und unter Extensions speichern, wie beschrieben.
- in localsettings einfügen:
require_once("$IP/extensions/WhosOnline/WhosOnline.php"); $wgWhosOnlineShowAnons = true;
In der Mysql Datenbank die Tabelle "sw_online" anlegen mit:
CREATE TABLE `salzwiki_test_db`.`sw_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;
ContactPage - Kontaktseite[Bearbeiten]
Für Mitteilungen allgemeiner Art wird eine Kontaktseite eingesetzt. Hierzu wird die Extension "ContactPage"benutzt. Das Absenden einer Seite wird zum Verhindern von Spam über ein Captcha abgesichert.
- Dateien unter http://www.mediawiki.org/wiki/Extension:ContactPage herunterladen und unter Extensions/ContactPage speichern.
- In localsettings einfügen:
require_once( "$IP/extensions/ContactPage/ContactPage.php" ); $wgContactUser = 'Hschwarz'; $wgContactSender = $wgPasswordSender; $wgContactSenderName = 'Contact Form SalzWiki ' . $wgSitename; $wgCaptchaTriggers['contactpage'] = true;
ConfirmEdit[Bearbeiten]
Registrierte Nutzer dürfen auf die Diskussionseiten schreiben. Damit dies etwas sicher vorstatten geht, wird mit ConfirmEdit ein Captcha eingeführt.
- Dateien unter http://www.mediawiki.org/wiki/Confirmedit herunterladen und unter extensions/ConfirmEditspeichern.
- In localsettings einfügen:
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;
Zugangsberechtigungen[Bearbeiten]
Spezialseiten dürfen nur Autoren lesen[Bearbeiten]
Dies Änderungen dienen dazu, dass nur Autoren die Specialpages lesen dürfen und keine normalen Nutzer oder angemendeten Nutzer.
in der datei SpecialPage.php im verzeichnis "includes" in zeile 187 'restrictusers' einfügen
'Specialpages' => array( 'UnlistedSpecialPage', 'Specialpages', ''''restrictusers''''),
in Localsettings.php einfügen:
$wgGroupPermissions['autor']['restrictusers'] = true;
Benutzer-Rechte in SalzWiki[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']['read'] = true; $wgGroupPermissions['autor']['upload'] = true; $wgGroupPermissions['autor']['move'] = true;
Hochladen von Dateien[Bearbeiten]
Das Hochladen von Dateien geschieht immer in das Repositorium.
Hierzu sind Änderung in den LocalSettings.php vorgenommen worden:
$wgUploadNavigationUrl = "/repository_1.16.1/index.php/Special:Upload"; $wgEnableUploads = false; ##damit kein Upload in SalzWiki möglich ist
Damit automatisch im Repository nach „Dateien" gesucht wird, wurde folgendes geändert:
$wgUseSharedUploads = true; $wgSharedUploadPath = "/repository_1.16.1/images"; #$wgSharedUploadPath = 'http://193.175.110.91/repository_16_p/images; $wgSharedUploadDirectory = "D:/xampp/htdocs/repository_1.16.1/images"; $wgHashedSharedUploadDirectory = true; $wgSharedUploadDBname = "repository_1.16.1"; $wgSharedUploadDBprefix = "sr_"; #$wgRepositoryBaseUrl = "http://193.175.110.91/repository_16_p/images:"; $wgRepositoryBaseUrl = 'http://193.175.110.91/repository_1.16.1/index.php/Datei:'; $wgFetchCommonsDescriptions = true;
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.
Installation gemäß Mediawiki[Bearbeiten]
- install the complete MikTeX (not the basic one, use the network installer) in D:\texfm\miktex (No: Since installing the complete version failed, we installed the basic one with administrator rights at last after installing GhostScript and installing ImageMagick.)
- install the static (to be sure dependencies are embed) binary of ImageMagick in D:\texfm\imagick (ensure there are no spaces in the path you choose) (No: We installed the dynamic version wih administrator rights.)
- install AFPL GhostScript in D:\texfm\ghostscript
- copy D:\texfm\ghostscript\gs8.70\bin\gswin32c.exe to D:\texfm\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:\texfm\ghostscript\gs8.70\bin (again, 8.70 can be different depending on version you install)
- If you installed MiKTeX for all users and are running IIS, you may also need to create MiKTeX folders under "C:\Documents and Settings\Default User\Application Data" and "C:\Documents and Settings\Default User\Local Settings\Application Data". Make sure the IIS working process account running PHP (IUSR_[whoever]) has both read and write permissions to these directories!
- open a command line (start -> execute -> cmd.exe)
- verify that the following commands are working:
- latex
- dvips
- convert (not the microsoft convert)
- gs
- [edit] Settings
(your wiki directory = $)
- replace the file $/includes/Math.php with 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
Tatsächliche Installation[Bearbeiten]
Die Applikationen als Administrator für alle User im Verzeichnis "D:\texmf\" installieren:
- 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"
- Im ServerManager bei "Systemeigenschaften ändern/Erweitert/Umgebungsvariablen" die Systemvariable "path" erweitern mit "D:\texmf\ghostscript\gs8.70\bin;"
- ImageMagick im Unterverzeichnis "imagick/" installieren
- ImageMagick-6.5.9-0-Q16.dll (bei vorhandener Windows-Server-Konfigurationsberechtigung), sonst "static" (nur XAMPP-Zugriffsberechtigungen), inkl. "zum Systempfad hinzufügen" und "header für C/C++ Developement"
- 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
- Für PHP die VC6-kompilierte Datei "php_imagick_dyn-Q16.dll" in das PHP-Unterverzeichnis "ext/" kopieren und umbenennen zu "php_imagick_dyn_Q16.dll"
- In der Datei "php.ini" die Datei "php_imagick_dyn_Q16.dll" einbinden
- MikTex im Unterverzeichnis "miktex/" installieren
- Für Sophos-Antivirus eine Ausnahme festlegen:
- Konfigurieren->On-Access-Überprüfung->Ausnahmen -> "D:\texmf\Miktex\" hinzufügen
- Für Sophos-Antivirus eine Ausnahme festlegen:
in unseren 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';
Einrichten von Namensräumen
[Bearbeiten]
Es werden ein Namensraum für Dokumente der Administratoren (ADM)eingerichtet, den nur diese Bearbeiten können. Dazu eien Namensraum für die Bibliographie (Literatur) und einer zum erstmaligen Erstellen von Dokumenten (Bearbeitung), die kein Leser sehen soll.
# Einrichten eines Namensraumes 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 Heplnamespace $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;
Metadaten von Dateien im Wiki sichtbar[Bearbeiten]
Alle Dateien wie z.B Fotos liegen im Repositorium. Wenn ein Leser sich dieses Foto ansieht, muss er auch Zugriff auf alle Metadaden haben, die dazu gehören. Damit dies möglich ist, sind folgende Einstellungen vorzunehmen.
Einstellungen zum Zugriff auf das Datei Repository: Findet das Salzwiki eine Datei/Bild nicht im eigenen Wiki, schaut es in dem Shared Einstellungen nach und sucht dort nach Bildern.
$wgUseSharedUploads = true; $wgSharedUploadPath = "/repository_1.16.1/images"; $wgSharedUploadDirectory = "D:/xampp/htdocs/repository_1.16.1/images"; $wgHashedSharedUploadDirectory = true; $wgSharedUploadDBname = "repository_1.16.1"; $wgSharedUploadDBprefix = "sr_"; $wgRepositoryBaseUrl = 'http://193.175.110.91/repository_1.16.1/index.php/Datei:';
Einstellung, um das Holen der Beschreibungstexte von Bildern in das lokale Wiki zu ermöglichen: Es findet ein Zugriff über http statt, um den Text zu dem Bild aus dem Repository zu holen. Dazu muss der anonyme User Zugriff auf die Beschreibungstexte erhalten.
$wgFetchCommonsDescriptions = true;
Änderung/Prüfung der Einstellung in der "php.ini" Zeile 523: Sorgt dafür, dass der Befehl fopen ausgeführt wird, um die Beschreibungsdaten von dem Repository Wiki zu holen.
allow_url_fopen = On
Zugriff auf ein geschütztes Repository[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.
- Hierzu ist zunächst die Datei httpFunctions.php im Verzeichnis includes von SalzWiki zu modifizieren. Folgender Programmcode ist für die Mediawiki Version 15.3 einzufügen:
--- 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...
- Folgender Programmcode ist für die Mediawiki Version 16.0 einzufügen:
- Es sind hauptsächlich Anpassungen gemacht wurden, 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.
--- 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(); + $this->curlOptions[CURLOPT_HTTPHEADER] = $this->getHeaderList(); $curlHandle = curl_init( $this->url ); if ( !curl_setopt_array( $curlHandle, $this->curlOptions ) ) { @@ -755,24 +755,118 @@ /* 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 {
- die Extension "Snoopy-1.2.4" ist in das Extensions-Verzeichnis zu kopieren.
- curl muss beim Apache aktiviert sein, dazu kommentiert man die folgende Zeile in der PHP.ini ein:
extension=php_curl.dll
apache neu starten, damit die Änderungen wirksam werden.
- Der Zugriff auf das Mediawiki Repository wird gesperrt?
$wgGroupPermissions['*']['read'] = false;
- LocalSettings.php - Konfiguration
Einstellungen, um den Zugriff auf ein gesichertes Repository durchführen zu können.
$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 Zugriff bei hoher Last verlangsamen kann.
$wgShowAuthenticatedRepositoryError - Gibt Fehlermeldungen in die Log Dateien. Für den Live Betrieb bitte abstellen.
- Konfiguration für das Mediawiki, um die Daten aus der Datenbank zu holen. Folfende Zeilen in die localsettings.php 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 );
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_1.16.1 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_1.16.1/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]
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";
[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">
Lizenzvorlagen[Bearbeiten]
Vorlagen = Templates finden sich beispielhaft auf der Seite Vorlagen dargestellt. Die einzelnen Vorlagen sind im Namensraum Vorlagen zu finden.
"Kategorie:Lizenzenvorlagen" erstellt.
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]
Ist noch zu installieren.
DynamicPagesList[Bearbeiten]
- 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:
include("$IP/extensions/DynamicPageList/DynamicPageList2.php");
Zur Funktionsweise und den umfangreichen Einsatzmöglichkeiten siehe auch http://semeb.com/dpldemo/index.php?title=Main_Page.
Bibliography[Bearbeiten]
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.
- In den Localsettinge eingefügen.
require_once("$IP/extensions/bibliography/bibliography.php");
Das das bibtex Feld, "Abstracts" die Laufzeit der Extension deutlich erhört, wurde dieses Feld ausgeklammert, da es auch nicht benötigt wird.
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.
Damit eine neue Literaturstelle mit einer Überschrift 2. Grades dargestellt wird, wurde die Datei bibliography.php in Zeile 16 angepasst:
$temp_textbox1= "==$entry_name==\n<bibentry>\n@".$entry_type.'{'.$entry_id.",\n";
Zur Darstellung der Literatureinträge erfolgrten weitere Anpassungen der Ausgaben ider bibliography.php:
Zeile 56ff:
$temp_return.="<a href='$wgScriptPath/?title=literature:Bibliography&action=edit§ion=0&bibliography=new&entry_id=$entry_id&entry_name=$entry_name&entry_type=".rawurlencode($val)."'>$val</a>, ";
Zeilen 194ff:
while(list($key,$val)=each($bibtex_entry_fields))
$$key=stripslashes($val); //variable variables now you have all the keys assigned as variable names, $author, $title etc...
if(isset($author) && $author!="") $author="$author ";
if(isset($editor) && $editor!="") $author="$editor (eds.)";
if(isset($year) && $year!="") $year="$year";
$return.="<a href='http://193.175.110.91/salzwiki_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
if(isset($title) && $title!="") $return.="$title"; // HSChwarz Ausgabeformet geändert 18.10.2009
if(isset($booktitle) && $booktitle!="") $return.=". $booktitle";
if(isset($titleaddon) && $titleaddon!="") $return.=". $titleaddon";
if(isset($crossref) && $crossref!="") $return.=". In: <a href='http://193.175.110.91/salzwiki_1.16.1/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_1.16.1/index.php/$fulltext'>Volltext</a>";
Zeilen 267ff:
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"]){ case "book": 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["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". ({$entry["titleaddon"]})"; if(isset($entry["publisher"]) && $entry["publisher"]!="") $entry_publisher=". <i>{$entry["publisher"]}</i> "; if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}"; $return="$entry_name_url $start<a href='http://193.175.110.91/salzwiki_1.16.1/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_publisher, {$entry["address"]}$entry_pages. $end"; // $return="$entry_name_url $start $entry_author $entry_year: {$entry["title"]}$entry_titleaddon$entry_publisher$entry_pages. $end"; break; case "article": if(isset($entry["volume"]) && $entry["volume"]!="") $entry_volume=", <b>{$entry["volume"]}</b>"; if(isset($entry["number"]) && $entry["number"]!="") $entry_number=" ({$entry["number"]})"; if(isset($entry["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}"; if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon="- {$entry["titleaddon"]}"; 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_1.16.1/index.php/{$entry["fulltext"]}'>Volltext</a>"; if(isset($entry["journal"]) && $entry["journal"]!=""){$entry_journal="{$entry["journal"]} "; } else { //if yournal is not set, then there is no point in setting volume, number, pages $entry_volume=""; $entry_pages=""; $entry_number=""; } $return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki_1.16.1/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; case "misc": 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["pages"]) && $entry["pages"]!="") $entry_pages=", pp. {$entry["pages"]}"; if(isset($entry["titleaddon"]) && $entry["titleaddon"]!="") $entry_titleaddon=". {$entry["titleaddon"]}"; 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/de/salzwiki/index.php/{$entry["fulltext"]}'> Volltext</a>"; $return="$entry_name_url $start <a href='http://193.175.110.91/de/salzwiki/index.php/$entry_id'>$entry_author $entry_year: </a> {$entry["title"]}$entry_titleaddon$entry_howpublished{$entry["address"]}$entry_pages$entry_fulltext.$end"; break; //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/de/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>"; $return="$entry_name_url $start <a href='http://193.175.110.91/de/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 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_1.16.1/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/de/salzwiki/index.php/{$entry["fulltext"]}'>Volltext</a>"; $return="$entry_name_url $start <a href='http://193.175.110.91/salzwiki_1.16.1/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";
Die Literaturliste im Repositorium wird bisher durchnumeriert durch Anpassung der Zeilen 294ff:
$entry_name_url="# <span class='bibprintwide' ><a href='$wgScriptPath/index.php?title=literature:Bibliography#".str_replace(' ','_',$entry_id)."'>[".$entry["entry_name"]."]:</a></span>";
Das "#" Zeichen führt zur Nummerierung.
OGG[Bearbeiten]
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
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]
Sie dient dazu um den Navigationsbereich "Werkzeuge" entsprechend dem Anmeldestatus zu manipulieren. Siehe hierzu Sidebar anpassen.
- Extension unter http://www.mediawiki.org/wiki/Extension:Javascript herunterladen.
- Extrahieren der Dateien nach extensions/javascript
- In den Localsettings eingefügen
include("$IP/extensions/JavaScript/JavaScript.php");
Terminology[Bearbeiten]
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
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.
- Extension unter http://www.mediawiki.org/wiki/Categorytree herunterladen und in den Extensionsordner kopieren.
- In den Localsettinge eingefügen.
$wgUseAjax = true; ##muss von false auf true geändert werden, falls noch nicht geschehen require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");
Cite[Bearbeiten]
Dient zum Erstellen von Fußnoten in SalzWiki Artikeln.
- Extension unter http://www.mediawiki.org/wiki/Cite herunterladen.
- Extrahieren der Dateien nach extensions/Cite
- In den Localsettings eingefügen
require_once("$IP/extensions/Cite/Cite.php");
Siehe näheres zum Einfügen von Fußnoten unter http://193.175.110.91/salzwiki_1.16.1/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.
- Extension unter http://www.mediawiki.org/wiki/Extension:User_Merge_and_Delete herunterladen.
- Datei in das Verzeichnis extensions/UserMerge kopieren
- In den Localsettings eingefügen
require_once( "$IP/extensions/UserMerge/UserMerge.php" ); # Assign the usermerge right to a usergroup, i.e. to the bureaucrats: $wgGroupPermissions['bureaucrat']['usermerge'] = true;
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
Zugangsberechtigungen[Bearbeiten]
Nur angemeldete Lesen und editieren[Bearbeiten]
HSchwarz 16.07.2009: Wenn SalzWiki installiert ist, aber nicht für alle freigegeben werden soll. Wie kann ich nur die erste Seite sichtbar machen!
## Nur die Startseite ist für alle zu lesen, ansonsten nur für angemeldete Nutzer!!!!!
## nur angelemdete dürfen lesen und Seiten bearbeiten
## für alle sind nur die Seiten „Main Page" und die mit dem Userlogin" zu sehen
$wgWhitelistRead = array(":Main Page", "Spezial:Userlogin");
$wgGroupPermissions[’*’][’read’] = false;
$wgGroupPermissions[’*’][’edit’] = false;
# Prevent new user registrations except by sysops
$wgWhitelistAccount = array ( "user" => 0, "sysop" => 1, "developer" => 1 );
$wgGroupPermissions[’*’][’createaccount’] = false;
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 ändern, sind sowohl im Repositorium als auch im SalzWiki 2 Eingriffe notwendig:
- Im Verzeichnis "images/" ist eine ".htaccess"-Datei, für die der Webserver nur Leserechte hat, mit folgendem Inhalt zu speichern:
Order deny,allow
Deny from all
Allow from 193.175.110.91 - Die "LocalSettings.php"-Datei ist wie folgt zu modifizieren:
Oberhalb der Zeile
$wgEnableUploads = true;
sind folgende Zeilen einzufügen:
$wgUploadPath = "$wgScriptPath/img_auth.php"; $wgUploadDirectory = 'D:/XAMPP/xampp/htdocs/repository-test/images';
in der httpd.conf des Apache
<Directory "D:/xampp/htdocs">
# # 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