MoreMenu
MoreMenu je skript, který na panel nástrojů přidá rozbalovací nabídky "Stránka" a případně "Uživatel". Je to nástupce Haza-w Drop-down menus gadget a byl jím silně ovlivněn.
Popis | Užitečné odkazy na běžné úkoly, nástroje pro analýzu uživatelů a stránek a protokoly |
---|---|
Autoři | MusikAnimal |
Aktualizace | 2023-07-25 (517 days ago) |
Verze | 5.1.23 |
Zdroj | GitHub |
Podpora Skinů | Vše |
Podpora prohlížečů | Všechny "moderní" prohlížeče, viz Kompatibilita#Prohlížeče |
Přehled
Tento gadget přidává do panelu nabídek až dvě rozbalovací nabídky obsahující odkazy na užitečné běžné úlohy, protokoly uživatelů/stránek, analytické nástroje/statistiky a nástroje pro správce. Pro všechny stránky kromě speciálních stránek je viditelná nabídka Stránka. Nabídka Uživatel je viditelná pouze na stránkách týkajících se uživatele, včetně stránek s příspěvky.
Některé odkazy jsou dostupné pouze v případě, že máte určitá práva. (například blok pro blokové odkazy). Kromě toho se položky v nabídce Uživatel mohou zobrazovat na základě podmínek zobrazovaného uživatele, například jeho uživatelských práv, nebo pokud měl aktuální či předchozí bloky atd. Například položka Protokol blokování v podnabídce Bloky se zobrazí pouze v případě, že byl daný uživatel v minulosti zablokován. Některé odkazy jsou také viditelné pouze v určitých jmenných prostorech a na určitých projektech.
Instalace
Globální instalace (doporučeno)
Do global.js přidejte následující položky:
mw.loader.load('https://meta.wikimedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:MoreMenu.import.js');
Tím naimportujete všechny základní moduly a získáte funkční skript, který bude k dispozici na všech wiki.
Rozšíření anglické Wikipedie
Jste-li uživatelem anglické Wikipedie, přejděte na stránku common.js a importujte rozšíření enwiki, které přidá položky nabídky RfA/RfB a XfD, pokud je to možné.
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');
});
Podobná rozšíření lze přidat pro jakoukoli wiki nebo již mohou na vaší wiki existovat. Více viz Přizpůsobení níže.
Menu skáče při načítání stránky
Pokud použijete skin Vektor, zabráníte přeskakování záložek v horní části ("Upravit", "Zobrazit historii" atd.). Pro uživatele angličtiny přidejte do horní části' vašeho global.css:
@import url('https://meta.wikimedia.org/w/index.php?title=MediaWiki:Gadget-MoreMenu-pagestyles.en.css&action=raw&ctype=text/css');
V případě neanglické verze nahraďte .en
v cestě na požadovaný jazyk. Seznam podporovaných jazyků naleznete v části Special:PrefixIndex/MediaWiki:Gadget-MoreMenu-pagestyles. Pokud váš jazyk chybí, dejte vědět správcům na diskusní stránce.
Instalace jako gadget
Vaše lokální wiki může mít v předvolbách miniaplikace k dispozici MoreMenu. Doporučuje se však globální instalace, aby bylo MoreMenu dostupné na všech wiki.
Pokud jste správce rozhraní a chcete nainstalovat MoreMenu jako gadget na wiki, postupujte podle následujících kroků:
- Vytvořte
MediaWiki:Gadget-MoreMenu-local.js
s následujícími údaji:mw.loader.load('https://meta.wikimedia.org/w/load.php?modules=ext.gadget.MoreMenu');
- Do
MediaWiki:Gadgets-definition
přidejte následující položky:* MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js
- Přidat popis pro gadget na
MediaWiki:Gadget-MoreMenu-local
, nejlépe s odkazem na tuto stránku ([[meta:MoreMenu]]
) - Volitelné: Můžete nastavit peer gadget, který zabrání nabídkám "skákat" při načítání stránky ve skinu Vector. Další informace naleznete v části Peer gadget.
- Nepovinné: Prodloužit MoreMenu přidáním odkazů, které jsou specifické pro vaši wiki, například odkazy na žádost uživatele o správcovství. Vytvořte
MediaWiki:Gadget-MoreMenu.extension.js
s vaším kódem rozšíření a upravteMediaWiki:Gadgets-definition
tak, abyste jej mohli použít:* MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js|MoreMenu.extension
Lokalizace
Překlady se stahují z MediaWiki:Gadget-MoreMenu.messages.lang.js
a zástupný překlad je MediaWiki:Gadget-MoreMenu.messages.en.js. Chcete-li přidat nové překlady, zadejte na diskusní stránce chráněný požadavek na úpravu a uveďte dvojice klíč/hodnota zpráv. Seznam aktuálně podporovaných jazyků naleznete v části Special:PrefixIndex/MediaWiki:Gadget-MoreMenu.messages.
Změny v českých překladech zasílejte jako pull request do [ https://github.com/MusikAnimal/MoreMenu GitHub repozitáře].
Přizpůsobení
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 lze rozšířit o vlastní odkazy a funkce. Odkazy by měly být přidány až po spuštění eventu moremenu.ready
[1]. Viz příklady níže.
Přidání vlastních odkazů
MoreMenu.addLink(menu, name, url, insertAfter)
Přidá odkaz do daného menu.MoreMenu.addSubmenuLink(menu, submenu, name, url, insertAfter)
Přidá odkaz do dané podnabídky.
Zde jsou popisy jednotlivých parametrů:
menu
— ID nabídky nejvyšší úrovně, pod kterou má být odkaz umístěn. Buď "user", nebo "page".submenu
— ID podnabídky, pod kterou má být odkaz umístěn. Například "analysis" nebo "page-logs".name
— Název odkazu. Může to být buď nezpracovaný řetězec, nebo klíč zprávy.url
— Adresa URL odkazu. Pro interní odkazy použijte hodnotumw.util.getUrl()
.insertAfter
(optional) — ID existujícího odkazu, za který má být odkaz umístěn. Pomocífalse
můžete vynutit umístění odkazu na začátek a pomocítrue
na konec. V opačném případě, pokud není nalezen žádný odkaz s daným ID nebo je tento parametr zcela vynechán, bude odkaz umístěn do nabídky podle abecedy.
Příklady
Chcete-li přidat odkaz na stránku https://example.org v nabídce "Stránka", přidejte na stránku common.js následující kód:
mw.hook('moremenu.ready').add(function (config) {
MoreMenu.addLink(
'page',
'Example',
'https://www.example.org'
);
// add more MoreMenu.addLink(); instances here...
});
Objekt config
obsahuje velké množství dat. Ve většině případů chcete, aby odkaz obsahoval cílové uživatelské jméno (config.targetUser.name
) nebo název stránky (config.page.name
). Pokud se jedná o externí odkazy, může být nutné použít kódované názvy, jako je tomu u config.targetUser.encodedName
a config.page.encodedName
. Seznam všech dostupných údajů naleznete v části Konfigurační hodnoty.
Řekněme, že chcete v podnabídce "Analýza" zobrazit odkaz na stránky uživatele "Žádosti o správcovství":
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...
});
Řekněme, že byste chtěli přidat podnabídku "RfXs" s odkazy na RfA, žádosti o byrokracii atd. a tyto odkazy zobrazit pouze tehdy, "pokud" tyto stránky existují. Jak to udělat, viz Odkazy na stránky odpovídající vzoru!
Pokročilé
Kromě MoreMenu.addLink()
a MoreMenu.addSubmenuLink()
můžete využít logiku, kterou vám MoreMenu poskytuje při konstrukci odkazu na základě některých parametrů, například oprávnění uživatele, nebo přidat zcela novou podnabídku odkazů.
Pro další informace viz MoreMenu/Advanced.
Peer gadget
Po přidání nabídek nejvyšší úrovně ve skinu Vektor se karty "Číst", "Upravit" a "Zobrazit historii" posunou. To znamená, že pokud pracujete velmi rychle, můžete omylem kliknout na nesprávné místo dříve, než se MoreMenu dokončí načítání. Abyste tomu zabránili, můžete použít peer gadget, abyste udrželi volné místo.
Nejprve se podívejte na stránku Special:PrefixIndex/MediaWiki:Gadget-MoreMenu-pagestyles, zda již existuje kód CSS pro váš jazyk, který můžete zkopírovat do své wiki. Pokud není, budete muset vypočítat šířky. Jakmile je miniaplikace povolena, můžete spustit příkazy $('.mm-page').outerWidth()
a $('.mm-user').outerWidth()
a získat šířky v pixelech.
Jakmile budete mít zjištěné šířky, vytvořte MediaWiki:Gadget-MoreMenu-local-pagestyles.css
pomocí následujícího příkazu (v tomto případě pro angličtinu a s použitím em
místo 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;
}
Potom odpovídajícím způsobem aktualizujte konfiguraci miniaplikace:
* 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
Požadavky na chyby/funkce
Zeptejte se/požádejte o cokoli, co byste chtěli, na diskusní stránce.