MoreMenu
Beschreibung | Hilfreiche Links für häufige Aufgaben und auf Werkzeuge und Logbücher zu Benutzern und Seiten |
---|---|
Autoren | MusikAnimal |
Aktualisiert | 2023-07-25 (419 days ago) |
Version | 5.1.23 |
Quelle | GitHub |
Skin-Unterstützung | Alle |
Browser-Unterstützung | Alle "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.
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:
- Erstelle
MediaWiki:Gadget-MoreMenu-local.js
mit folgendem Inhalt:mw.loader.load('https://meta.wikimedia.org/w/load.php?modules=ext.gadget.MoreMenu');
- Füge Folgendes zu
MediaWiki:Gadgets-definition
hinzu:* MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js
- Füge in
MediaWiki:Gadget-MoreMenu-local
eine Beschreibung für das Helferlein ein, am besten mit einem Link auf diese Seite ([[meta:MoreMenu]]
) - 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.
- 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 modifiziereMediaWiki: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
Options
MoreMenu.disableAutoRemoval
– Don't automatically remove the native "More" menu when it's empty.MoreMenu.prefillDeletionReason
– Set tofalse
to disable prefilling the deletion reason when clicking the Delete link.
These options should be set at the top of your global.js, like the following:
MoreMenu = {
disableAutoRemoval: true,
};
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. Nutzemw.util.getUrl()
für interne Links.insertAfter
(optional) — Die ID eines existierenden Links, nach dem der Link eingefügt werden soll. Du kannstfalse
nutzen, um den Link ganz oben einzufügen, undtrue
, 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
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
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.