OptiYummy-System 2: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
Zeile 49: Zeile 49:
** In den DefaultSettings.php sind standardmäßig nur png, gif, jpg und jpeg als zulässig definiert
** In den DefaultSettings.php sind standardmäßig nur png, gif, jpg und jpeg als zulässig definiert
** Das kann in LocalSettings.php durch folgende Anweisung z.B. um pdf- und zip-Dateien erweitern:
** Das kann in LocalSettings.php durch folgende Anweisung z.B. um pdf- und zip-Dateien erweitern:
** '''$wgFileExtensions = array( 'png', 'gif', 'jpg', 'svg , 'jpeg', 'pdf', 'zip');'''
** '''$wgFileExtensions = array( 'png', 'gif', 'jpg', 'svg', 'jpeg', 'pdf', 'zip' );'''


Um Bilder und Formeln auch im "safe mode" von PHP hochladen zu können, sind folgende Maßnahmen erforderlich:
Um Bilder und Formeln auch im "safe mode" von PHP hochladen zu können, sind folgende Maßnahmen erforderlich:

Version vom 13. Februar 2010, 20:09 Uhr

Siehe auch: "Installation des Basis-Systems" / "System- und Datensicherung"

Wiki-System individuell konfigurieren

  • Indizierung der Seiten durch Suchmaschinen
    • Scheinbar ist ab MediWiki-Version 1.12 vorgesehen, alle Seiten des MediaWiki-Systems standardmäßig mit <meta name="robots" content="index,follow"> zu versehen.
    • Dafür wird dann $wgDefaultRobotPolicy = 'index,follow'; genutzt.
    • Ob dies realisiert ist, kann man überprüfen, indem man sich im Browser den Quelltext der generierten Seiten anschaut.
    • Im Beispiel war dieser Meta-Eintrag nicht vorhanden, weil nur die Version 1.10 genutzt wird. Allerdings werden bestimmte Spezialseiten vom MediaWiki mittels "noindex,nofollow" explizit für die Suchmaschinen verboten.
    • Unabhängig davon sollte man in das Stammverzeichnis des Wiki-Systems \srv\www\htdocs\mediawiki\ eine Textdatei robots.txt ablegen:
      • Die Suchmaschinen lesen beim Finden einer Webseite zuerst diese Datei im Stammverzeichnis der Domäne.
      • In dieser Datei kann beschrieben werden, ob und wie die Suchmaschine (Robot) die Seiten erfassen darf.
      • Es ist scheinbar wichtig, unsinnige Robots auszusperren, um nicht unsinnigen Datenverkehr für das Wikisystem zu erzeugen.
      • Für Laien ist es günstig, als Grundlage die Datei robot.txt der Wikipedia [1] zu verwenden. Auf konkrete Verzeichnisse der Wikipedia bezogene Einträge (z.B. /wiki/) muss man löschen!
  • Die Größe der mittels PHP hochladbaren Dateien ist standardmäßig auf 2MByte beschränkt. Das ist für den angestrebten Zweck zu gering:
    • In den Dateien /etc/php5/apache2/php.ini und /etc/php5/cli/php.ini wurde diese Begrenzung auf 20MByte geändert:
upload_max_filesize = 20M

Für die folgenden Anpassungen muss man die Datei LocalSettings.php manuell bearbeiten. Um den ursprünglichen Zustand wieder herstellen zu können, sollte man sich eine Sicherungsdatei anlegen (Kopieren und Einfügen unter neuem Namen). Dann lädt man LocalSettings.php in einem Texteditor (z.B. rechte Maus - Öffnen mit ... Dienstprogramme - Editor Kate - Sitzung öffen). Die meisten Änderungsmöglichkeiten sind durch kommentierte Zeilen bereits vorbereitet:

  • Die Parameter im vorderen Abschnitt wurden bereits durch den Konfigurationsdialog des MediaWiki belegt. Dort könnte man später bei Bedarf auch manuell Änderungen vornehmen, z.B.:
    • ini_set( 'memory_limit', '32M' ); (Max. Größe für ein PHP-Script)
  • Benutzer-Rechte abweichend von den Defaultwerten:
    • $wgDefaultUserOptions['editsection'] = false; ("Bearbeiten" am Text ausblenden für anonyme Nutzer)
    • $wgGroupPermissions['*']['edit'] = false; (Nur angemeldeten Benutzern Bearbeiten erlauben)
    • $wgGroupPermissions['*']['createpage'] = false; (Anonyme Nutzer können keine neuen Seiten anlegen)
    • $wgGroupPermissions['*']['createtalk'] = false; (Anonyme Nutzer können keine Diskussion anlegen)
    • $wgGroupPermissions['*']['createaccount'] = false; (Neuanmeldungen verbieten außer für Sysop)
    • $wgShowIPinHeader = false; (Links auf IP-Diskussionsseiten rechts oben ausschalten)
    • $wgAllowSysopQueries = true; (Datenbankabfragen für Admins erlauben)
  • Upload von Bildern unter Nutzung von ImageMagick
    • $wgEnableUploads = true;
    • $wgMaxUploadSize = 1024*1024*20; # 20MB (Für direktes Hochladen gilt Beschränkung in php.ini!)
    • $wgUploadSizeWarning = 1024*1024*2; # 2MB (Nur für Warnung beim Hochladen)
    • $wgUseImageResize = true;
    • $wgUseImageMagick = true;
    • $wgImageMagickConvertCommand = "/usr/bin/convert";
  • Mathematische Formeln mit LaTeX einbinden
    • Die erforderlichen texvc-Komponenten befinden sich bereits in /mediawiki/math/
    • $wgUseTex = true; (damit wird LaTeX aktiviert)
  • Hochladen weiterer Dateiformate erlauben
    • In den DefaultSettings.php sind standardmäßig nur png, gif, jpg und jpeg als zulässig definiert
    • Das kann in LocalSettings.php durch folgende Anweisung z.B. um pdf- und zip-Dateien erweitern:
    • $wgFileExtensions = array( 'png', 'gif', 'jpg', 'svg', 'jpeg', 'pdf', 'zip' );

Um Bilder und Formeln auch im "safe mode" von PHP hochladen zu können, sind folgende Maßnahmen erforderlich:

  • Im mediawiki/images-Verzeichnis folgende Ordner anlegen:
    • /archive (für die Bilder)
    • /thumb (wahrscheinlich für Vorschau)
    • /tmp
    • /math (für Formeln)
  • Für alle diese Ordner folgende Eigenschaften (Berechtigungen) setzen:
    • Gruppe=www / Eigentümer=root
    • Eigentümer und Gruppe dürfen "Inhalt Anzeigen und Ändern"
    • Sonstige dürfen "Inhalt darstellen"
  • Nicht die Verzeichnisstruktur "/a/ab/foo.png" für Bilder verwenden:
    • $wgHashedUploadDirectory = false;

.

Anzeige des richtigen Domän-Namens bei Domän-Umleitung

Die Domäne optiyummy.de wird beim Provider STRATO gehostet. Dort ist allerdings nur eine externe Umleitung auf einen an der TU-Dresden betriebenen Server eingetragen:

http://www.efwtopti.et.tu-dresden.de/mediawiki/

Dabei ist www.efwtopti.et.tu-dresden.de der im DNS eingetragene Server-Name und /mediawiki der Ordner, in dem sich das Wiki-System von OptiYummy befindet (index.php). Diese Umleitung funktioniert sehr gut, besitzt aber einen kleinen Schönheitsfehler:

  • Im Browser erscheint nicht der Domän-Name www.optiyummi.de, sondern obiger Server-Name.
  • Um dieses Problem zu beheben, muss man in der Datei LocalSettings.php die Zeile:
$wgScriptPath = "/mediawiki";

durch die zwei folgenden Zeilen ersetzen:

$wgScriptPath = "";
$wgServer = "http://www.optiyummy.de";

Leider entstehen danach zwei eigenartige Effekte, wahrscheinlich wegen des geänderten ScriptPath. Allerdings treten die folgenden Effekte nicht in allen Web-Browsern auf, jedoch auf jeden Fall im IE7:

  1. Die Überschriften der Navigationsblöcke im Sidebar-Menü bestehen nun alle nur noch aus Kleinbuchstaben.
  2. Auch für nicht angemeldete Nutzer wird an jedem Abschnitt einer Seite der Bearbeiten-Link angezeigt.

Mit etwas Ursachenforschung lassen sich diese Effekte sicher noch beheben!


Anmerkung:

Scheinbar ist die Verwendung des richtigen Domän-Namens die Vorraussetzung dafür, dass die Suchmaschinen die Datei http://www.optiyummy.de/robots.txt dem Wiki-System zuordnen können. Ohne die Anpassung erhalten die Suchmaschinen nur Seiten, die nicht von optiyummy.de kommen!

Layout-Gestaltung auf Basis des "Monobook"-Skin

  • $wgLogo = "$wgScriptPath/images/logo.gif"; (Eigenes Logo 135x135 Pixel)
  • $wgFavicon = "$wgScriptPath/images/favicon.ico"; (16x16 Pixel, z.B. mit IrfanView gespeichert)

Änderungen in der Navigationsleiste (MediaWiki:Sidebar):

  • Man meldet sich als Administrator "WikiSysop" an.
  • Suche nach der Seite "MediaWiki:Sidebar" öffnet die Navigationsbeschreibung. Diese kann man "normal" zum Bearbeiten öffnen:
  • Alle Text-Worte in dieser Seite werden als Text-Variable interpretiert. Das Wiki-System sucht für die gewählte Language das zugehörige Wort im Wörterbuch. Wird kein Eintrag im Wörterbuch gefunden, so wird das "Wort" direkt in der Navigationsleiste benutzt.
  • Die Navigationsleiste kann aus mehreren Abschnitten bestehen. Jeder Abschnitt ist durch eine Zeile mit einem vorangestellten Stern gekennzeichnet.
  • Innerhalb eines Abschnitts sind jeder Zeile zwei Sterne vorangestellt.
  • Die Zeilen im Abschnitt entsprechen den Menüpunkten.
  • Jede Zeile hat die Struktur ** link|Text.
  • Der Link zeigt auf eine interne Wikiseite oder man benutzt die Konventionen für externe Links.
  • Achtung: Ein Link sollte keine Umlaute oder Sonderzeichen enthalten, um Zeichensatz-Probleme bei der Portierung der Datenbank zu vermeiden!
  • Im Beispiel wurde die Navigationsleiste in mehrere Sektionen geteilt.

  • Grundlagen
    • Grundlagen: Zielstellung|Zielstellung
    • Grundlagen: Entwurfsprozess|Entwurfsprozess
    • Grundlagen: Simulation|Simulation
    • Grundlagen: Probabilistik|Probabilistik
    • Grundlagen: Optimierung|Optimierung
  • Praxisbeispiele
    • Praxis: Zielstellung|Zielstellung
    • Praxis: Aktorik|Aktorik
    • Praxis: Antriebstechnik|Antriebstechnik
    • Praxis: Sensorik|Sensorik
    • Praxis: Thermisches Management|Wärme
  • Software (Tutorials)
    • Software: Zielstellung|Zielstellung
    • Software: OptiY-Workflow|OptiY-Workflow
    • Software: Excel-Tabellen|Excel-Tabellen
    • Software: System-Simulation|System-Simulation
    • Software: FEM-Systeme|FEM-Systeme
    • Software: CAD-Programme|CAD-Programme
  • Hardware
    • Hardware: Zielstellung|Zielstellung
    • Hardware: Personalcomputer|Personalcomputer
    • Hardware: Terminal-Server|Terminal-Server
    • Hardware: PC-Cluster|PC-Cluster
  • Info's
    • Neue Seiten|Neue Seiten
    • Anmelde-Info|Anmelde-Info
    • helppage|Hilfe für Autoren
    • Autoren|Liste der Autoren
    • OptiYummy-System|OptiYummy-System
  • Powered by

  • Statt der Systemseite "MediaWiki:Mainpage" (Hauptseite) wurde eine eigene "Startseite" beutzt. Der Link hinter dem Logo über der Navigationsleiste soll zu dieser eigenen "Startseite" führen:
    • Auf eine Änderung des Wörterbuchs in \mediawiki\languages\messages\MessagesDe.php wurde verzichtet, da es dann wahrscheinlich Probleme bei einer Portierung des Wikisystems gibt.
    • Man erreicht dieses Ziel relativ einfach, indem man wie zuvor "MediaWiki:Sidebar" (für die Navigationsleiste) einfach die Systemseite "MediaWiki:Mainpage" zum Bearbeiten öffnet.
    • Als Text schreibt man dort nur Startseite auf die erste Zeile.
    • Nach dem Speichern dieser Seite führt der Link hinter dem Logo zu einer leeren Startseite, die man nun normal bearbeiten kann.


Änderungen in der Datei "MonoBook.php"

Die folgenden Änderungen in der Datei "MonoBook.php" im "Skin"-Ordner bergen die Gefahr, dass Änderungen bei Updates verloren gehen. Doch zuvor besteht die Gefahr, dass man die Struktur dieser Datei versehentlich durch die Änderungen zerstört:

Achtung: Vorher eine Kopie der Orignal-Version von MonoBook.php erzeugen und sichern.


Ausblenden von Items in der Fußzeile:

  • Alle nicht gewünschten Items wurden mit Kommentar /* */ ausgeklammert
  • Nur disclaimer (=Impressum) blieb erhalten:
$footerlinks = array(
  /*'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',*/
  /*'privacy', 'about',*/ 'disclaimer', 'tagline',
 );

Ausblenden des Werkzeuge-Menüs für nichtangemeldete Nutzer:

  • Finden des folgenden Abschnitts (Suchen nach p-tb):
        <div class="portlet" id="p-tb">
        <h5><?php $this->msg('toolbox') ?></h5>
 
  • Ersetzen durch die folgenden Zeilen:
        <div class="portlet" id="p-tb">
        <?php if($this->data['loggedin']) { ?>
        <h5><?php $this->msg('toolbox') ?></h5>
 
  • Weiter unten steht das Ende des soeben editierten div-Blockes. Dort sucht man folgenden Abschnitt:
         wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
 ?>
         </ul>
     </div>
   </div>
 
  • Dort ergänzt man die Zeile (zwischen den beiden /div), welche das neue "if"-Statement schließt:
         wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
 ?>
         </ul>
       </div>
     <?php } ?>		
   </div>
 

Ausblenden der Register-Tabs für nichtangemeldete Nutzer:

Man sucht in "MonoBook.php" die folgende Zeile:

foreach($this->data['content_actions'] as $key => $tab) {

und fügt unmittelbar nach "$tab)" die fett markierte Bedingung ein:

foreach($this->data['content_actions'] as $key => $tab) if($this->data['loggedin']==1) {



Weiter mit "System- und Datensicherung" -> Seite 3