OptiYummy-Update 1.19 auf 1.23

Aus OptiYummy
Zur Navigation springenZur Suche springen

Hinweis: Diese Seite wird zur Zeit erarbeitet und kann noch Fehler und Irrwege enthalten!!!


Zielpraezisierung

Im Dezember 2014 wurde das Optimierungsportal OptiYummy mittels des STRATO AppWizard von der MediaWiki-Version 1.15 auf die damals von STRATO unterstützte "long term support release (LTS)" 1.19 übertragen. Der aufwändige Update-Prozess wurde ausführlich beschrieben (Siehe: Update 2014).

Inzwischen besteht die Möglichkeit, mittels des STRATO AppWizard die MediWiki LTS-Version 1.23 zu installieren (Siehe: Versionszeitplan). Eine direkte Update-Möglichkeit von der Version 1.19 existiert nicht:

  • Die MediaWiki-Version 1.23 soll als leeres System installiert und in seiner Oberfläche entsprechend des bisherigen OptiYummy-System konfiguriert werden. Dafür wird die bisher noch ungenutzte Domäne optiyummy.eu genutzt, so dass keine Störungen im aktuell laufenden OptiYummy-System entstehen können.
  • Danach sollen die Inhalte des OptiYummy-Systems aus der Mediawiki-Version 1.19 übernommen werden. Dies wird sicher zum schwierigsten Teil des Update-Prozesses!

Installation des MediaWiki-Systems mit STRATO-AppWizard

Das Web-Interface für Hosting-Pakete wird von STRATO kontinuierlich modifiziert. Diese Beschreibung entspricht dem Stand vom Februar 2016:

  • Unter dem Menüpunkt Ihr Paket > Homepagegestaltung > STRATO AppWizard findet man die Liste der installierten MediaWiki-Anwendungen einschließlich der Versionsnummer.
  • Stellt STRATO ein Update auf eine aktuellere Version bereit, so ist dies für die betreffende MediaWiki-Anwendung vermerkt. Für die Version 1.19.1-2 ist dies nicht der Fall.
  • Für die Installation einer neueren MediaWiki-Version muss man also in der Übersicht der verfügbaren Anwendung die Liste der verfügbaren Wiki-Versionen aufklappen. Hier stand nur die MediaWiki Version 1.23.13-76 zum Installieren zur Verfügung.
  • Die von STRATO bereitgestellte MediaWiki-Version (im Beispiel 1.23.13-76) hinkt der aktuellen Version von www.mediawiki.org immer um einige Versionsnummern hinterher (im Beispiel 1.26). Die Auswirkung auf die Funktionalität sind sicher gering.
  • Nach Wahl von Installieren erfolgt die Installation in 4 Schritten:
1. MediaWiki - Einstellungen zur Administration
  • Bezeichnung: OptiYummy
  • Benutzername: WikiSysop
  • Passwort: ganz geheim
  • E-Mail Adresse: admin@domain.de
2. MediaWiki - Domain Einstellungen
  • Die bestehende Domäne optiyummy.eu wurde als verwendbar für das WikiSystem angeboten.
  • Nach Auswahl der Domäne genügt ein Weiter.
3. MediaWiki - Datenbank
  • Den Kommentar "Datenbank für OptiYummy" kann man beibehalten.
4. MediaWiki - Fertigstellen
  • Man muss die Lizenz-Bedingungen akzeptieren.
  • Als Verzeichnis für das WikiSystem wurde im Beispiel mediawiki_03 automatisch vergeben.
  • Das Fertigstellen dauert nur einige Sekunden.

Danach steht ein MediaWiki-System in seiner Grundeinstellung zur Verfügung:

  • Die Links Zur Webseite und Zur Admininstrationsfläche führen beide zur Startseite des Wiki-Systems. Dort kann man nur die Verwaltung durchführen, welche nach Anmeldung als WikiSysop möglich sind.

Wiki-System individuell konfigurieren

Man benötigt den Zugang direkt auf die Dateien des Wiki-Systems im Homeverzeichnis. Von STRATO werden für den Zugriff auf das Homeverzeichnis sowohl ein FTP- als auch ein SSH-Zugang zur Verfügung gestellt:

  • Server: ftp.strato.de bzw. ssh.strato.de
  • Benutzername: Domän-Name (im Beispiel: www.optiyummy.eu)

Man sollte den verschlüsselten Zugang per SSH verwenden! Sehr komfortabel ist dabei z.B. die Nutzung des Total-Commanders.

Vergeben von Nutzerrechten

Die folgenden Einstellungen sind in der Datei LocalSettings.php vorzunehmen, welche sich im Wiki-Verzeichnis mediawiki_03 befindet. Dazu wurde mittels Total-Commander eine lokale Kopie von LocalSettings.php erzeugt. Diese wird schrittweise verändert und zum Test der Wirkung wieder per FTP in das Wiki-Verzeichnis kopiert.

Wichtig: Standardmäßig können auch anonyme Nutzer Wiki-Seiten editieren! Deshalb sollte man als erste Aktionen die Nutzerrechte ändern. Dazu ergänzt man in der Datei LocalSettings.php am Ende die Zeilen:

## Benutzerverwaltung
## Nur noch angemeldeten Benutzern das Bearbeiten erlauben
$wgGroupPermissions['*']['edit'] = false;
## Neuanmeldungen verbieten
$wgGroupPermissions['*']['createaccount'] = false;
## Anlegen neuer Seiten nur für angemeldete Nutzer
$wgGroupPermissions['*']['createpage'] = false;
## Anlegen neuer Diskussionen nur für angemeldete Nutzer
$wgGroupPermissions['*']['createtalk'] = false;
## Verstecken der Edit-Section-Links vor nichtangemeldeten Nutzern
$wgDefaultUserOptions['editsection'] = false;
## Ausschalten der Links auf IP-Diskussionsseiten rechts oben
$wgShowIPinHeader = false;

Das Versenden von E_Mails wurde abgeschalten:

$wgEnableEmail      = false;
$wgEnableUserEmail  = false;

Es wird ein Creative Commons Lizenzmodell für die Inhalte benutzt. Zulässig ist folgende Verwertung der Inhalte:

  • Verteilung: kopieren, verbreiten und öffentlich Aufführen
  • Modifikation: Anpassung der Inhalte an die eigene Arbeit
  • Kommerzielle Verwertung

Unter der Bedingung:

  • der Namensnennung des Autors oder des Lizenzsgebers,
  • ohne den Eindruck zu erwecken, bei der Verwertung Unterstützung erhalten zu haben.

Dazu sind folgenden Variablen in LocalSettings.php zu ergänzen:

$wgRightsUrl = "http://creativecommons.org/licenses/by/3.0/";
$wgRightsText = "Creative Commons";
$wgRightsIcon = "http://i.creativecommons.org/l/by/3.0/88x31.png";

Anpassung des Erscheinungsbildes

Wahl des MonoBook-Skin

  • Standardmäßig ist in der Version 1.23 der Skin "vector" eingestellt.
  • Durch Änderung in LocalSettings.php kann man "monobook" wählen:
## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'cologneblue', 'monobook', 'vector':
$wgDefaultSkin = "monobook";

Eigenes Logo und Favicon:

  • Die erforderlichen Dateien werden per FTP in den images-Ordner kopiert.
  • in LocalSettings.php wird die Zeile:
$wgLogo             = "";
  • ersetzt durch:
## Eigenes Logo 135x135 Pixel einbinden
$wgLogo = "/images/logo.gif";
$wgFavicon = "/images/favicon.ico";

Ausblenden von Registerkarten für nicht angemeldete Nutzer

  • 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.
  • Hinweis: Um die Änderungen des Skins im Browser zu sehen, genügt unter Umständen kein Neuladen <F5>, sondern man muss auch noch den Cache des Browsers löschen!

Ausblenden der Werkzeuge für nicht angemeldete Nutzer

  • Die erforderliche Änderung ist ebenfalls in /skins/MonoBook.php durchzuführen.
  • Finden des folgenden Abschnitts (Suchen nach p-tb):
        <div class="portlet" id="p-tb" role="navigation">
        <h3><?php $this->msg('toolbox') ?></h3>
 
  • Ersetzen durch die folgenden Zeilen:
        <div class="portlet" id="p-tb" role="navigation">
        <?php if($this->data['loggedin']) { ?>
        <h3><?php $this->msg('toolbox') ?></h3>
 
  • 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>
<?php    $this->renderAfterPortlet( 'tb' ); ?>
     </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>
<?php    $this->renderAfterPortlet( 'tb' ); ?>
       </div>
     <?php } ?>	
   </div>
 

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.

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;
# Displays the Preview and Changes tabs
$wgDefaultUserOptions['wikieditor-preview'] = 1;
# Displays the Publish and Cancel buttons on the top right side
$wgDefaultUserOptions['wikieditor-publish'] = 1;
# Displays the Preview and Changes tabs
$wgDefaultUserOptions['wikieditor-preview'] = 1;

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 und Seite aufrufen):
  • 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.

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:

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.23 wählen und mit "Continue" bestätigen.
  • Nach dem Download der Archiv-Datei Math-REL1_23-d0e998f.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:
require_once( "$IP/extensions/Math/Math.php" );
  • Versucht man damit im Editor z.B. die folgende Zeile einer Formel zu speichern:
  <math>c = \frac{E \cdot b \cdot t^3}{4 \cdot L^3} </math> 
  • Dann kommt es zu einem Datenbankfehler:
Es ist ein Datenbankabfragefehler aufgetreten. Dies könnte auf einen Fehler in der Software hindeuten.
  • Hier fehlt noch das Ausführen des auf der Download-Seite beschriebenen Update-Script, welches automatisch die notwendigen Datenbanktabellen erstellt, die diese Math-Erweiterung benötigt:
    • Man kann das direkt im Web-Browser erledigen, indem man dieses php-Script aufruft und seine Anweisungen folgt:
      http://www.optiyummy.eu/mw-config/index.php
      1. Bestätigen der Spracheinstellungen mit Weiter.
      2. Wert des $wgUpgradeKey für das vorhandene Wiki als Aktualisierungsschlüssel eingeben (ohne die ""), danach Weiter.
      3. MediaWiki-Tabellen aktualisieren mit Weiter bestätigen.
      4. Es kam dann die Erfolgsmeldung "Die Aktualisierung ist abgeschlossen. Das Wiki kann nun genutzt werden." Das Protokoll des Update-Prozesses sollte man in die Zwischenablage kopieren und als TXT-Datei sichern.
    • Das Update zeigt Wirkung, denn wenn man jetzt obige Formel über den Editor speichert, kommt die Meldung
Fehler beim Parsen (Das texvc-Programm wurde nicht gefunden. 
Bitte zur Konfiguration die Hinweise in der Datei math/README beachten.)
    • Das texvc-Programm fehlte für das STRATO-Hostingpaket bereits für die MediaWiki-Version 1.19. Deshalb muss man dafür einen Ersatz schaffen!

Hinweis: Das folgende ist noch nicht getestet!

  • 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\MathRenderer.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|.]] 
.