OptiYummy-Update 1.15 auf 1.19

Aus OptiYummy
Zur Navigation springenZur Suche springen

Zielpraezisierung

Im Jahre 2012 wurde das Optimierungsportal OptiYummy von einem eigenen Linux-Server auf ein STRATO Hostingpaket PowerWeb Basic übertragen. Dabei erfolgte gleichzeitig ein Update von der MediaWiki-Version 1.10.0 auf die damals von STRATO unterstützte Version 1.15.2. Der ziemlich aufwändige Update-Prozess wurde ausführlich beschrieben (Siehe: Update 2012).

Inzwischen besteht die Möglichkeit, mittels des STRATO AppWizard ein Update auf die Version 1.19 vorzunehmen. Diese Version wird noch längere Zeit mit Updates versorgt (Siehe: Versionszeitplan).

Da nach bisherigen persönlichen Erfahrungen MediaWiki-Updates noch nie problemlos verliefen, wurde bewusst dafür die ruhige Zeit zum Jahreswechsel gewählt. Die erforderlichen Schritte werden wieder ausführlich dokumentiert.

Update des MediaWiki-Systems mit STRATO-AppWizard

Das Web-Interface für Hosting-Pakete wird von STRATO kontinuierlich modifiziert. Diese Beschreibung entspricht dem Stand Ende Dezember 2014:

  • Unter dem Menüpunkt Ihr Paket > Homepagegestaltung > AppWizard findet man die Liste der installierten MediaWiki-Anwendungen einschließlich der Versionsnummer 1.15.2-4.
  • Stellt STRATO ein Update auf eine aktuellere Version bereit (im Beispiel 1.19.1-2), so ist dies für die betreffende MediaWiki-Anwendung vermerkt.
  • Bevor man die Aktualisierung startet, sollte man die "Details" für diese Anwendung öffnen.

Backup der Version 1.15

  • In der Übersicht zu den Details besteht die Möglichkeit, "Manuelle Backups" zu erstellen. Diese sollte man nutzen. Jedoch handelt es sich dabei anscheinend nur um einen Abzug der aktuellen Datenbank und nicht um die Sicherung der gesamten Ordnerstruktur der MediaWiki-Anwendung. Eine Wiederherstellung aus diesem manuellem Backup war nicht möglich, wenn die Ordnerstruktur nicht mehr vorhanden war!
  • Wie bereits in den vorherigen Anleitungen beschrieben, sollte man mittels PUTTY und dem Befehl mysqldump den aktuellen Zustand der Datenbank als SQL-Datei exportieren:
mysqldump DBxx --add-drop-table -h rdbms -u BENUTZERNAME -pPASSWORT > datei.sql
  • Zusätzlich zur Sicherung der kompletten Ordnerstruktur auf dem lokalen PC (z.B. mittels FTP- oder SSH-Zugang), sollte man mittels PUTTY eine Kopie des MediaWiki-Ordners direkt im Webspace mit dem cp-Befehl erzeugen, z.B.:
cp -rp mediawiki_02 mediawiki_02b
  • Die Option -rp kopiert rekursiv die gesamte Ordnerstruktur unter Beibehaltung des Dateidatums von der Quelle mediawiki_02 in das Ziel mediawiki_02b.
  • Sollte nach dem Update des Wiki-Systems dieses nicht mehr funktionieren, so kann man einfach den Ordner des zerstörten Systems in Putty mittels rm-Befehl löschen, z.B.:
rm -r mediawiki_02
  • Aus dem kopierten Ordner erzeugt man wieder den Original-Ordner, z.B.:
cp -rp mediawiki_02b mediawiki_02
  • Danach sollte das Wiki-System wieder funktionieren, falls die Datenbank durch das Update nicht zerstört wurde.

Aktualisieren auf 1.19

Der MediaWiki-Aktualisierungsassistent warnt:

  • "Die Aktualisierung auf neue Versionen kann die Funktionalität ihrer Webseite beeinträchtigen! Deshalb wird zuvor ein automatisches Backup erstellt, welches jederzeit zurückgespielt werden kann."
  • Deshalb "Weiter" nach Vergabe eines Bezeichners für das anzulegende Backup, z.B.: optiyummy-backup.
  • Es erscheint eine Info zu den wichtigsten Neuerungen der Version 1.19, welche man mit "Fertigstellen" quittiert.
  • Es erfolgt dann nach einiger Zeit die Meldung zur erfolgreichen Aktualisierung.

Leider ist diese Aktualisierung nicht wirklich komplett, denn nach Aufruf von www.optiyummy.de sind sämtliche Bilder und mathematische Formeln verschwunden. Außerdem ist die Bearbeitung auch für nicht angemeldete Nutzer freigeschalten:

  • In die neue Datei LocalSettings.php wurden die für die alte Version ergänzten Änderungen nicht mit übernommen!
  • Man sollte die aktuelle Datei LocalSettings.php sichern und dann einfach eine Kopie der alten Version von LocalSettings.php benutzen!
  • Danach werden alle Bilder wieder dargestellt und nicht angemeldete Nutzer können keine Änderungen vornehmen.
  • Ein Vergleich beider Versionen der LocalSettings.php zeigte, dass die Datei aus der Version 1.15 bereits alle erforderlichen Einträge enthält. Es müssen also keine Neuerungen aus der Version 1.19 übernommen werden.

Hinweis:
Die MediaWiki-Version 1.19 funktioniert nur mit der PHP-Version 5.3! Das Aktivieren einer neueren PHP-Version unter dem STRATO-Menü Verwaltung > Website-Configurator > PHP-Version einstellen führt zu Fehlermeldungen bei der Darstellung.

In der MediaWiki-Version 1.15 konnte man noch über Änderungen in der Datei "/skins/MonoBook.php" überflüssige Elemente der Oberfläche ausblenden. In der Version 1.19 sind dafür andere Modifikationen erforderlich.

Es müssen noch Lösungen gefunden werden für das Ausblenden folgender Elemente des MonoBook-Layouts:

  1. Ausblenden aller Registerkarten für nicht angemeldete Benutzer ("Seite", "Diskussion", "Quelltext anzeigen", "Versionen/Autoren")
  2. Ausblenden aller Items in der Fußzeile außer "Impressum".
  3. Ausblenden des Werkzeug-Menüs für nicht angemeldete Benutzer.

Außerdem sollte das Rendern von mathematischen Formeln wieder aktiviert werden.

Ausblenden der Registerkarten

Folgende Änderungen sind vor den letzten 3 Zeilen der Datei /skins/MonoBook.php zu ergänzen (Originaldatei zuvor sichern!):

<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-viewsource { display: none !important; }
     </style> 
   <?php } ?>

<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-talk { display: none !important; }
     </style> 
   <?php } ?>
  
<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-history { display: none !important; }
     </style> 
   <?php } ?>
  
<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-nstab-main { display: none !important; }
     </style> 
   <?php } ?>

<?php global $wgUser; if( !$wgUser->isAllowed('edit') ) { ?>
     <style type="text/css">
       #ca-nstab-project { display: none !important; }
     </style> 
   <?php } ?>

Das sind dann die bisherigen letzten 3 Zeilen, welche erhalten bleiben:

<?php
      }
} // end of class

Es werden damit die Registerkarten für alle Nutzer ausgeblendet, welche nicht editieren dürfen. Das sind infolge der Einstellungen in LocalSettings.php alle nicht angemeldeten Nutzer.

Fusszeile nur mit Impressum

Dafür muss in der Datei /skins/MonoBook.php die folgende Zeile mit der Definition der gewünschten FooterLinks ergänzt werden:

$validFooterLinks = array('disclaimer', 'tagline'); // Nur Impressum in Fusszeile

Diese Zeile ist direkt vor den Zeilen für das Schreiben der Fußzeilen-Einträge einzufügen:

if ( count( $validFooterLinks ) > 0 ) {
:
:
foreach( $validFooterLinks as $aLink ) { ?>
:

Hinweis: Die durch Doppelpunkt angedeuteten drei Zeilen wurden hier nicht dargestellt, weil es Probleme mit der Darstellung ihrer Syntax auf dieser Seite gab.

Werkzeuge nur fuer angemeldete Nutzer

Die erforderliche Änderung von /skins/MonoBook.php ist im Prinzip identisch mit der von Version 1.15:

  • 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 ) );
         wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
 ?>
         </ul>
     </div>
   </div>
 
  • Dort ergänzt man die Zeile (zwischen den beiden /div), welche das neue "if"-Statement schließt:
         wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
         wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
 ?>
         </ul>
       </div>
     <?php } ?>		
   </div>
 

Rendern von mathematischen Formeln

Mit der MediaWiki-Version 1.18.0 wurde die Funktion $wgUseTeX=true aus dem Kern des Wiki-Systems entfernt. Stattdessen muss man dafür die Extension:Math benutzen. Die Installation ist in MediaWiki.org beschrieben:

  • Zum Laden der Math-Extension von der Download-Seite muss man die benötigte MediaWiki-Version 1.19 wählen und mit "Continue" bestätigen.
  • Nach dem Download der Archiv-Datei Math-REL1_19-063ac7d.tar.gz muss man deren Inhalt entpacken.
  • Der gesamte Math-Ordner ist in den Ordner /extensions des WikiSystems zu kopieren.
  • Die Math-Extension muss in der Datei LocalSettings.php registriert werden (z.B. unmittelbar nach $wgUseTeX=true):
$wgUseTeX = true; // seit Version 1.18.0 ist zusaetzlich Math-Extension erforderlich:
require_once( "$IP/extensions/Math/Math.php" );
  • Danach werden bereits vorhandene Formeln korrekt angezeigt.

Leider können neue Formeln noch nicht als Bild gerendert werden (Fehlermeldung "texvc-Programm wurde nicht gefunden"):

  • Anscheinend steht bei STRATO das Programm texvc nicht zur Verfügung oder wird nicht gefunden.
  • Letzteres ist wahrscheinlicher, weil in der vorherigen Version 1.15 das Rendern von Formeln bereits funktionierte.
  • Auf der Seite http://www.mediawiki.org/wiki/LaTeX_on_a_shared_host wird beschrieben, wie mit Hilfe eines externes Servers dieses Rendern auch auf gehostetem Webspaces möglich ist:
  • In der Datei extensions\Math\Math.body.php ist folgende Zeile zu ergänzen in der function renderMath:
return '<img class="tex" src="http://www.forkosh.com/mathtex.cgi?' . rawurlencode($tex) . '" alt="LaTeX: ' . htmlspecialchars($tex) . '">';
  • Diese erweiterte Function hat nun folgenden Inhalt:
public static function renderMath( $tex, $params = array(), ParserOptions $parserOptions = null ) {
	return '<img class="tex" src="http://www.forkosh.com/mathtex.cgi?' . rawurlencode($tex) . '" alt="LaTeX: ' . htmlspecialchars($tex) . '">';
	$math = new MathRenderer( $tex, $params );
	if ( $parserOptions ) {
		$math->setOutputMode( $parserOptions->getMath() );
	}
	return $math->render();
}
  • Danach funktioniert das Rendern der Formeln ohne Probleme. Leider erfolgt dieses Rendern auf dem Server forkosh.com jedoch bei jedem Aufruf der Seite erneut, was zu einer sichtbaren Verzögerung der Darstellung führt!
  • Deshalb sollte man die gerenderten Formeln als Bild "abschießen" (<ALT>-<Druck> der Bildschirmseite und Zuschnitt), als GIF speichern und dann als Bild einbinden.
  • Um die Formel später noch bearbeiten zu können, bewahrt man sie als Kommentar innerhalb des Quellcodes, z.B.:
 <!-- <div align="center"> <math>c = \frac{E \cdot b \cdot t^3}{4 \cdot L^3} </math> </div> --> 
 <div align="center"> [[Datei:Software_CAD_-_Tutorial_-_Optimierung_-_Dimensionierungsregeln_c_Feder.gif|.]] 
.

Inbetriebnahme des erweiterten Editors

Seit der Version 1.18 enthält der Source-Code bereits die Extension:WikiEditor. Diese muss man in der Datei LocalSettings.php nur noch registrieren und konfigurieren:

  • Dazu sind am Ende der Datei folgende Codezeilen zu ergänzen;
require_once "$IP/extensions/WikiEditor/WikiEditor.php"; 
# Enables use of WikiEditor by default
$wgDefaultUserOptions['usebetatoolbar'] = 1;
  • Weitere Möglichkeiten der Konfiguration (z.B. alle Buttons oben) wurden nicht genutzt, weil sie unter dem Editierfeld die Darstellung zerstörten.

Tabellengestaltung

In Hinblick auf die Gestaltung von Tabellen bringt das Update auf die Version 1.19 bedeutende Vorteile. Anscheinend funktionieren nun alle Möglichkeiten, welche in der Wikipedia-Tabellenhilfe beschrieben sind.

Einbinden von Videos

Die [Extension:EmbedVideo] läuft ab der MediaWiki-Version 1.19. Damit wird es unter anderem möglich, Youtube-Videos in die Seiten einzubetten:

  • Die ZIP-Datei der Extension ist über obigem Link zu laden. Der Inhalt muss in den Ordner "/Extension/EmbedVideo/" kopiert werden.
  • Die Registrierung in der Datei LocalSettings.php erfolgt mittels:
require_once "$IP/extensions/EmbedVideo/EmbedVideo.php";

Danach funktioniert das Einbetten und Abspielen von Videos, wenn der Browser HTML5-kompatibel ist oder der Flashplayer installiert wurde:

  • Ob dies bei dem eigenen Browser der Fall ist, sieht man am folgenden Beispiel:

Druckversion der Seiten anpassen

Standardmäßig werden in der Druckversion die externen Links in voller Länge eingeblendet, welche sich hinter den in den Seiten dargestellten Kurzformen verbergen. Die Druckausgabe sollte jedoch der Bildschirmdarstellung entsprechen, weshalb man die Ausgabe der externen Links unterdrücken muss:

  • Eine Änderung in den MediaWiki-Systemdateien ist dafür nicht erforderlich.
  • Man editiert als WikiSysop-Nutzer einfach die Seite "MediaWiki:Print.css" (Eintragen in das Suchfeld, wie bei MediaWiki:SideBar):
  • In der dargestellten Seite ergänzt man den Code:
#content a.external.text:after,
#content a.external.autonumber:after {
content: none;
}

Dieser überschreibt dann die Definitionen in der Datei "skins/common/commonPrint.css" des MediaWiki Source-Code.