Extension:Gadgets/cs

Toto rozšíření je součástí MediaWiki 1.18 a vyšší. To znamená, že jej nemusíte stahovat samostatně. Musíte se nicméně stále řídit pokyny k jeho použití.
Category:Extensions bundled with MediaWiki 1.18/cs Category:GPL licensed extensions/cs
Příručka k rozšířením MediaWiki
Gadgets
Stav rozšíření: stabilníCategory:Stable extensions/cs
Implementace MyWiki Category:Personalization extensions/cs, Speciální stránka Category:Special page extensions/cs, API Category:API extensions/cs
Popis Jeho prostřednictvím si může uživatel v rámci svého uživatelského nastavení povolit na stránkých wiki nejrůznější "udělátka" (gadgety), založené na javascriptu.
Autoři Daniel Kinzler (Duesentriebdiskuse)
Zásady kompatibility Vydání snímků současně s MediaWiki. Hlavní vývojová větev není zpětně kompatibilní.
MediaWiki 1.19+Category:Extensions with manual MediaWiki version
Licence GNU General Public License 2.0 nebo novější
Stáhnout Category:Extensions in Wikimedia version control/cs
README
Příklad Wikimedia Commons: Přehled gadgetů, uživatelské předvolby (klikněte na "Gadgets". Musíte být samozřejmě přihlášeni.)
  • $wgGadgetsRepo
  • $wgSpecialGadgetUsageActiveUsers
Čtvrtletní stahování 63 (Ranked 43rd)
Veřejné wiki používající rozšíření 4,529 (Ranked 177th)
Přeložte rozšíření Gadgets, používá-li lokalizaci z translatewiki.net
Problémy Otevřené úkoly · Nahlásit chybu
Category:All extensions/cs

Rozšíření Gadgets, umožňuje uživatelům využívat nejrůznější "gadgety", založené na CSS a JavaScriptu, která v obsahu wiki stránek použili tvůrci obsahu.

Tvoří je tzv. snippety. Kousky kódu - snippety, psané v CSS a JavaScriptu, jsou umístěné v rámci jmenného prostoru MediaWiki. Každá "udělátko" (gadget) je definováno coby samostatná řádka wikikódu v obsahu stránky MediaWiki:Gadgets-definition, kde je uveden jeho název a popis, za kterým následuje seznam snippetů s CSS a JS kódem, se kterým bude pracovat – viz níže uvedená část věnovaná použití kódu.

Protože jde o stránky co se nachází ve jmenném prostoru MediaWiki, mohou kód gadgetů a snippetů upravovat pouze uživatelé ze skupiny správci rozhraní – angl. interface admins (od verze 1.32). V téhle skupině by tedy měli být pouze prověření a zkušení uživatelé, kterým komunita kolem wiki opravdu velmi důvěřuje, protože JavaScriptu umožňuje napsat kód, kterým by se dalo jejich důvěry snadno zneužít.

Instalace

  • Stáhněte soubor/y a vložte je do adresáře pojmenovaného Gadgets ve vaší složce extensions/.
    Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Gadgets
  • Na konec vašeho souboru LocalSettings.php přidejte následující kód:
    wfLoadExtension( 'Gadgets' );
    
  • Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.

Konfigurace

$wgGadgetsRepo Zda definovat gadgety v MediaWiki:Gadgets-definition nebo prostřednictvím stránek, jako například MediaWiki:Gadgets/yourGadget.json. If json, it will also create the content model GadgetDefinition. "Json" mode is under development and is not ready for use yet.
$wgSpecialGadgetUsageActiveUsersConfigures whether or not to show active user stats on Special:GadgetUsage.true

Použití

Výběr některých gadgetů v uživatelských preferencích na de.wikipedia

Jakmile existuje na stránce MediaWiki:Gadgets-definition definice alespoň jednoho funkčního „udělátka” (gadgetu), začne se všem uživatelům na stránce Special:Preferences zobrazovat nová záložka s názvem „Udělátka”. Tam si může každý uživatel nastavit, jaké z dostupných udělátek chce na stránkách wiki využívat. Přehled „udělátek”, definovaných na stránce MediaWiki:Gadgets-definition, generuje také speciální stránka Special:Gadgets, kde se zobrazují také odkazy na stránky (neexistující) s nápovědou i použité snippety, do kterých lze potřebný kód snadno vložit a případně i dál, podle potřeby upravovat. Statistiky ohledně využití „udělátek” pak najdete na stránce Special:GadgetUsage.

Definice „udělátka” - gadgetu

Každá řádka na stránce MediaWiki:Gadgets-definition, která začíná znakem "*" (hvězdička – asterisk), se interpretuje jako definice „udělátka” (gadgetu) a může vypadat kupř. takto:

* mygadget [parametry] | názvy stránek se snippety

První pole (v příkladu "mygadget") je interní název gadgetu. Popisek stránky nastavení pochází ze stránky s rozhraním (MediaWiki:Gadget-mygadget), kam lze napsat vlastní název a krátký popis, což také umožňuje použití wikitextového značení.

Interní název musí začínat základním latinským písmenem ([A-Za-z]) a může být následován libovolným počtem písmen, číslic ([0-9]), pomlček (-), podtržítek (_) a teček (.). Důvodem tohoto omezení je, že interní název musí být platný jako název HTML formuláře, jako klíč zprávy rozhraní MediaWiki a jako název modulu ResourceLoader.

Parametry:

[ResourceLoader | parametr1 | parametr2 | ... parametrN]

Příznak ResourceLoader je povinný, pokud gadget neobsahuje pouze styly. Možnosti, které jsou "flags" (vlajky, praporky), stačí mít k zapnutí napsaný pouze jejich název. Za možnostmi, které vyžadují hodnotu, následuje znaménko rovnosti a seznam hodnot oddělených čárkami. Všechny prázdné znaky jsou volitelné a lze je vynechat.

[ResourceLoader | myflag | mykey = value1, value2, value3 ]

Příklady:

* mygadget[ResourceLoader]|mygadget.js|mygadget.css

nebo

* mygadget[ResourceLoader|package]| mygadget.js | mygadget-Foo.js | mygadget-data.json | mygadget.css

nebo

* mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css

Použití jmenného prostoru definic gadgetů

Verze MediaWiki:
1.41

Existují dva způsoby, jak definovat gadgety v závislosti na hodnotě $wgGadgetsRepoClass. Pokud je to 'MediaWikiGadgetsDefinitionRepo' (výchozí hodnota), seznam dostupných gadgetů je definován na MediaWiki:Gadgets-definition. Alternativně jsou definice gadgetů definovány na stránkách ve jmenném prostoru Definice gadgetu, když je $wgGadgetsRepoClass nastaveno na 'GadgetDefinitionNamespaceRepo'. (Na MediaWiki 1.39+ je místo toho použita hodnota '\\MediaWiki\\Extension\\Gadgets\\GadgetDefinitionNamespaceRepo'.)

Migrace stávajících definic gadgetů zatím není podporována, takže po změně této možnosti ztratíte dříve definované gadgety.

Vytvoření stránky Gadget definition:mygadget a vložení níže uvedeného kódu JSON na ni má stejný účinek jako mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css.

{
	"settings": {
		"rights": [ "foo", "bar" ],
		"default": false,
		"package": false,
		"hidden": false,
		"skins": [],
		"actions": [],
		"category": ""
	},
	"module": {
		"scripts": [ "mygadget.js" ],
		"styles": [ "mygadget.css" ],
		"datas": [],
		"peers": [],
		"dependencies": [],
		"messages": [],
		"type": ""
	}
}

Ve výše uvedeném příkladu jsou použity hodnoty Gadget:Mygadget.js a Gadget:mygadget.css.

Parametry

Možnosti
Název Hodnota Popis Od verze
ResourceLoaderžádnáOznačí skripty gadgetu jako kompatibilní s ResourceLoader.1.17 (r76527)
dependencies Názvy modulů oddělené čárkami Tyto moduly budou načteny před spuštěním skriptů tohoto gadgetu. Viz seznam výchozích modulů. 1.17 (r76639)
rights Názvy oprávnění oddělené čárkami Zpřístupní gadget (a zobrazí ho v nastavení) pouze uživatelům, kteří mají zadaná oprávnění. 1.18 (r85268)
hidden žádná Skrýt gadget na stránce Nastavení. Toto lze použít dvěma způsoby:
  • Povolit miniaplikaci ve výchozím nastavení bez možnosti jejího zakázání (jako modulární alternativa k Common.js). Všimněte si, že je třeba přidat obojí: hidden | default pro načtení modulu pro všechny uživatele.
  • Gadgety, které nejsou určeny pro koncové uživatele, ale spíše jsou určeny k načítání jinými gadgety. Například umožnit dvěma gadgetům opakované použití stejného interního kódu nebo zaregistrovat "core" (jádro) část gadgetu, která se načítá pouze na určitých stránkách.
1.28
skins Názvy vzhledů oddělené čárkami Zpřístupnit gadget (a zviditelnit ho v nastavení) pouze uživatelům, kteří používají zadané vzhledy. Před verzí MediaWiki 1.32 se bral v úvahu vzhled nastavený v preferencích uživatele, nikoli aktuálně zobrazený (jako při přidání ?useskin=monobook do URL adresy, T199478). Od verze 1.39 není modul ResourceLoader registrován na vzhledech, na kterých není gadget k dispozici, takže gadget nelze na tyto vzhledy načíst jako závislost ani pomocí přepínače mw.loader.load() (T236603).
Použití skins je až krajní možnost a mělo by být omezeno na specializovaný kód. Například kód, který se při absenci standardizovaných API spoléhá na manipulaci s DOM a který nelze implementovat pomocí Core modulů.
1.19 (r100509)
actions Názvy akcí oddělené čárkami Zpřístupní gadget pouze pro zadané akce na stránce. Např. actions = edit, history pro načtení gadgetu pouze při úpravách a na stránkách historie.
Zadání akce edit ji také načte na action=submit. Neplatné akce deaktivují gadget, protože jej nelze nikde spustit.
1.38 (gerrit:747112)
categories Názvy kategorií oddělené čárkami Zpřístupní gadget pouze v určených kategoriích. Např. categories = Archived, Maintenance pro načtení gadgetu pouze na stránkách v kategorii Category:Archived nebo Category:Maintenance. Více na stránce: Template gadgets 1.42 (gerrit:1005092)
namespaces Čísla jmenných prostorů oddělená čárkami Zpřístupní gadget pouze v zadaných jmenných prostorech. Např. namespaces = 0, 2 pro načtení gadgetu pouze v hlavním prostoru a uživatelském jmenném prostoru. 1.41 (gerrit:624517)
contentModels Modely obsahu odděleného čárkami Zpřístupní gadget na stránkách s danými modely obsahu. Např. contentModels = wikitext pro načtení gadgetu pouze na stránkách wikitextu. 1.41 (gerrit:922062)
default žádnáPovolí miniaplikaci ve výchozím nastavení pro všechny (včetně IP adres). Registrovaní uživatelé si ji stále mohou zakázat ve svých preferencích. 1.18 (r85902)
package žádnáOznačí tento gadget jako zabalený. V tomto režimu bude spuštěna pouze první stránka JavaScriptu. Další stránky lze importovat pomocí funkce require(). Tento režim také umožňuje použití stránek JSON, které jinak nelze zahrnout. 1.38
type styles (výchozí nastavení pro gadgety pouze s CSS) nebo general (výchozí nastavení jinak) Pro moduly, které upravují styl pouze prvků, které jsou již na stránce (např. při úpravě vzhledu, rozvržení nebo obsahu článku), použijte hodnotu styles. To způsobí, že soubory CSS modulu budou zahrnuty z HTML stránky, místo aby byly načteny pomocí JavaScriptu. Podrobnosti naleznete na stránce Průvodce migrací/ResourceLoader (uživatelé)#Typ gadgetu.
Použitím parametru styles se nenačtou žádné zadané soubory JavaScriptu. Pro gadgety, které upravují styl elementů pomocí JavaScriptu a CSS, jsou vyžadovány dvě samostatné definice gadgetů.
1.28
peers Názvy gadgetů oddělené čárkami Tyto gadgety s CSS budou načteny s tímto gadgetem. Tyto gadgety budou načteny před jakýmikoli závislostmi a jejich styly budou použity, i když je JavaScript zakázán. Podrobnosti naleznete na stránce Průvodce migrací/ResourceLoader (uživatelé)#Gadget peers. 1.29
supportsUrlLoad žádná | true | false Zpřístupní gadget k načtení s parametrem dotazu URL ?withgadget. 1.38
Odstraněné možnosti
Název Parametry Popis Od verze Odstraněno
top žádný Způsobí, že se gadget načítá shora. Toto by se mělo používat střídmě, ale může být potřeba pro některé inicializační záležitosti, jako je registrace pluginů ve VisualEditoru. 1.22 (gerrit:75506) 1.29
requiresES6 žádný Povolí použití syntaxe ES6 (ES2015) v gadgetu. Povolení této možnosti znamená, že se pro gadget přeskočí ověření syntaxe na straně serveru. Všechny gadgety vyžadující ES6 se načítají společně v jednom webovém požadavku, což izoluje selhání způsobená neplatnou nebo nepodporovanou syntaxí pouze na tyto gadgety, aniž by to ovlivnilo ostatní gadgety a funkce softwaru MediaWiki. Doporučuje se použít nástroj jako ESLint, aby se zajistilo použití pouze platné syntaxe ES6. Konflikt s default. 1.40 (gerrit:758086) 1.42
targets desktop, mobile nebo desktop, mobile (výchozí) Nastavte cílovou ResourceLoader pro gadget.
Nepoužívejte targets, ale v nezbytně nutném případě použijte skins.
1.21 (gerrit:60954) 1.42

Pro své gadgety můžete zadat další závislosti, například:

* mygadget[ResourceLoader|dependencies=jquery.ui, jquery.effects.clip]|mygadget.js|mygadget.css

Zde požádáme ResourceLoader, aby načetl moduly jquery.ui a jquery.effects.clip s kódem mygadget. Upozorňujeme, že gadgety nemohou záviset na skriptech ze stránek, statických souborech nebo externích URL adresách, pouze na modulech, které jsou již registrovány v ResourceLoaderu. Aby skript ze stránky závisel na jiném skriptu ze stránky, měl by být každý z nich gadget, který se zaregistruje jako modul v ResourceLoaderu. Poté lze pomocí následující syntaxe nastavit závislosti:

* childgadget[ResourceLoader|dependencies=ext.gadget.parentgadget]|childgadget.js

Chcete-li povolit miniaplikaci ve výchozím nastavení, použijte "default":

* mygadget[ResourceLoader|default|dependencies=mediawiki.util]|mygadget.js|mygadget.css

Chcete-li, aby byl gadget dostupný pouze uživatelům s příslušnými oprávněními, nastavte parametr rights, například:

* ImprovedDeletion [rights=delete] | ImprovedDeletion.js

Díky tomu je gadget k dispozici pouze uživatelům, kteří mohou stránky mazat.

Upozorňujeme, že omezení jsou založena na oprávněních, nikoli na uživatelských skupinách, jako jsou administrátoři nebo byrokraté. Zde je několik skutečných příkladů:

* modrollback [ResourceLoader |rights=rollback] |modrollback.js
* geonotice [ResourceLoader |default |rights=viewmywatchlist] |geonotice.js
* Ajax_sysop [ResourceLoader |rights=patrol, rollback, markbotedits, delete]|Ajax_sysop.js


Uživatelská práva

Toto rozšíření přidává dvě nová uživatelská práva, gadgets-edit a gadgets-definition-edit, která ve výchozím nastavení nejsou udělena žádné skupině.

Do souboru LocalSettings.php můžete přidat následující kód, abyste uživatelům ve skupině interface-admin poskytli příslušná oprávnění. Úprava stránek ve jmenném prostoru Gadget vyžaduje právo gadgets-edit a úprava stránek ve jmenném prostoru definice Gadgetu vyžaduje právo gadgets-definition-edit.

$wgGroupPermissions['interface-admin']['gadgets-edit'] = true;
$wgGroupPermissions['interface-admin']['gadgets-definition-edit'] = true;

Stránky

Zbývající pole v řádku definice odkazují na zdrojové stránky JavaScriptu, CSS nebo JSON, které tvoří modul gadgetu. Ty jsou uloženy ve jmenném prostoru MediaWiki jako zprávy rozhraní (v tomto příkladu MediaWiki:Gadget-mygadget.js a MediaWiki:Gadget-mygadget.css). Názvy stránek musí končit na ".css", ".js" nebo ".json".

Gadget může používat libovolný počet zdrojových stránek, např.:

 * frobinator[ResourceLoader]|frob.js|frob.css|pretty.css
 * l33t[ResourceLoader]|l33t.js
 * foobar[ResourceLoader|package]|foo.js|bar.js|foobar-data.json

Upozorňujeme, že pokud váš kód obsahuje řetězce, které by mohly být interpretovány jako syntax wiki (např. kód podpisu ~~~~), můžete kód uzavřít do <nowiki>...</nowiki> a tyto tagy umístit do komentářů JavaScriptu nebo CSS, aby nebyly při použití interpretovány.

Příklad viz 12. a poslední řádek kódu MediaWiki:Gadget-formWizard-core.js.

Sekce

Seznam miniaplikací v MediaWiki:Gadgets-definition lze rozdělit do sekcí pomocí řádků, které začínají a končí dvěma nebo více znaky "=" (rovná se), a které uzavírají název systémové zprávy definující název sekce, například:

 == interface-gadgets ==
 ...
 == editing-gadgets ==
 ...

Tím by se definovaly dvě nové sekce s názvy definovanými na stránkách MediaWiki:Gadget-section-interface-gadgets a MediaWiki:Gadget-section-editing-gadgets.

Oblíbená udělátka

Viz meta:Gadgets pro gadgety, které jsou oblíbené v komunitách Wikimedie.

Viz též

Category:Extensions used on Wikimedia/cs#Gadgets/cs Category:Gadgets/cs Category:JavaScript/cs
Category:API extensions/cs Category:All extensions/cs Category:BeforePageDisplay extensions/cs Category:CodeEditorGetPageLanguage extensions/cs Category:ContentHandlerDefaultModelFor extensions/cs Category:DeleteUnknownPreferences extensions/cs Category:Extensions available as Debian packages/cs Category:Extensions bundled with MediaWiki 1.18/cs Category:Extensions in Wikimedia version control/cs Category:Extensions included in BlueSpice/cs Category:Extensions included in Canasta/cs Category:Extensions included in Fandom/cs Category:Extensions included in Miraheze/cs Category:Extensions included in MyWikis/cs Category:Extensions included in ProWiki/cs Category:Extensions included in ShoutWiki/cs Category:Extensions included in Telepedia/cs Category:Extensions included in WikiForge/cs Category:Extensions included in semantic::core/cs Category:Extensions included in wiki.gg/cs Category:Extensions used on Wikimedia/cs Category:Extensions with manual MediaWiki version Category:GPL licensed extensions/cs Category:Gadgets/cs Category:GetPreferences extensions/cs Category:GetUserPermissionsErrors extensions/cs Category:JavaScript/cs Category:Personalization extensions/cs Category:PreferencesGetIcon extensions/cs Category:PreferencesGetLegend extensions/cs Category:ResourceLoaderRegisterModules extensions/cs Category:Special page extensions/cs Category:Stable extensions/cs Category:UserGetDefaultOptions extensions/cs Category:WgQueryPages extensions/cs