Help:Extension:GlobalCssJs/cs
Rozšíření GlobalCssJs umožňuje uživatelům vytvořit stránku JavaScript a stránku CSS, které se načtou do každé wiki farmy.
Pokud na jakékoli wiki, kde je toto rozšíření povoleno, přejdete na stránku Nastavení > Vzhled
, najdete odkazy na vaše globální skripty a stylové listy:
Na stránkách wikin Wikimedie jsou tato globální přizpůsobení hostována na Meta-Wiki.
Všeobecné skripty (JavaScript)
Proměnné
Při přidávání skriptů do souboru global.js mějte na paměti, že stejně jako u gadgets nejsou proměnné deklarované s parametrem "var example
" připojeny k objektu window
: Jedná se o lokální proměnné, jejichž rozsah je obalovací funkce vložená parametrem ResourceLoader pro implementaci globálního modulu (který se nazývá "ext.globalcssjs.user
").
Pokud tedy plánujete přesunout lokální skript do globálního modulu a ten potřebuje definovat globální proměnné, ujistěte se, že k jejich deklaraci používáte syntaxi "window.example
".
Příklad
/* Libovolný JavaScript přidaný na tuto stránku se bude načítat na všech wiki, na kterých máte účet (viz [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|dokumentaci]]). */
window.myConfig = true;
// [[wikipedia:User:Lupin/popups]]
window.popupAdminLinks = true;
mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript' );
Explicitní URL
Pro načtení skriptu budete muset zadat úplnou URL adresu.
Příklad
/* Libovolný JavaScript přidaný na tuto stránku se bude načítat na všech wiki, na kterých máte účet (viz [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|dokumentaci]]). */
mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript' );
Přizpůsobení pro jednotlivé wiki
Příklad
/* Libovolný JavaScript přidaný na tuto stránku se bude načítat na všech wiki, na kterých máte účet (viz [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|dokumentaci]]). */
// Definujte několik funkcí
function onMultiLingualWikis(){
// ...
}
function onWikibooks(){
// ...
}
function onFrench(){
// ...
}
function onRuWikisource(){
// ...
}
function onEveryWiki(){
mw.loader.load( '//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-UTCLiveClock.js&action=raw&ctype=text/javascript' );
}
onEveryWiki();
if ( /^(mediawiki|wikidata|meta|commons)wiki$/.test( mw.config.get( 'wgDBname' ) ) ) {
onMultiLingualWikis();
} else if ( /wikibooks$/.test( mw.config.get( 'wgDBname' ) ) ) {
onWikibooks();
} else if ( mw.config.get( 'wgContentLanguage' ) === 'fr' ) {
onFrench();
} else if ( mw.config.get( 'wgDBname' ) === 'ruwikisource' ) {
onRuWikisource();
}
Vyloučení wiki
Pokud chcete vyloučit konkrétní wiki, např. anglický Wikisource, můžete celý soubor global.js nebo jeho část zabalit do:
if ( mw.config.get("wgDBname") !== "enwikisource" ) {
// Sem se přidává jakýkoli JavaScript, který chcete spouštět na všech wikinách kromě enwikisource.
}
Příklad: Nastavení globálního jazyka rozhraní
/* Změnit jazyk na němčinu */
mw.loader.using( 'mediawiki.user', function() {
if ( mw.user.options.get( 'language' ) !== 'de' ) {
( new mw.Api() ).postWithToken( 'csrf', {
action: 'options',
change: 'language=de'
} ).then( function() {
mw.notify( 'Jazyk byl změněn na němčinu. Aktualizujte prosím stránku.' );
} );
} else {
console.log( 'Jazyk je již nastaven na němčinu!' );
}
} );
Globální stylové listy (CSS)
Poznámka: Všechny řádky @import ...
musí být nahoře.
Příklad
/* Libovolné CSS přidané na tuto stránku se bude načítat na všech wiki, na kterých máte účet (viz [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:GlobalCssJs dokumentaci]). */
/* Skrytí několika prvků rozhraní */
#n-help,
#footer {
display: none !important;
}
Přizpůsobení jednotlivých vzhledů
Rozšíření v současné době neposkytuje globální CSS/JS pro konkrétní vzhledy, ale je možné CSS a JS pro vzhled globálně přizpůsobit.
V CSS můžete upravit vzhled konkrétního skinu pomocí tříd jako "skin-vector" a "skin-monobook", které MediaWiki automaticky přidává k elementu body.
Selektor :not()
můžete použít k přeskočení pouze jednoho vzhledu, např. :not(.skin-minerva)
, abyste pravidlo nepoužili na mobilní vzhled.
Příklad (CSS)
/* Libovolné CSS přidané na tuto stránku se bude načítat na všech wiki, na kterých máte účet (viz [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:GlobalCssJs dokumentaci]). */
/* Skrýt několik prvků rozhraní na vektorovém vzhledu */
.skin-vector #n-help,
.skin-vector #footer {
display: none !important;
}
/* Zvýrazněte tučně postranní panel s interwiki odkazy na en.wikipedia.org, simple.wikipedia.org a interprojektovými odkazy na Commons/Wikivoyage */
.interwiki-en, .interwiki-simple, .wb-otherproject-commons, .wb-otherproject-wikivoyage {
font-weight: bold;
}
Příklad (JS)
/* Libovolný JavaScript přidaný na tuto stránku se bude načítat na všech wiki, na kterých máte účet (viz [[mw:Special:MyLanguage/Help:Extension:GlobalCssJs|dokumentaci]]). */
// Načíst JWB globálně při použití vektorového vzhledu
if ( mw.config.get( 'skin' ) === 'vector' ) {
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript');
}