MoreMenu

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
This page is a translated version of the page MoreMenu and the translation is 100% complete.
Other languages:
MoreMenu
Screenshot of MoreMenu script.png
Analyse der Benutzerbeiträge von Jimbo
BeschreibungHilfreiche Links für häufige Aufgaben und auf Werkzeuge und Logbücher zu Benutzern und Seiten
AutorenMusikAnimal
Aktualisiert2021-10-26 (235 days ago)
Version5.1.17
QuelleGitHub
Skin-UnterstützungAlle
Browser-UnterstützungAlle "modernen" Browser, siehe Kompatibilität#Browser

MoreMenu ist ein Skript, das die ausklappbaren Menüs "Seite" und, sofern verfügbar, "Benutzer" zur Werkzeugleiste hinzufügt. Es ist der Nachfolger von Haza-ws Helferlein Drop-Down Menus und wurde von diesem stark beeinflusst.

Überblick

Dieses Helferlein fügt bis zu zwei ausklappbare Menüs zur Menüleiste hinzu, die Links für häufige Aufgaben, auf Seiten- und Benutzer-Logbücher, Werkzeuge/Statistiken und Werkzeuge für Administratoren enthalten. Das Seitenmenü ist auf allen Seiten außer Spezialseiten sichtbar. Das Benutzermenü ist nur auf Seiten verfügbar, die einen bestimmten Benutzer behandeln, darunter Beitragsseiten.

Bildschirmfoto des Analysemenüs für Seiten.

Manche Links sind nur verfügbar, wenn du bestimmte Rechte besitzt (zum Beispiel block für Links zum Sperren). Zusätzlich können Menü-Objekte dann im Benutzermenü erscheinen, wenn der Benutzer, den du betrachtest, selbst bestimmte Rechte hat oder aktuell gesperrt ist oder gesperrt war. Das Objekt Sperrlogbuch anzeigen im Untermenü Sperren erscheint beispielsweise nur, wenn der Benutzer in der Vergangenheit gesperrt wurde. Manche Links sind nur in bestimmten Namensräumen und in bestimmten Projekten sichtbar.

Installation

Globale Installation (empfohlen)

Füge folgendes in deine global.js ein:

mw.loader.load('https://meta.wikimedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:MoreMenu.import.js');

Dadurch werden alle zentralen Module importiert und du erhältst ein funktionierendes Skript, das auf allen Wikis verfügbar ist.

Erweiterung der englischsprachigen Wikipedia

Wenn du ein Benutzer der englischsprachigen Wikipedia bist, besuche deine common.js und importiere die Erweiterung für enwiki, die Menü-Objekte für Admin-/Bürokratenkandidaturen und Löschanträge hinzufügt, sofern diese anwendbar sind.

mw.loader.using(['mediawiki.util', 'mediawiki.api'], function () {
	mw.loader.load('https://en.wikipedia.org/w/?title=MediaWiki:Gadget-MoreMenu.enwiki.js&action=raw&ctype=text/javascript');
});

Ähnliche Erweiterungen können für jedes Wikis hinzugefügt werden oder existieren möglicherweise bereits in deinem Wiki. Siehe Anpassung unten für weitere Informationen.

Springende Menüs beim Laden der Seite

Wenn du den Skin Vector nutzt, verhinderst du, dass die Reiter oben ("Bearbeiten", "Versionsgeschichte", etc.) umherspringen. Englischsprachige Benutzer können oben in ihrer global.css folgendes einfügen:

@import url('https://meta.wikimedia.org/w/index.php?title=MediaWiki:Gadget-MoreMenu-pagestyles.en.css&action=raw&ctype=text/css');

Nicht-Englischsprachige können .en in dem Pfad durch ihre gewünschte Sprache ersetzen. Siehe Special:PrefixIndex/MediaWiki:Gadget-MoreMenu-pagestyles für eine Liste unterstützter Sprachen. Wenn deine Sprache fehlt, lass es die Entwickler auf der Diskussionsseite wissen.

Installation als Helferlein

Möglicherweise ist MoreMenu in deinem lokalen Wiki als Helferlein in den Einstellungen verfügbar. Die globale Installation wird jedoch empfohlen, sodass MoreMenu in allen Wikis verfügbar ist.

Wenn du Benutzeroberflächenadministrator bist und MoreMenu als Helferlein in deinem Wiki installieren möchtest, befolge diese Schritte:

  1. Erstelle MediaWiki:Gadget-MoreMenu-local.js mit folgendem Inhalt:
    mw.loader.load('https://meta.wikimedia.org/w/load.php?modules=ext.gadget.MoreMenu');
    
  2. Füge folgendes zu MediaWiki:Gadgets-definition hinzu:
    MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js
  3. Füge in MediaWiki:Gadget-MoreMenu-local eine Beschreibung für das Helferlein ein, am besten mit einem Link auf diese Seite ([[meta:MoreMenu]])
  4. Optional: Du kannst ein Peer-Gadget einrichten, das verhindert, dass Menüs im Vector-Skin beim Laden der Seite "springen". Siehe Peer-Gadget für weitere Informationen.
  5. Optional: Erweitere MoreMenu, indem du spezifische Links für dein Wiki einfügst, zum Beispiel Links auf die Adminkandidaturen eines Benutzers. Erstelle MediaWiki:Gadget-MoreMenu.extension.js mit dem Code deiner Erweiterung und modifiziere MediaWiki:Gadgets-definition, um diesen zu nutzen:
    MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js|MoreMenu.extension

Lokalisierung

Übersetzungen werden von MediaWiki:Gadget-MoreMenu.messages.lang.js abgerufen, mit MediaWiki:Gadget-MoreMenu.messages.en.js als Rückfalloption. Um neue Übersetzungen hinzuzufügen, erstelle eine Anfrage zur Bearbeitung einer geschützten Seite auf der Diskussionsseite und führe die Schlüssel-Wert-Paare der Nachrichten auf. Siehe Special:PrefixIndex/MediaWiki:Gadget-MoreMenu.messages für eine Liste aktuell unterstützter Sprachen.

Bitte übermittle Änderungen an den englischen Übersetzungen als Pull-Anfragen an das GitHub-Repositorium.

Anpassung

MoreMenu kann um weitere Links und Funktionen ergänzt werden. Links sollten nur eingefügt werden, nachdem die moremenu.ready-Hook ausgelöst wurde. Siehe die Beispiele unten.

Benutzerdefinierte Links hinzufügen

  • MoreMenu.addLink(menu, name, url, insertAfter)Fügt den Link zum angegebenen Menü hinzu.
  • MoreMenu.addSubmenuLink(menu, submenu, name, url, insertAfter)Fügt den Link zum angegebenen Untermenü hinzu.

Hier sind die Beschreibungen für jeden Parameter:

  • menu — Die ID des Obermenüs, unter dem der Link eingefügt wird. Entweder "user" oder "page".
  • submenu — Die ID des Untermenüs, unter dem der Link eingefügt wird. Zum Beispiel "analysis" oder "page-logs".
  • name — Der Titel für den Link. Dies kann entweder eine reine Zeichenkette oder ein Nachrichtenschlüssel sein.
  • url — Die URL für den Link. Nutze mw.util.getUrl() für interne Links.
  • insertAfter (optional) — Die ID eines existierenden Links, nach dem der Link eingefügt werden soll. Du kannst false nutzen, um den Link ganz oben einzufügen und true, um ihn ganz unten einzufügen. Wenn kein Link mit der angegebenen ID gefunden wird oder dieser Parameter fehlt, wird der Link alphabetisch in das Menü eingefügt.

Beispiele

Um einen Link auf https://example.org im Menü "Seite" einzufügen, füge folgenden Code in deine common.js ein:

mw.hook('moremenu.ready').add(function (config) {
    MoreMenu.addLink(
        'page',
        'Example',
        'https://www.example.org'
    );
    
    // add more MoreMenu.addLink(); instances here...
    
});

Das Objekt config enthält viele Daten. In den meisten Fällen möchtest du, dass dein Link den Benutzernamen (config.targetUser.name) oder den Seitennamen (config.page.name) enthält. Wenn es sich um externe Links handelt, musst du möglicherweise codierte Namen nutzen, wie bei config.targetUser.encodedName und config.page.encodedName. Siehe Konfigurationswerte für eine Liste aller verfügbaren Daten.

Wenn du beispielsweise einen Link auf die "Adminkandidaturen" des Benutzers im Untermenü "Analyse" einfügen möchtest:

mw.hook('moremenu.ready').add(function (config) {
    MoreMenu.addSubmenuLink(
        'user',
        'analysis',
        'RfAs',
        mw.util.getUrl('Special:PrefixIndex/Wikipedia:Requests for Adminship/' + config.user.name)
    );
    
    // add more links here...
    
});

Nun möchtest du ein Untermenü "RfXs" mit Links auf Adminkandidaturen, Bürokratenkandidaturen, etc. einfügen und diese Links nur anzeigen, wenn diese Seiten existieren. Siehe Links auf Seiten, die einem bestimmten Muster entsprechen dazu, wie man dies tut!

Erweitert

Hauptartikel: MoreMenu/Advanced

Zusätzlich zu MoreMenu.addLink() und MoreMenu.addSubmenuLink() kannst du die Logik nutzen, die MoreMenu dir bietet, um deinen Link basierend auf bestimmten Parametern zu konstruieren, wie Benutzerrechten, oder ein komplett neues Untermenü von Links hinzufügen.

Siehe MoreMenu/Advanced für weitere Informationen.

Peer-Gadget

Diese Dokumentation erklärt, wie du MoreMenu als Helferlein in deinem lokalen Wiki aufsetzen kannst. Siehe Springende Menüs beim Laden der Seite für die Installation durch Benutzer.

Wenn Obermenüs im Skin Vector eingefügt werden, werden sich die Reiter "Lesen", "Bearbeiten" und "Versionsgeschichte" verschieben. Dies bedeutet, dass du, wenn du sehr schnell arbeitest, möglicherweise versehentlich die falsche Stelle anklickst, bevor MoreMenu vollständig geladen wurde. Du kannst ein Peer-Gadget nutzen, um die Fläche verfügbar zu halten.

Überprüfe zunächst Special:PrefixIndex/MediaWiki:Gadget-MoreMenu-pagestyles, um zu sehen, ob es bereits einen CSS-Code für deine Sprache gibt, den du in dein Wiki kopieren kannst. Wenn es ihn nicht gibt, musst du zunächst die Breiten berechnen. Sobald das Helferlein aktiviert ist, kannst du $('.mm-page').outerWidth() und $('.mm-user').outerWidth() ausführen, um die Breiten in Pixeln zu erhalten.

Erstelle MediaWiki:Gadget-MoreMenu-local-pagestyles.css mit folgendem Inhalt, sobald du die Breiten hast (in diesem Fall für Englisch bei Nutzung von em statt px):

/*** VECTOR ***/

/* User menu */
.client-js .skin-vector.ns-2 #p-views,
.client-js .skin-vector.ns-3 #p-views,
.client-js > .skin-vector.mw-special-Contributions #p-views,
.client-js > .skin-vector.mw-special-DeletedContributions #p-views,
.client-js > .skin-vector.mw-special-Block #p-views {
    padding-right: 3.68em;
}

/* Page menu */
.client-js .skin-vector:not(.ns-special) #p-views .vector-menu-content::after {
    content: '';
    display: inline-block;
    width: 3.85em;
}

Aktualisiere dann die Konfiguration deines Helferleins entsprechend:

MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options|peers=MoreMenu-local-pagestyles]]|MoreMenu-local.js
MoreMenu-local-pagestyles[hidden]|MoreMenu-local-pagestyles.css

Fehler / Funktions-Anfragen

Frage auf der Diskussionsseite nach allem, was dich interessiert.