Handbuch:Interface/Navigationsleiste

From mediawiki.org
This page is a translated version of the page Manual:Interface/Sidebar and the translation is 71% complete.
Outdated translations are marked like this.
Beispiel einer Navigationsleiste
See also: Manual:Remove Tabs

MediaWiki:Sidebar erlaubt es einem Benutzer die Navigationsleiste zu bearbeiten. Die Navigationsleiste enthält Verweise zu den wichtigsten Seiten im Wiki und stellt den Administratoren einen Ort zur Verfügung, an dem Sie eine Sammlung von wichtigen Links anlegen können. Die meisten Wikis verlinken zum Beispiel auf das Gemeinschaftsportal und einige nützliche Werkzeuge.

In den Benutzeroberflächen Monobook und Vector befindet sich die Navigationsleiste oben links (oben rechts für von rechts nach links geschriebene Sprachen) zusammen mit der Suchleiste und den Werkzeugen. In anderen Oberflächen kann die Platzierung variieren. Diese Navigationsleiste wird nicht für Benutzer der Mobilen Seite (also der Variante der Seite, die durch Extension:MobileFrontend / Skin:MinervaNeue erzeugt wird) angezeigt - benutze dafür den MobileMenu -Hook.

Anpassung der Navigationsleiste

Um die MediaWiki:Sidebar in einem Wiki anzupassen, musst du zunächst als Benutzer mit dem editinterface-Recht angemeldet sein. Für Administratoren ist das im Standard bereits aktiv.[1]

You can access to MediaWiki:Sidebar by either:

  • Going to http://yourdomain/wiki/index.php?title=MediaWiki:Sidebar&action=edit in your browser.
  • Typing MediaWiki:Sidebar in search bar, and validating with Enter.
  • From Special:AllMessages, searching for "side".

Beispielcode für eine Navigationsleiste der in MediaWiki:Sidebar eingefügt wurde:

* navigation
** mainpage|Accueil
** Special:RecentChanges|Recent changes
* new heading
** portal-url|Forums
** https://www.mediawiki.org|MediaWiki home

Dieses Beispiel erzeugt die folgende Navigationsleiste:

Beispiel einer Navigationsleiste
Falls du beim Anlegen der Navigationsleiste eine neue Seite erstellen musst, wird dir der Standard-Inhalt für die Seitenleiste im Editor angezeigt. Um die Seite MediaWiki:Sidebar erfolgreich zu erstellen, musst du den Inhalt vor dem Speichern ändern.

Die Navigationsleiste in neue Abschnitte unterteilen

Die Navigationsleiste kann in Abschnitte unterteilt werden, jeder mit einer eigenen Überschrift. Das wird erreicht, indem man am Anfang der Zeile ein Sternchen hinzufügt.

Die Überschrift für jeden Abschnitt wird aus dem Listenelement der ersten Ebene übernommen (im obigen Beispiel "Navigation" und "Neue Überschrift"). Entspricht dieser Text dem Namen einer Schnittstellennachricht (einer bestehenden Seite mit diesem Titel im MediaWiki-Namensraum), wird der Text dieser Seite als Beschriftung verwendet; andernfalls wird der Titel der Kopfzeile unverändert übernommen. Please note the {{int:}} magic word does not work since it is useless: MediaWiki automatically looks for a translation to display before to fallback to the default message.

In the example above, * navigation and * new heading are section headings.

Links in der Seitenleiste erstellen

Links are created with 2 asterisks (called Second-level list elements). For example:

** <span lang="en" dir="ltr" class="mw-content-ltr">target</span>|<span lang="en" dir="ltr" class="mw-content-ltr">link text</span>
Ziel
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.[2]
Do the following to determine the target:
  1. Ermittelt den Zieltext.
  2. Wenn es eine bestehende oder voreingestellte Schnittstellennachricht mit diesem Namen gibt, verwenden Sie den Inhalt dieser Nachricht anstelle des Zieltextes.
  3. Wenn die Ausgabe aus dem vorherigen Schritt eine gültige URL ist (die mit http:// oder einem anderen URL-Protokoll beginnt), wird der Link auf diese URL zeigen.
  4. Andernfalls wird er als Linkziel eines Wikilinks behandelt (der auf diesen Seitennamen oder das Interwiki verweist).
  5. Falls der Link auf '-' verweisen würde, wird der gesamte Eintrag aus der Seitenleiste entfernt. (Dies ist nützlich, um einen Eintrag in allen Sprachen zu entfernen, indem man die Nachricht, die den Link enthält, ändert).
Beispiele:
  • "** portal-url|portal" verwendet den Text von MediaWiki:Portal-url (der "Project:Community portal" enthält)
  • "** https://www.mediawiki.org|MediaWiki home" Übersetzt mit https://www.mediawiki.org (kostenlose Version)
  • "** Special:RecentChanges|Recent changes" verweist auf Special:RecentChanges, da es keine Schnittstellenmeldung dieses Namens gibt.
  • "** w:Foo|Some interwiki page" Verweise (links) zu w:Foo aus dem gleichen Grund.
Linktext
Der Linktext kann der Name einer Interface-Nachricht (Seite im MediaWiki-Namensraum) oder einfacher Text sein.

Wenn der Link-Text der Name einer existierenden oder Standard-Schnittstellen-Nachricht ist, wird der Inhalt dieser Nachricht verwendet. MediaWiki prüft, ob es lokalisierte Versionen gibt. Wenn zum Beispiel die aktuelle Sprache fr (französisch) ist und der Linktext die Schnittstellennachricht "forum" ist, wird es nach "forum/fr" suchen, bevor es "forum" verwendet.

  • Andernfalls wird der Linktext unverändert als Ziel verwendet.
  • Beachten Sie, dass der Linktext nicht optional ist, wie bei normalen Wikilinks. Wenn der Linktext fehlt, wird der Artikel 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.

Abschnittsreihenfolge (Elemente)

Some skins allow customizing the order of some special elements, like the search bar, toolbox, and languages. That can be done by adding the special keywords SEARCH, TOOLBOX and LANGUAGES respectively, to MediaWiki:Sidebar using the heading syntax.

However, some skins like MonoBook no longer support defining the position of the search element, and the search element is placed right after the first section of the sidebar instead. In that case, to move the search element at the top, the workaround is to define an empty leading section. For example:

* empty section
* navigation
** mainpage|mainpage
** Special:Recentchanges|Recent changed
* new heading
** portal-url|portal
** https://www.mediawiki.org|MediaWiki home

Note that some skins may display the first section differently, or place some element between the first and the second section (if any).

QuickInfo und Zugangsschlüssel

Ein Tooltip ist eine Meldung, die erscheint, wenn der Mauszeiger auf ein Symbol, ein Bild, einen Hyperlink oder ein anderes Element in einer grafischen Benutzeroberfläche gesetzt wird.

Wenn Du der Seitenleiste ein Element hinzufügst, ist ihm keine QuickInfo ("tooltip") zugeordnet. Du kannst eine solchen QuickInfo jedoch folgendermaßen erstellen: [3]

  • eine Wikiseite mit dem Namen "MediaWiki:Tooltip-n-<id des Artikels>" erstellen
  • und fügen Sie den Tooltip in diese Seite ein.

Eine Zugriffstaste oder Accesskey ermöglicht es einem Computernutzer, über die Tastatur sofort zu einem bestimmten Teil einer Webseite zu springen.

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:

Ü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.

Für fortgeschrittene Übersetzungen siehe Hilfe:Erweiterung:Übersetzen/Unstrukturierte Elementübersetzung .

Erweiterte Anpassung

Die Seitenleiste kann vollständig angepasst werden, indem JavaScript oder Cascading Style Sheets implementiert werden, oder indem die PHP-Dateien direkt bearbeitet werden. Bevor Sie diese Methoden anwenden, beachten Sie, dass:

  • JavaScript ist anfällig: Es funktioniert nicht bei Benutzern, die JavaScript deaktiviert haben, und Skripte funktionieren häufig nicht in verschiedenen Browsern oder Skins.
  • Die Bearbeitung der PHP-Dateien kann leicht zu unerwarteten Fehlern führen, und Ihre Änderungen gehen bei der nächsten Aktualisierung verloren, wenn Sie die neuen Dateien nicht manuell ändern.

Entfernen Sie die Sidebar und das Hauptlogo unter MediaWiki:Sidebar

To completely remove the sidebar and logo:

Blank the MediaWiki:Sidebar page and save.

Then add:

#column-content { margin: 0 0 1em 0; }
#content { margin: 0 0 0 0; }
#p-cactions { left: .1em; }

This moves the main text of your wiki to the left.

Completely remove the sidebar, tabs and search bar

See also: Manual:Remove Tabs

Deletes the logo, and the entire sidebar:

#p-logo, .generated-sidebar, #p-lang, #p-tb  { display:none; }

Deletes the search bar:

#p-search { display:none; }

Deletes the talk tab:

#ca-talk { display:none!important; }

Deletes the Page tab:

#ca-nstab-main { display:none!important; }

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+.

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.

Auf-/Zusammenklappen der Navigationsleiste durch alle Benutzer (nur der Mono-Bucheinband)

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 );
	}
}

///////////////////////////////////////////////////////
///////////////////////////////////////////////////////

Navigationsleiste mit Mono-Bucheinband (CSS)

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; }



Änderung der Navigationsleisteninhalte, wenn angemeldet (PHP)

Install and configure the DynamicSidebar extension.

Syntaxanalysefunktionen (parser) in der Navigationsleiste

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

References

  1. (Für weitere Informationen zur Zuweisung von Rechten an Gruppen oder Benutzer, siehe Handbuch:Benutzerrechte .) 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.
  2. In einigen Fällen (z. B. bei Links mit dem Zeichen "&") ist eine Schnittstellenmeldung erforderlich. Das Linkziel kann nicht von der in den Voreinstellungen festgelegten Schnittstellensprache abhängig gemacht werden.
  3. http://www.kaarebmikkelsen.dk/?p=174