Příručka:Rozhraní/JavaScript
MediaWiki a JavaScript |
---|
Doručení JavaScript |
|
Přidání JS na wiki |
|
Rozšíření, vzhledy a další moduly |
|
Další pokyny |
v · d · u |
MediaWiki:Common.js obsahuje kód JavaScriptu, který bude načten pro všechny uživatele. Zadejte "MediaWiki:Common.js" do vyhledávacího pole vaší wiki. Pokud stránka neexistuje, zobrazí se vám to. Pokud ano a máte potřebná uživatelská práva , stačí ji vytvořit s kódem, který potřebujete spustit. Existují podobné stránky, které ovlivňují pouze uživatele konkrétních vzhledů (viz níže).
Pokud je $wgAllowUserJs
nastaveno na hodnotu true, uživatelé si mohou rozhraní přizpůsobit pouze pro sebe vytvořením a importem osobních skriptů na určitých podstránkách uživatelů.
Rozšíření:Gadgets usnadňuje administrátorům webu a uživatelům sdílení JavaScriptu, viz Gadget kuchyň .
Tato stránka popisuje dostupné stavové a konfigurační proměnné. Obecné informace o JavaScript API naleznete ve vygenerované dokumentaci.
Seznam JavaScriptových stránek
Všeobecné skripty
- MediaWiki:Common.js - platí pro všechny vzhledy, ale je ignorováno mobilním webem od Extension:MobileFrontend
- MediaWiki:skinname.js - platí pro konkrétní vzhled, například MediaWiki:Vector.js
- MediaWiki:Group-group.js - platí pro konkrétní skupinu uživatelů, například MediaWiki:Group-sysop.js
- MediaWiki:Mobile.js - platí pro mobilní web. Poskytuje Extension:MobileFrontend
- Special:Gadgets - může být aktivováno libovolným uživatelem v Preferences nebo může být standardně povoleno pro všechny uživatele. Poskytuje Rozšíření:Gadgets
Osobní skripty
Osobní skripty jsou k dispozici pouze v případě, že je $wgAllowUserJs
nastaveno na true
.
- User:Example/common.js - všechny vzhledy - představeny v MW v1.17
- User:Example/skinname.js - místo vzhledu, například User:Example/vector.js.Vždy malými písmeny)
- User:Example/global.js - místo Příručka:Rodina wiki , pokud se pro tuto rodinu používá Extension:GlobalCssJs
Pro usnadnění programování v JavaScriptu software MediaWiki zpřístupňuje řadu konfiguračních hodnot v objektu s názvem mw.config .
- Jejich názvy byly dříve zpřístupněny jako globální proměnné JavaScriptu, pokud je
$wgLegacyJavaScriptGlobals
pravdivé, takže používají prefix, aby se zabránilo kolizím. - Podmnožina těchto názvů odpovídá proměnným $wg v PHP, ale jiné s nimi nesouvisí.
- Kromě názvů v tomto seznamu mnoho rozšíření také nastavuje další konfigurační proměnné JavaScriptu s předponou 'wg'.
Tyto hodnoty jsou přístupné prostřednictvím modulu mw.config
, který je popsán v modulech ResourceLoader/Core.
Celý web
Název | Typ | Popis | Dostupnost | Příklad výstupu |
---|---|---|---|---|
debug
|
Celé číslo (1.36+) / Boolean (-1.35) | Od verze MediaWiki 1.36+ znamená 0 , že ladicí režim je vypnutý, a kladné nenulové číslo znamená, že ladicí režim je zapnutý (např. 1 nebo 2 ).
V MediaWiki 1.35 a starších verzích se používaly |
1.17MW 1.17+ | 0 |
skin
|
Řetězec | Interní název aktuálně používaného vzhledu. | 1.18MW <1.7 (vzhled monobook) MW 1.8+: all skins and pages |
vector |
stylepath
|
Řetězec | Úplná URL adresa kořenového adresáře pro vzhledy, obsahující stylové listy a skripty specifické pro vzhledy. Cesta neobsahuje podadresář skin a není ukončena znakem "/". | 1.18MW <1.7 (vzhled monobook) MW 1.8+: všechny vzhledy a stránky |
/w/skins |
wgArticlePath
|
Řetězec | Lokální cesta, začínající u kořene, k referenčním článkům, obsahující zástupný symbol "1ドル", který lze nahradit názvem stránky, aby se získala platná adresa URL dané stránky. Pro platný název stránky title lze pomocí wgArticlePath.replace('1ドル', title) vytvořit platnou URL adresu. Více na stránce $wgArticlePath .
|
1.08MW 1.8+ | /wiki/1ドル |
wgCaseSensitiveNamespaces
|
Pole | ID jmenných prostorů, u kterých MediaWiki rozlišuje velká a malá písmena. Určeno hodnotami jejich konfiguračních proměnných $wgCapitalLinks a $wgCapitalLinksOverrides .
|
1.18MW 1.18+ (r90234 ) | [] |
wgContentLanguage
|
Řetězec | Jazykový kód pro výchozí content language wiki. | 1.08MW 1.8+ | en |
wgContentNamespaces
|
Pole celých čísel | ID jmenných prostorů, které MediaWiki považuje za "jmenné prostory obsahu". Ekvivalentní hodnotě konfigurační proměnné $wgContentNamespaces , včetně proměnné 0 , pokud již není zahrnuta.
|
1.23MW 1.23+ (git #3d87e3a8) | [100, 102, 104, 106, 0] |
wgDBname
|
Řetězec | Název databáze wiki. | 1.13MW 1.13+ | mediawikiwiki |
wgWikiID
|
Řetězec | Identifikátor wiki. Mělo by být upřednostňováno před wgDBname .
|
1.34MW 1.34+ (d45baf7f0734) | mediawikiwiki |
wgExtensionAssetsPath
|
Řetězec | Kořenová cesta použitá pro statické datové zdroje rozšíření (např. images). Přidejte '/' a poté název rozšíření, abyste získali kořenovou cestu pro dané rozšíření. | 1.18MW 1.18+ (r82247 ) | /w/extensions |
wgFormattedNamespaces
|
Objekt | Poskytuje mapování z ID jmenných prostorů na lokalizované názvy jmenných prostorů. Pro každý jmenný prostor má objekt jednu položku, která má jako klíč řetězcové číslo jmenného prostoru a jako hodnotu název jmenného prostoru. Aliasy ani kanonická jména nejsou zahrnuty. | 1.16MW 1.16+ | {0: '', 1: 'Talk', 2: 'User', ... } |
wgNamespaceIds
|
Objekt | Poskytuje mapování z názvů jmenných prostorů na ID jmenných prostorů. Pro každý název jmenného prostoru, včetně lokalizovaných a kanonických názvů a aliasů, má objekt jednu položku, která má jako klíč název jmenného prostoru a jako celočíselnou hodnotu ID jmenného prostoru. Všechny klávesy jsou malými písmeny, mezery jsou nahrazeny podtržítky. | 1.16MW 1.16+ | {media: -2, special: -1, "": 0, talk: 1, user: 2, ... } |
wgScript
|
Řetězec | Úplná cesta k hlavnímu skriptu přístupového bodu, počínaje kořenovým adresářem, včetně celého názvu skriptu s příponou. Na wiki stránkách WMF obvykle "/w/index.php". Více na stránce $wgScript . | 1.11MW 1.11+ | /w/index.php |
wgScriptPath
|
Řetězec | Část cesty proměnné wgScript bez koncové proměnné "/". Toto je cesta, která se má použít pro přímá volání přístupových bodů PHP, jako například index.php nebo api.php . Více na stránce $wgScriptPath .
|
1.08MW 1.8+ | /w |
wgServer
|
Řetězec | URL adresa serveru, neukončená řetězcem "/". Například kombinace wgServer + wgScriptPath + "/api.php" vede k platné URL adrese pro skript přístupového bodu API.
|
1.08MW 1.8+ | //www.mediawiki.org |
wgServerName
|
String | Název serveru bez protokolu nebo koncového lomítka (např. "cs.wikipedia.org"). | 1.24MW 1.24+ (72c0ce43a854) | www.mediawiki.org |
wgSiteName
|
String | Název webu, jak je definován v $wgSitename . | 1.16MW 1.16+ | MediaWiki |
wgVariantArticlePath
|
Řetězec nebo false
|
Pokud má wiki jazykové varianty (například čínskou a srbskou Wikipedii), nastaví cestu začínající u kořenového adresáře pro jazykové varianty jiné než wgContentLanguage . Cesta obsahuje dva zástupné symboly: "1ドル" se nahradí názvem stránky a "2ドル" se nahradí kódem jazykové varianty (např. „zh-tw"). Pokud wiki nemá jazykové varianty, nastaví hodnotu false . Více na stránce $wgVariantArticlePath .
|
1.13MW 1.13+ | false |
wgVersion
|
Řetězec | Identifikuje verzi MediaWiki, která stránku zobrazovala. | 1.12MW 1.12+ | 1.42.0-wmf.26 |
wgMFMode
|
Boolean | Zda byla aktuální webová odpověď formátována pro mobilní zařízení (např. pomocí MobileFrontend na základě uživatelského agenta, parametru URL nebo souboru cookie). Podporováno je pouze použití booleovských hodnot. V praxi je undefined nebo řetězec a přesný řetězec je považován za interní. V budoucnu se toto může stát skutečnou booleovskou hodnotou. | MW 1.21+ (change 52270, T390923, T299772) |
Všechny stránky (specifické pro uživatele/stránku)
Název | Typ | Popis | Dostupnost | Příklad výstupu |
---|---|---|---|---|
wgAction
|
Řetězec | Provedená akce, např. "edit" pro stránky s úpravami nebo "view" pro zobrazení stránek. Podívejte se na stránku Příručka:Parametry pro index.php#Akce. | MW 1.10+ | view |
wgArticleId
|
Celé číslo | Interní ID (ID stránky) stránky. Pro neexistující stránky a speciální stránky je nula. | MW 1.8+ | 17317 |
wgCanonicalNamespace
|
Řetězec | Kanonický (tj. nelokalizovaný ani nealiasovaný) namespace název stránky. | MW 1.8+ | Manual |
wgCanonicalSpecialPageName
|
Řetězec nebo false nebo není definováno
|
Na speciálních stránkách kanonický (tj. nelokalizovaný ani nealiasovaný) název speciální stránky. Jinak je nastaven na false (od verze MW 1.16; dříve v tomto případě nebyl vůbec definován).
|
MW 1.9+ | false |
wgCategories
|
Pole řetězců | Seznam všech kategorií, do kterých stránka patří. Toto je v podstatě JavaScriptová verze pole kategorie zobrazeného na stránce (šedé pole ve spodní části stránky v Monobooku/Vectoru). Pokud se pole kategorie na aktuální stránce nezobrazuje (jako je tomu v případě úprav/prohlížení historie), bude wgCategories prázdné pole. Toto není k dispozici v MobileFrontendu, bez ohledu na to, zda je rozšířený režim zapnutý nebo vypnutý.
|
MW 1.16+ | ['JavaScript'] |
wgCurRevisionId
|
Celé číslo | ID nejvyšší revize aktuálně zobrazené stránky v době, kdy byla stránka zobrazena. Také nastaveno na stránkách rozdílů a historie. Nula pro speciální stránky. | MW 1.9+ | 6400980 |
wgIsArticle
|
Boolean | true , pokud stránka zobrazuje obsah wiki stránky, např. při prohlížení stránky (bez ohledu na jmenný prostor) nebo při prohlížení staré revize či rozdílu s vykresleným obsahem pod ní. Pro cokoli jiného (formulář pro úpravy, stránku historie, speciální stránky, nejgenerovanější stránky atd.) platí false .
Tato proměnná je špatně pojmenovaná – nesouvisí se stránkou, jelikož je hlavním jmenným prostorem "article" (článek).
|
MW 1.8+ | true |
wgIsProbablyEditable
|
Boolean | True , pokud je stránka pravděpodobně upravitelná (na základě Title::quickUserCan ) aktuálním uživatelem. Slovo 'probably' (pravděpodobně) je nezbytné z důvodů výkonu. Přesná kontrola upravitelnosti je zde příliš nákladná kvůli kaskádové ochraně a rozšířením založeným na hookech, jako je TitleBlacklist , která mohou být povolena. Pokud je true , je pravděpodobné, že to bude možné upravovat. Pokud je false , rozhodně to není editovatelné.
|
(git #0bbc3589) | true |
wgIsRedirect
|
Boolean | true , pokud stránka přesměrovává na wiki stránku s použitím #REDIRECT [[názvu cílové stránky]] . Pro cokoli jiného (normální stránky, speciální stránky, nejgenerovanější stránky atd.) je to false .
|
MW 1.22+ (gerrit:75478) | false |
wgNamespaceNumber
|
Celé číslo | Číslo jmenného prostoru , ve kterém se stránka nachází. | MW 1.8+ | 100 |
wgPageContentLanguage
|
Řetězec | Kód jazyka page content language (podle $context->getTitle()->getPageLanguage() )
|
MW 1.19+ (r104483 ) | en |
wgPageContentModel
|
Řetězec | 'wikitext' na typických wiki stránkách, 'javascript' na stránkách interpretovaných jako JavaScript, 'css' na stránkách interpretovaných jako CSS, 'Scribunto' na stránkách interpretovaných jako Scribunto (Lua).
|
1.16MW 1.22+ (gerrit:62178) | wikitext |
wgPageName
|
Řetězec | Celý název stránky, včetně lokalizovaného názvu jmenného prostoru, pokud jmenný prostor má název (hlavní jmenný prostor (číslo 0) ho nemá), a s mezerami nahrazenými podtržítky. Chcete-li získat pouze název bez jmenného prostoru, použijte wgTitle .
|
MW 1.8+ | Manual:Interface/JavaScript |
wgPageParseReport
|
Objekt | Zpráva o limitu analyzátoru pro stránku, pokud jsou k dispozici data analyzátoru. Zahrnuje data o limitech parserů, statistiky Lua, když je povoleno rozšíření Scribunto, a informace o mezipaměti parseru. | MW 1.28+ (git #316207) | {limitreport: {...}, scribunto: {...}, cachereport: {...}} |
wgRedirectedFrom
|
Řetězec | Při přesměrování obsahuje název stránky, ze které jsme byli přesměrováni. Pokud stránka nebyla přesměrována, hodnota se zcela vynechá (není součástí mw.config ). Používá stejný formát jako wgPageName .
|
MW 1.19+ (r104668 ) | null |
wgRelevantPageName
|
Řetězec | Celý název stránky, na kterou se vztahují akce s obsahem a navigační odkazy (např. karty vzhledu). Funkce AJAX watch toto využívá ke správnému fungování na speciálních stránkách, jako jsou Special:MovePage a Special:WhatLinksHere. | MW 1.19+ (r113737 ) | Manual:Interface/JavaScript |
wgRelevantUserName
|
Řetězec nebo nenastaveno | Relevantní jméno uživatele, na kterého se vztahují akce s obsahem a některé další navigační odkazy (např. odkaz na uživatelská práva nebo uživatelské příspěvky). | MW 1.23+ (git #88773) | null |
wgRelevantPageIsProbablyEditable
|
Boolean | Jako wgIsProbablyEditable , ale aplikováno na kontextově relevantní název stránky z wgRelevantPageName , nikoli striktně na aktuálně prohlíženou stránku. Například při zobrazení stránky "Special:MovePage/Example " se tím zobrazí, zda je daná stránka upravitelná.
|
MW 1.30+ (git #dbfe9c99) | true |
wgRestrictionEdit
|
Pole řetězců nebo zrušení nastavení | Pokud je stránka vůbec upravitelná (a nejedná se o speciální stránku) a úpravy stránky jsou omezeny na některé uživatelské skupiny, pole obsahuje minimální počet uživatelských skupin, ve kterých musí uživatel patřit, aby mohl stránku upravovat. Pro částečně chráněné stránky by obsahoval ["autoconfirmed"] . Pro plně chráněné stránky ["sysop"] . Pokud neexistují žádná explicitní omezení, hodnota je [] (pole bez prvků).
Toto pole obsahuje pouze explicitní ochrany. Ochrany v celém jmenném prostoru (např. jmenný prostor MediaWiki, $wgNamespaceProtection ), kaskádové ochrany nebo "ochrany" vyvolané atributem "noedit" rozšíření TitleBlacklist jsou tímto polem ignorovány. Na takových stránkách je hodnota obvykle Pokud stránka neexistuje, proměnná se nenastaví. |
MW 1.14+ | [] |
wgRestrictionMove
|
Pole řetězců | Pokud je stránka vůbec pohyblivá (a nejedná se o speciální stránku) a její pohyb je omezen na určité skupiny uživatelů, pole obsahuje minimální počet skupin uživatelů, ve kterých musí uživatel patřit, aby bylo možné stránku přesunout. Pro částečně chráněné stránky s přesunem by obsahoval hodnotu ["autoconfirmed"] . Pro plně chráněné stránky s přesunem ["sysop"] . Pokud neexistují žádná explicitní omezení, hodnota je [] (pole bez prvků).
Toto pole obsahuje pouze explicitní ochrany. Ochrany v celém jmenném prostoru (např. jmenný prostor MediaWiki, $wgNamespaceProtection ), kaskádové ochrany nebo "ochrany" vyvolané atributem "moveonly" rozšíření TitleBlacklist jsou tímto polem ignorovány. Na takových stránkách je hodnota obvykle |
MW 1.14+ | [] |
wgRevisionId
|
Celé číslo | ID aktuálně zobrazené revize nebo správné revize pro zobrazení rozdílů (ale 0, pokud diffonly=yes, T231744). Také nastaveno na rozdílových stránkách. Nula pro speciální stránky, stránky historie nebo kdekoli jinde, kde to není možné. | MW 1.22+ git #7fa7b71e | 6400980 |
wgSearchType
|
Řetězec nebo nenastaveno | Název vyhledávacího backendu používaného ke spuštění vyhledávacích požadavků. | MW 1.23+ (git #118655) | CirrusSearch |
wgTitle
|
Řetězec | Název stránky bez jmenného prostoru. Může obsahovat mezery – neobsahuje podtržítka. Chcete-li získat název včetně jmenného prostoru, použijte wgPageName .
|
MW 1.8+ | Interface/JavaScript |
Souvisí s uživatelem, který si stránku aktuálně prohlíží:
Název | Typ | Popis | Dostupnost | Příklad výstupu |
---|---|---|---|---|
wgUserEditCount
|
Celé číslo | Počet úprav provedených aktuálním uživatelem (null, pokud není přihlášen). | 1.21MW 1.21+ | 556 |
wgUserGroups
|
Pole řetězců | Pole obsahující všechny (lokální) uživatelské skupiny, jejichž je aktuální uživatel členem, nebo null pro nepřihlášené uživatele. Skupiny uživatelů jsou identifikovány interními názvy skupin uživatelů, např. "sysop", "autoconfirmed", "bureaucrat" atd. Výchozí uživatelská skupina se jmenuje "*".
|
MW 1.10+ | ['autopatrolled', '*', 'user', 'autoconfirmed'] |
wgUserId
|
Celé číslo | Číselné ID aktuálního uživatele (null, pokud není přihlášen). | 1.21MW 1.21+ | 12311063 |
wgUserLanguage
|
Řetězec | Kód jazyka uživatelského rozhraní, jak je nastaven ve Speciálních předvolbách (který může být přepsán parametrem uselang= v URL).
|
1.08MW 1.8+ | en |
wgUserName
|
Řetězec | Uživatelské jméno uživatele, který si aktuálně prohlíží stránku, pokud se jedná o přihlášeného uživatele. Pro nepřihlášené uživatele je to null (není to IP adresa uživatele, na rozdíl od PHP $wgUser->getName() na serveru).
|
MW 1.8+ | Your Username |
wgUserRegistration
|
Celé číslo | Čas a datum, kdy se aktuální uživatel zaregistroval, vyjádřené v milisekundách od dané epochy. Nula, pokud nejste přihlášeni. | 1.21MW 1.21+ | 1514273653000 |
Některé stránky
Některé další proměnné jsou přítomny pouze v závislosti na jmenném prostoru stránky, konfiguraci wiki a nebo uživatelských preferencích.
Název | Typ | Popis | Dostupnost |
---|---|---|---|
Hlavní stránka | |||
wgIsMainPage
|
Boolean | true , pokud je aktuální stránka hlavní stránkou wiki. Jinak zcela vynecháno (výchozí hodnota je null v mw.config ).
|
MW 1.18+ |
Pokud má jazyk obsahu varianty: | |||
wgUserVariant
|
Řetězec | Pokud má wiki jazykové varianty, kód jazyka preferované varianty uživatele. Pokud wiki neobsahuje varianty, proměnná není nakonfigurována (neexistuje), tj.: mw.config.exists('wgUserVariant');// false mw.config.get('wgUserVariant');// null .
|
MW 1.16+ |
Po uložení úpravy | |||
wgPostEdit
|
Řetězec | "saved", pokud uživatel právě uložil tuto stránku. "created", pokud uživatel tuto stránku právě vytvořil. "restored", pokud uživatel právě obnovil tuto stránku přechodem na stránku historie, klikl na odkaz s časovým razítkem pro starou revizi, klikl na Upravit a poté ji uložil. Jinak null . Všimněte si, že:
|
MW 1.21+ (gerrit:50480) |
Při porovnávání revizí | |||
wgDiffOldId
|
Celé číslo | ID "staré" revize při zobrazení rozdílu. K dispozici pouze při zobrazení porovnání revizí. | MW 1.30+ (git #a469795e) |
wgDiffNewId
|
Celé číslo | ID "nové" revize při zobrazení rozdílu. K dispozici pouze při zobrazení porovnání revizí. | MW 1.30+ (git #a469795e) |
Specifické pro danou stránku (rozšíření Wikibase)
Některé další informace budou k dispozici, jakmile web podpoří Wikibase :
Název | Typ | Popis | Dostupnost |
---|---|---|---|
wgWikibaseItemId
|
Řetězec | ID položky Wikibase pro aktuální stránku. V současné době v režimu úprav tato proměnná není nastavena. Podívejte se na stránku phab:T185437. | ? |
Háčky pro rozšíření
- ResourceLoaderGetConfigVars - od verze MediaWiki 1.17 mohou rozšíření MediaWiki pomocí tohoto háčku přidávat vlastní proměnné na celém webu.
- MakeGlobalVariablesScript - od verze MediaWiki 1.14 mohou rozšíření MediaWiki přidávat vlastní proměnné do proměnné OutputPage. Pokud proměnná nezávisí na prohlížené stránce, použijte místo toho háček ResourceLoaderGetConfigVars .
Související odkazy
- How to enhance wiki content with JavaScript
- Definice TypeScript pro rozhraní JavaScript (fungují v projektech JavaScriptu i v populárních IDE)