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.
MoreMenu
Screenshot of MoreMenu script.png
Analýza Jimbových příspěvků
PopisUžitečné odkazy na běžné úkoly, nástroje pro analýzu uživatelů a stránek a protokoly
AutořiMusikAnimal
Aktualizace2022-08-18 (99 days ago)
Verze5.1.19
ZdrojGitHub
Podpora SkinůVše
Podpora prohlížečůVšechny "moderní" prohlížeče, viz Kompatibilita#Prohlížeče

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.

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.

Snímek obrazovky nabídky Analýza v rozbalovací nabídce Stránka.

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ů:

  1. 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');
    
  2. Do MediaWiki:Gadgets-definition přidejte následující položky:
    MoreMenu-local[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,user.options]|MoreMenu-local.js
  3. Přidat popis pro gadget na MediaWiki:Gadget-MoreMenu-local, nejlépe s odkazem na tuto stránku ([[meta:MoreMenu]])
  4. 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.
  5. 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 upravte MediaWiki: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í

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 hodnotu mw.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é

Hlavní článek: MoreMenu/Advanced

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

Tato dokumentace slouží k nastavení aplikace MoreMenu jako gadgetu na místní wiki. Viz Menu skočí při načtení stránky pro instalaci uživateli.

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.