Hilfe:Anpassen

Aus ITwiki
Version vom 4. März 2008, 21:29 Uhr von WikiSysop (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Prinzipiell lässt sich die Benutzeroberfläche der Wikis nach Belieben verändern. Oft genügt es, die Stylesheets zu bearbeiten um die Optik zu beeinflussen, doch rei...)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Prinzipiell lässt sich die Benutzeroberfläche der Wikis nach Belieben verändern. Oft genügt es, die Stylesheets zu bearbeiten um die Optik zu beeinflussen, doch reicht dies nicht aus, wenn man inhaltliche Änderungen vornehmen will. Um beispielsweise die Links der Navigationsleiste am linken Bildrand zu bearbeiten, sind Änderungen im Quelltext nötig.

Hinweis: Alle Angaben beziehen sich auf MediaWiki Version 1.4.0. Zum Anpassen einer Wikimedia-Installation ab Version 1.5 siehe: Help:FAQ und [Help:Navigation bar]

Links zur Navigationsleiste hinzufügen[Bearbeiten]

Seit Version 1.4 werden die Links über eine Variable mit Arrays in der DefaultSettings.php gespeichert. Dort finden Sie den Eintrag:

$wgNavigationLinks = array (
    array(

Um die Variable bearbeiten zu können, müssen Sie diese Zeilen in die Datei LocalSettings.php hineinkopieren.

Die Angaben hinter text und href beziehen sich jeweils auf MediaWiki-Meldungen. Diese beziehen sich auf MediaWiki-Seiten, die entweder schon bestehen oder durch die Meldung neu angelegt werden. Eine MediaWiki-Seite legt man also ganz einfach an, indem man in die Adressleiste beispielsweise eintippt: "Meine URL"/index.php/MediaWiki:NeueSeite oder "Meine URL"/index.php/MediaWiki:KanzlerSchroeder . Es erscheint dann die neue Seite mit genau diesem Titel, also MediaWiki:Neue Seite oder MediaWiki:KanzlerSchroeder.


1. Beispiel: Sie wollen in der Navigation einen Link zur Seite Inhalt anlegen und in der Navigationsleiste soll dieser Link als Eintrag Übersicht erscheinen. Den neuen Arraywert, der in der Datei LocalSettings.php für diesen Navigationsleisteneintrag definiert werden muss, könnte man wie folgt anlegen (gekürzt):

$wgNavigationLinks = array(
    ...
    array( 'text'=>'help', 'href'=>'helppage' ),
    array( 'text'=>'sitesupport', 'href'=>'sitesupport-url' ),
    array( 'text'=>'contents', 'href'=>'contents-url' )
);

Sie haben also nun einen neuen Arraywert array( 'text'=>'contents', 'href'=>'contents-url' ) angelegt.


Beachten Sie, dass Sie hinter die Zeile des vorletzten Arraywertes array( 'text'=>'sitesupport' ... kein Komma setzen, da es sonst zu einer Fehlermeldung kommt, wenn Sie ihre MediaWiki-Website aufrufen.

Im nächsten Schritt muss nun die Seite MediaWiki:Contents-url angelegt werden. In die Adressleiste tragen Sie ein: "Meine URL"/index.php/MediaWiki:Contents-url (Statt "Meine URL" tragen Sie Ihre tatsächliche URL ein!).

Es erscheint erwartungsgemäß nun die neue Seite mit dem Titel MediaWiki:Contents-url. Klicken Sie auf "Bearbeiten" und tragen Sie in das Textfeld der Seite ein:

Inhalt

Speichern Sie die Seite.


Nun muss die Seite MediaWiki:Contents auf die gleiche Weise angelegt werden. Klicken Sie auf "Bearbeiten" und tragen Sie in das Textfeld der Seite ein:

Übersicht

Speichern Sie die Seite.

Jetzt müssen Sie nur noch in der Datei LanguageDe.php folgendes einfügen:

"contents"	=> "Übersicht", 
"contents-url" => "ITwiki:Übersicht",

Auf der Navigationsleiste erscheint jetzt der Eintrag Übersicht, der auf die Seite Inhalt verweist.


Im Hinblick auf das Endergebnis ist es unerheblich, ob Sie wie in diesem Beispiel zuerst die Seite MediaWiki:Contents oder die Seite MediaWiki:Contents-url anlegen.



2. Beispiel: Sie wollen in der Navigationsleiste einen Link zu einer Seite namens Themen anlegen und diesen Link ebenfalls mit Themen beschriften:


$wgNavigationLinks = array(
    ...
    array( 'text'=>'help', 'href'=>'helppage' ),
    array( 'text'=>'sitesupport', 'href'=>'sitesupport-url' ),
    array( 'text'=>'themen', 'href'=>'themen-lnk' )
);


Zunächst muss die Seite MediaWiki:Themen-lnk angelegt werden und in deren Textfeld eingetragen werden:

Themen

Anschließend wird die Seite MediaWiki:Themen angelegt. Auf "Bearbeiten" klicken und in das Artikel-Textfeld ebenfalls eintragen:

Themen

Auf der Navigationsleiste erscheint nun der Eintrag "Themen", der auf den Artikel "Themen" verweist.


Wollen Sie stattdessen einen Hyperlink auf eine Website anlegen, tragen Sie einfach die URL in die MediaWiki-Meldung ein, achten Sie aber dabei darauf, dass die URL mit http:// beginnt. Es sind auf diese Weise auch Links auf die eigene Mediawiki-Site möglich, beispielsweise um Kategorien aufzulisten. Siehe nachfolgenden Abschnitt.

Externe Links zur Navigationsleiste hinzufügen[Bearbeiten]

Sie möchten einen Eintrag auf der Navigationsleiste, der auf http://de.wikipedia.org verweist und als "Deutsche Wikipedia" auf der Navigationsleiste erscheint:

$wgNavigationLinks = array (
    array( 'text'=>'mainpage', 'href'=>'mainpage' ),
    array( 'text'=>'portal', 'href'=>'portal-url' ),
    array( 'text'=>'currentevents', 'href'=>'currentevents-url' ),
    array( 'text'=>'mylink', 'href'=>'mylink-url' ),
    array( 'text'=>'help', 'href'=>'helppage' ),
    array( 'text'=>'sitesupport', 'href'=>'sitesupport-url' )
    ...
    array( 'text'=>'externer_Link', 'href'=>'externerLink-url' )
    ...
);


Seite externerLink-url anlegen (in die Adressleiste eintragen: "Meine URL"//index.php/MediaWiki:ExternerLink-url). Auf "Bearbeiten" klicken und eintragen:

http://de.wikipedia.org

Danach Artikel speichern.

Eine Seite Externer_Link" anlegen und in der Seite eintragen:

Deutsche Wikipedia

Auf der Navigationsleiste erscheint nun "Deutsche Wikipedia". Durch Anklicken gelangt man nun direkt zur deutschen Wikipedia

Eine neue Sektion zur Navigationsleiste hinzufügen[Bearbeiten]

In einem neu installierten MediaWiki lassen sich auf der Navigationsleiste folgende Sektionen erkennen: "Navigation", "Suche" und "Werkzeuge", unter Umständen auch "Andere Sprachen". Mit einigen tieferen Eingriffen in den Quelltext lässt sich leicht eine neue Sektion hinzufügen.

Beispielhaftes Ziel dieses Abschnittes soll es sein, eine Sektion "Wichtige Seiten" zu erstellen. Das Durchführen der Prozedur setzt grundlegende PHP- und HTML-Kentnisse voraus.


Schritt 1: Vorbereiten der SkinTemplate-Klasse
Die SkinTemplate.php, die sich im includes-Verzeichnis befindet, enthält die Klasse SkinTemplate, welche über eine Funktion buildNavigationUrls verfügt. Diese Funktion verarbeitet die Variable $wgNavigationLinks (zu finden in DefaultSettings.php) und legt deren Inhalt intern ab.

Die Funktion buildNavigationUrls verarbeitet also letztlich all die Links, die sich in der "Navigation"-Sektion befinden. Legen wir also nun eine neue Funktion nach dem Vorbild der buildNavigationUrls an, um die Links unserer geplanten Sektion "Wichtige Seiten" zu bearbeiten.

  1. Kopieren Sie den kompletten Quelltext der Funktion buildNavigationUrls und fügen Sie ihn am besten direkt unterhalb neu ein. Benennen Sie diese zweite Funktion beispielsweise buildCustomUrls.
  2. Die buildNavigationUrls holt sich die Links aus der Variablen $wgNavigationLinks. Wir werden später eine ähnliche Variable mit dem namen $wgCustomLinks anlegen. Ersetzen Sie die beiden Referenzen auf $wgNavigationLinks in unserer neuen Funktion durch $wgCustomLinks.
  3. Die Funktion buildNavigationUrls wird derzeit lediglich an einer Stelle aufgerufen, nämlich etwas weiter oben am Ende der Funktion outputPage. Dort befinden sich folgende Zeilen:
$tpl->set( 'navigation_urls', $this->buildNavigationUrls() );
$tpl->set( 'nav_urls', $this->buildNavUrls() );
Die erste Zeile bedeutet, dass das Array mit den verarbeiteten Links, das die buildNavigationUrls zurückgibt, intern unter "navigation_urls" abgelegt wird. Das Gleiche müssen wir nun für unsere Funktion buildCustomUrls machen. Fügen Sie also folgende Zeile hinzu:
$tpl->set( 'custom_urls', $this->buildCustomUrls() );


Schritt 2: Hinzufügen der Links
Die Links für den Abschnitt "Navigation" werden in der Variablen $wgNavigationLinks in der DefaultSettings.php abgelegt. Wir brauchen nun ebenfalls eine solche Variable, nämlich die $wgCustomLinks. Da die DefaultSettings.php nicht geändert werden soll, tragen wir die Variable also in der LocalSettings.php ein.

Folgen Sie beim Anlegen der neuen Variablen der Deklaration der $wgNavigationLinks. Weitere Angaben hierzu finden Sie auf dieser Seite im Abschnitt Links zur Navigationsleiste hinzufügen. Zum jetzigen Zeitpunkt könnte die Angabe für unsere $wgCustomLinks beispielsweise so aussehen:

$wgCustomLinks = array (
    array( 'text'=>'contents', 'href'=>'contents-url' )
);

Mit diesem Quelltext würde der im Abschnitt Links zur Navigationsleiste hinzufügen angelegte Link seinen Platz in unserer neuen Sektion finden.

Natürlich können Sie beliebig viele Links eintragen.


Schritt 3: Anpassen des HTML-Quelltextes
Zuletzt muss der Quelltext, der dem Skin zugrunde liegt angepasst werden, um die neue Sektion anzuzeigen. Der Quelltext befindet sich in der MonoBook.php, die im skins-Verzeichnis lagert.

Die einzelnen Sektionen werden jeweils durch <div>-Tags beschrieben und beginnen wie folgt:

Navigation 
<div class="portlet" id="p-nav">
Suche 
<div id="p-search" class="portlet">
Werkzeuge 
<div class="portlet" id="p-tb">

Suchen Sie sich einen Ort für die neue Sektion aus.

  1. Wir haben uns bisher immer an den Quelltext für die Sektion "Navigation" gehalten - so auch jetzt. Kopieren Sie den Quelltext dieser Sektion und fügen Sie ihn an der gewünschten Stelle ein. Die Bezeichnung Navigation wird durch die MediaWiki-Meldung MediaWiki:Navigation erzeugt. Ändern Sie die entsprechende Zeile von
    <h5><?php $this->msg('navigation') ?></h5>
    um zu
    <h5><?php $this->msg('customlinks') ?></h5>
    , sodass die Überschrift unserer neuen Sektion nun durch die MediaWiki-Meldung MediaWiki:Customlinks festgelegt wird. Legen Sie diese Seite zusammen mit den Seiten für die Links in der Sektion (Schritt 2) an, wenn Sie fertig sind.
  2. Außerdem wird der Inhalt unserer neuen Sektion bisher noch aus den intern abgelegten Navigations-Links (data['navigation_urls']) geladen, ändern Sie also die Zeile
    <?php foreach($this->data['navigation_urls'] as $navlink) { ?>
    um in
    <?php foreach($this->data['custom_urls'] as $navlink) { ?>
    (siehe Schritt 1).


Fertig! Die neue Sektion sollte nun verfügbar sein.
Vergessen Sie nicht, die MediaWiki-Meldungen anzulegen.