Handbuch: Interface/Navigationsleiste
![]() | This page documents a system message, a wiki page that defines part of the MediaWiki interface. See also the default documentation. |
MediaWiki:Navigationsleiste definiert die Navigationsleiste, die Verweise zu den meisten, wichtigen Zielen in der Wiki enthält und den Administratoren der Seite (site) einen Ort bietet, eine bleibende Sammlung von Verweisen einzufügen. Zum Beispiel zeigen die meisten Verweise in der Wiki auf deren Diskussionen in der Gemeinschaft (Community discussion) und einige nützliche Werkzeuge.
In Monobuch und Vector Oberfläche (skin) befindet sich die Navigationsleiste oben links (oben rechts für rechts nach links Sprachen) zusammen mit der Suchleiste und den Werkzeugen. In anderen Oberflächen kann der Platz kann unterschiedlichen Stellen sein. This sidebar is not shown to users of the Mobile site (ie. the version of the site produced by Extension:MobileFrontend / Skin:MinervaNeue) - use the MobileMenu hook for that).
Um MediaWiki:Sidebar in einem Wiki anzupassen, muss man sich zuerst als ein Benutzer anmelden, der das editinterface-Recht hat - für Administratoren ist dies standardmäßig schon vorgegeben. (Informationen darüber: Wie man die Rechte an Gruppen oder Benutzer zuweist, siehe Manual:Nutzerrechte .)
Dann verwenden Sie einen Verweis zu einer Seite Ihrer Wiki, aber ersetzen Sie den Titel Ihrer Wikiseite (z.B. Hauptseite
) in der URL-Adressleiste mit MediaWiki:Sidebar
und laden Sie die Seite. Sie sollten nun den aktuellen Inhalt der Navigationsleiste sehen. Es kann sein, dass Sie die Syntax "//IhreDomain/IhrWiki/index.php?title=MediaWiki:Navigationsleiste&action=edit" für lange URL´s verwenden müssen.
Wurde der Inhalt der Navigationsleiste bereits geändert, kann einfach auf den Verweis "Editieren" oder "Quelle editieren" klicken. Ansonsten muss man die Seite erst erstellen, indem man auf "Erstellen" oder "Quelle erstellen" klickt.
Nachfolgend ein Beispielcode für eine Navigationsleiste:
* navigation ** mainpage|Accueil ** Special:RecentChanges|Recent changes * new heading ** portal-url|Forums ** https://www.mediawiki.org|MediaWiki home
Dieses Beispiel führt zu folgender Navigationsleiste:
Überschriften
The navigation bar can be split into sections, each with a heading of its own. The heading for each section is taken from the first-level list element ("navigation" and "new heading" in the example above).
If this text corresponds to the name of an interface message (an existing page of that title in the MediaWiki namespace), then the text of that page is used as a label; otherwise, the header title is used as-is.
To make sure the internationalized version is used, you can use the magic word {{int:}}
** randompage-url|{{int:randompage}}
Verweise (links)
Listenelemente der zweiten Ebene sind Verknüpfungen ("mainpage|mainpage" im obigen Beispiel) der Form:
** target|link text
- target
- Das Linkziel kann der Name einer Interface-Nachricht (Seite im MediaWiki-Namensraum) oder einer Wiki-Seite oder ein externer Link sein. In beiden Fällen kann der Link intern, interwiki oder extern sein. In einigen Fällen (z. B. Links mit dem Zeichen "&") ist eine Schnittstellennachricht erforderlich. Das Linkziel kann nicht von der in den Einstellungen festgelegten Oberflächensprache abhängig gemacht werden.
- Algorithm followed:
- Get the target text.
- If there is an existing or default interface message with that name, use the content of that message instead of the target text.
- If the output from the previous step is a valid URL (beginning with http:// or other URL protocol), the link will point to that URL.
- Else, it will treat it as the link target of a wikilink (linking to that page name or interwiki).
- In case it would end up linking to '-', the whole entry is removed from the sidebar (that's useful for removing an entry on all languages by changing the message holding the link).
- Beispiele:
- "
** portal-url|portal
" uses the text of MediaWiki:Portal-url (which contains "Project:Community portal"). - "
** Special:RecentChanges|Recent changes
" links to Special:RecentChanges, since there is no interface message of that name. - "
** w:Foo|Some interwiki page
" Verweise (links) zu w:Foo aus dem gleichen Grund. - "
** https://www.mediawiki.org|MediaWiki home
" verweist auf http://www.mediawiki.org aus dem gleichen Grund.
- "
- link text
- Der Linktext kann der Name einer Interface-Nachricht (Seite im MediaWiki-Namensraum) oder einfacher Text sein.
- * Wenn der Linktext der Name einer vorhandenen oder Standardschnittstellennachricht ist, wird der Inhalt dieser Nachricht verwendet. MediaWiki sucht nach lokalisierten Versionen. Wenn beispielsweise die aktuelle Sprache fr (Französisch) und der Linktext die Schnittstellenmeldung "forum" ist, wird vor der Verwendung von "forum" nach "forum/fr" gesucht.
- * Andernfalls wird der Linktext unverändert als Ziel verwendet.
- * Beachte, dass der Linktext nicht optional ist, wie bei normalen Wiki-Links. Wenn der Linktext fehlt, wird das Element ignoriert.
- Beispiele:
** Homepage|mainpage
verwendet MediaWiki:Mainpage (die "MediaWiki" enthält).** Special:Recentchanges|Letzte Änderungen
verwendet "Letzte Änderungen", da es keine Schnittstellenmeldung mit diesem Namen gibt.
Reihenfolge der Elemente
By default, the sidebar consists of elements in this order: navigation, search, toolbox, languages. The order can be changed (in MediaWiki 1.13+) by adding special keywords (SEARCH, TOOLBOX and LANGUAGES) to MediaWiki:Sidebar using the heading syntax. For example, the following code moves the search box to the top of the sidebar:
* SEARCH * navigation ** mainpage|mainpage ** Special:Recentchanges|Recent changed * new heading ** portal-url|portal ** https://www.mediawiki.org|MediaWiki home
QuickInfo und Zugangsschlüssel
Wenn Du der Seitenleiste ein Element hinzufügst, ist ihm keine QuickInfo zugeordnet. Du kannst eine solchen QuickInfo jedoch folgendermaßen erstellen: [1]
- Erstelle eine Wiki-Seite mit dem Namen "MediaWiki:Tooltip-n-<ID des Elements>"
- und füge die QuickInfo auf dieser Seite ein.
Zugangsschlüssel können auch folgendermaßen erstellt werden:
- Erstelle eine Wiki-Seite mit dem Namen "MediaWiki: Accesskey-n-<ID des Elements>"
- und gib den Zugangsschlüssel auf dieser Seite ein.
Beispiel:
* Homepage|mainpage-description
verwendet MediaWiki:Tooltip-n-mainpage-description and MediaWiki:Accesskey-n-mainpage-description.
Übersetzungen
Verwendete Ausdrücke/Texte können durch das Bearbeiten der betreffenen Seiten im MediaWiki Namensraum übersetzt werden.
Beispiel: der Ausdruck, der den Punkt mit Namen "Hauptseite" ersetzt, kommt aus MediaWiki:Mainpage. Um den Text für Benutzer, die das Wiki in Deutsch ansehen, einzusetzen/zu ändern, kann der betreffende Text auf der Seite MediaWiki:Mainpage/de eingetragen werden.
Damit können diese Texte einfach mit dem MediaWiki-Interface übersetzt werden.
"Beachte", dass MediaWiki durch Vorgabe den Inhalt der Navigationsleiste in "der" Sprache nutzt, die der vorgegebenen Sprache Ihres Wikis entspricht. Wenn also Ihre Wiki z.B. französisch als vorgegebene Sprache nutzt, erstellen/bearbeiten Sie MediaWiki:Mainpage/fr, um allen Nutzern, die ihre Spracheinstellung nicht geändert haben und allen anonymen Nutzern eine angepaßte Navigationsleiste anzuzeigen.
For more advanced translation, see Hilfe:Erweiterung:Übersetzen/Unstrukturierte Elementübersetzung .
Erweiterte Anpassung
The sidebar can be fully customized by implementing JavaScript or Cascading Style Sheets, or by editing the PHP files directly. Before using these methods, note that:
- JavaScript is fragile: it will not work for users with JavaScript disabled, and scripts frequently fail in different browsers or skins.
- Editing the PHP files can easily cause unexpected errors, and your changes will be lost in the next update unless you manually change the new files.
Sende UI-Meldungen zu folgendem Inhalt
Some pages should sometimes follow the content language, especially for multilingual sites. This can be controlled with the setting $wgForceUIMsgAsContentMsg . Each message overridden in this way must be explicitly given, for example to let the sidebar link to versions given by the content language for the main page and the portal page add the following to
LocalSettings.php
- code
$wgForceUIMsgAsContentMsg = [ 'mainpage', 'portal-url' ];
Hinzufügen oder Entfernen von Abschnitten zur Werkzeugkiste (toolbox) (JavaScript)
The toolbox appears on the left under MediaWiki:Sidebar.
The toolbox is a dynamic element requiring programmatic methods such as skin extensions, PHP (see skins/MonoBook.php
and creating a new skin) or JavaScript.
The JavaScript solution uses User:{username}/common.js / MediaWiki:Common.js, available for MediaWiki 1.9+.
- Entire MediaWiki website: copy the script below into MediaWiki:Common.js
- One specific user: copy the script below into Special:MyPage/common.js (or the JS page for the user's current skin, such as Special:MyPage/monobook.js).
Now simply configure which link should appear in which section. You also can remove some links if you want to.
- code
function ModifySidebar( action, section, name, link ) {
try {
switch ( section ) {
case 'languages':
var target = 'p-lang';
break;
case 'toolbox':
var target = 'p-tb';
break;
case 'navigation':
var target = 'p-navigation';
break;
default:
var target = 'p-' + section;
break;
}
if ( action == 'add' ) {
var node = document.getElementById( target )
.getElementsByTagName( 'div' )[0]
.getElementsByTagName( 'ul' )[0];
var aNode = document.createElement( 'a' );
var liNode = document.createElement( 'li' );
aNode.appendChild( document.createTextNode( name ) );
aNode.setAttribute( 'href', link );
liNode.appendChild( aNode );
liNode.className = 'plainlinks';
node.appendChild( liNode );
}
if ( action == 'remove' ) {
var list = document.getElementById( target )
.getElementsByTagName( 'div' )[0]
.getElementsByTagName( 'ul' )[0];
var listelements = list.getElementsByTagName( 'li' );
for ( var i = 0; i < listelements.length; i++ ) {
if (
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
listelements[i].getElementsByTagName( 'a' )[0].href == link
)
{
list.removeChild( listelements[i] );
}
}
}
} catch( e ) {
// Lass uns einfach ignorieren, was passiert ist
return;
}
}
function CustomizeModificationsOfSidebar() {
// fügt [[Special:CategoryTree|Special:CategoryTree]] der Toolbox hinzu
ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'https://en.wikipedia.org/wiki/Special:CategoryTree' );
// Entfernt [[Special:Upload|Special:Upload]] aus der Toolbox
ModifySidebar( 'remove', 'toolbox', 'Upload file', 'https://en.wikipedia.org/wiki/Special:Upload' );
}
jQuery( CustomizeModificationsOfSidebar );
- Verwendung
function CustomizeModificationsOfSidebar()
has to be customized for adding or removing links in specific sections:
ModifySidebar( "action", "section", "name", "link" );
Parameter | Wert |
---|---|
action
|
add um einen Link hinzuzufügen; remove um einen Link zu entfernen |
section
|
navigation, toolbox, languages aber auch jeder andere bestehende individualisierte Bereich; der angegebene Link wird zu diesem Abschnitt hinzugefügt oder daraus entfernt |
name
|
enthält den Text des Links |
link
|
enthält die URL des Links |
- Beschränkung von Änderungen auf bestimmte Benutzergruppen
Wenn Du die Änderung der Links auf eine bestimmte Benutzergruppe beschränken möchtest (z. B. "Bürokrat"), ändere Folgendes:
jQuery( CustomizeModificationsOfSidebar );
zu
if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'bureaucrat' ) !== -1 ) {
jQuery( CustomizeModificationsOfSidebar );
}
For restricting the modifications to IPs instead of a specific user group, use
if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'user' ) === -1 ) {
jQuery( CustomizeModificationsOfSidebar );
}
Hinzufügen oder Entfernen von Abschnitten zur Werkzeugkiste (toolbox) (PHP)
You can add in your file LocalSettings.php the hook described on this page. With this, you can modify via MediaWiki:Sidebar the links in the toolbox panel (remove some links, change their name) and add custom links (e.g. add the "Recent changes" link there instead of the navigation panel.
If you use the Monobook skin and don't want to miss the expandable menu bar from e.g. Vector skin, paste the following code into MediaWiki:Monobook.js of your wiki.
/////////////////////////////////////////////////////////
// kodiere Snippet, um Deine Sidebar-Elemente lesbar zu machen.
// Verwende diesen Code NUR für die Monobook-Oberfläche.
/////////////////////////////////////////////////////////
$( document ).ready( function() {
// Lege die erweiterten Standardelemente anhand ihrer Überschrift fest
var defaultExpandItems = ['Navigation', 'Orga'];
// Lege den Basisnamen für die Cookies fest, die den aktuellen Status der Erweiterung speichern
var expandCookieName = 'disdance_project_wiki_nav_expanded_';
var maxHeights = [];
var expandeds = [];
var labels = [];
initNav();
});
function initNav() {
$( '#p-logo' ).css({'position': 'relative', 'display': 'block'});
$( '.generated-sidebar h5,#p-tb h5 ').each( function( i ) {
var id = $( this ).parent().attr( 'id' );
maxHeights[id] = $( this ).next( 'div' ).height();
var str = $( this ).html();
labels[id] = str;
if ( $.cookie( expandCookieName + id ) == 'false' ) {
expandeds[id] = false;
minimize( $( this ) );
} else if ( $.cookie( expandCookieName + id ) == 'true' ) {
expandeds[id] = true;
maximize( $( this ) );
} else if ( defaultExpandItems.indexOf( str ) == -1 ) {
expandeds[id] = false;
minimize( $( this ) );
} else {
expandeds[id] = true;
maximize( $( this ) );
}
$( this ).css({'cursor': 'pointer'});
$( this ).click( toggleNav );
} );
}
function minimize( target ) {
var id = $( target ).parent().attr( 'id' );
// Du kannst den Parameter expires (Ablauf) ändern, um das Cookie wie in diesem Code länger / kürzer als 7 Tage zu speichern
$.cookie( expandCookieName + id, 'false', { expires: 7} );
var str = labels[id] + ' ►';
$( target ).next( 'div' ).animate({'height': '0px'});
$( target ).html( str );
}
function maximize( target ) {
var id = $( target ).parent().attr( 'id' );
// Du kannst den Parameter expires (Ablauf) ändern, um das Cookie wie in diesem Code länger / kürzer als 7 Tage zu speichern
$.cookie( expandCookieName + id, 'true', { expires: 7} );
var str = labels[id] + ' ▼';
var newHeight = maxHeights[id];
$( target ).next( 'div' ).animate({'height': newHeight + 'px'});
$( target ).html( str );
}
function toggleNav( e ) {
var id = $(e.target ).parent().attr( 'id' );
expandeds[id] = !expandeds[id];
if( expandeds[id] == true ) {
maximize( e.target );
} else {
minimize( e.target );
}
}
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////
Du kannst die Breite Deiner Seitenleiste ändern, indem Du die folgenden CSS-Regeln zu Deiner MediaWiki:Monobook.css hinzufügst.; Beachte, dass dies ein Artikel ist, keine Datei. Dies ändert die Breite auf 15em, die Aktionsposition und die Portletbreite sollten etwa ein em oder kleiner sein, daher habe ich sie in diesem Beispiel auf 14em gesetzt.
/* erhöhe die Breite der Seitenleiste */
#column-content { margin-left: -15em; }
#column-content #content { margin-left: 15em; }
#p-logo a, #p-logo a:hover { width: 15em; }
#p-cactions { left: 14.5em; }
.portlet { width: 14em; }
#column-content { margin-left: -14em; }
#content.mw-body { margin-left: 14em; }
Remove the Sidebar and main logo
To completely remove the sidebar and logo:
Blank the MediaWiki:Sidebar page and save.
Add:
#column-content { margin: 0 0 .6em 0; }
#content { margin: 0 0 0 0; }
Install and configure the DynamicSidebar extension.
Although it is not exactly recommended, the sidebar does support parser functions (such as ParserFunctions), provided the **
is outside the parser function, and the parser function does not span multiple lines. For example:
*Heading **{{#ifeq:{{NAMESPACE}}|User|Page-to-link-to{{!}}text-to-show-on-user-page}} **{{#ifeq:{{NAMESPACE}}|Talk|Another-Page-to-link-to{{!}}text-to-show-on-talk-page}}
works. However the following would not work since the parser function spans multiple lines:
*Heading {{#ifeq:1|1| **foo{{!}} bar | **baz{{!}}fred }}
Problemlösung
Änderungen werden nicht angezeigt
MediaWiki aggressively caches content if possible, which often causes the navigation bar to persist after changes.
Purging the cache of affected pages should correct the situation.
To perform a mass-purge of all caches at once, touch the LocalSettings.php
file or truncate the objectcache
table in your database (you may have to do both).
You also need to have $wgUseDatabaseMessages set to true
.
Also, if your links don't have a |
in them, they will not show up because of this line of code in Skin.php:
if ( strpos( $line, '|' ) !== false ) {
If you are a user or average wiki admin, you will not be able to do the advanced stuff above to get changes to show up. If purging does not work either, you can sometimes still see CSS changes right away in preview (especially when changing your personal CSS). For example; changing the sidebar width, padding, or margins. Changes can take awhile to show up after saving though. If nothing shows up after awhile you may need to contact the overall wiki, or wiki farm, sysop.
Verweisbeschriftungen (link labels) kleingeschrieben
If your links are not being capitalized as intended, try adding spaces around the bar character; for example:
** http://www.example.com/download.php?file=44555 | Download
Abschnitte verschwinden oder zeigen unerwarteten Inhalt
If a section does not display or displays unexpected content, check that the header text isn't the name of an interface message by searching Special:AllMessages. If it is, use a different header text, or create a new interface message and use it.
For example, if you want to use "Sidebar" as header text, create the interface message "MediaWiki:Sidebar-header" containing only "Sidebar". Then, use * sidebar-header
as header.
Sections are not displayed if there are no links of the form ** target | link text
(e.g. when the target was forgotten).
Verweise ins Leer nach Aktualisierungen Special:Version
This will happen e.g., each time there are newer translations for your site language's sidebar items. One could add new redirect pages each time, but a better solution would be to use one's own sidebar item names instead of trying to keep track of the current MediaWiki translations.
Siehe auch
- Navigationsleiste
- Extension:SideBarMenu
- Schnellleiste
- Manual:Interface/Sidebar/Hacks - Unsupported PHP modifying hacks that used to be on this page
- Manual:$wgEnableSidebarCache
- Kategorie: Menüerweiterungen
- Manual:Remove Tabs - remove Mediawiki tabs