MediaWiki: Common.js - MediaWiki:Common.js - Wikipedia
![]() | To je JavaScript pro všechny uživatele. Jakékoli změny na této stránce by měly být nejprve navrženy na ní diskusní stránka nebo Vesnická pumpa. Upozorňujeme, že změny jsou viditelné během několika minut. Chyby, které zde uděláte, mohou narušit celou encyklopedii, takže se ujistěte, že víte, co děláte. Testování lze provést na vašem osobním počítači common.js nebo soubor JS specifický pro kůži. |
/** * Udržujte kód v MediaWiki: Common.js na minimu, protože je bezpodmínečně * načteno pro všechny uživatele na každé wiki stránce. Pokud je to možné, vytvořte miniaplikaci, která je * ve výchozím nastavení povoleno místo přidávání sem (protože gadgety jsou plně * optimalizované moduly ResourceLoader s možností přidat závislosti atd.) * * Vzhledem k tomu, že Common.js není gadget, není kde jej deklarovat * závislosti, takže je musíme líně načítat pomocí mw.loader. pomocí na vyžádání a * poté proveďte zbytek v zpětném volání. Ve většině případů tyto závislosti budou * načíst (nebo načíst) již a zpětné volání nebude zpožděno. V případě a * závislost ještě nedorazila, ujistí se, že jsou načteny dříve. *// * globální mw, $ * // * jshint strict: false, prohlížeč: true * /mw.nakladač.použitím( [ 'mediawiki.util' ] ).Hotovo( funkce () { / * Začátek mw.loader.pomocí zpětného volání * / /*** Opravy rozložení hlavní stránky ** Popis: Přidá další odkaz na úplný seznam dostupných jazyků.* Správci: [[Uživatel: AzaToth]], [[Uživatel: R. Koot]], [[Uživatel: Alex Smotrov]] */ -li ( mw.konfigurace.dostat( 'wgPageName' ) === 'Hlavní strana' || mw.konfigurace.dostat( 'wgPageName' ) === 'Talk: Main_Page' ) { $( funkce () { mw.util.addPortletLink( 'p-lang', „//meta.wikimedia.org/wiki/List_of_Wikipedias“, 'Kompletní seznam', 'interwiki-completelist', 'Kompletní seznam Wikipedií' ); } ); } /*** Mapa addPortletLink na mw.util* @deprecated: Použijte místo toho mw.util.addPortletLink. */ mw.log.zastarat( okno, 'addPortletLink', mw.util.addPortletLink, 'Místo toho použijte mw.util.addPortletLink' ); /*** Extrahujte parametr URL z aktuální adresy URL* @deprecated: Použijte mw.util.getParamValue se správným únikem */ mw.log.zastarat( okno, 'getURLParamValue', mw.util.getParamValue, 'Místo toho použijte mw.util.getParamValue' ); /*** Vyzkoušejte, zda má prvek určitou třídu* @deprecated: Místo toho použijte $ (element) .hasClass (). */ mw.log.zastarat( okno, 'hasClass', funkce ( živel, jméno třídy ) { vrátit se $( živel ).hasClass( jméno třídy ); }, 'Místo toho použijte jQuery.hasClass ()' ); /*** @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL* @rev 6 */ var extraCSS = mw.util.getParamValue( 'withCSS' ), extraJS = mw.util.getParamValue( 'withJS' ); -li ( extraCSS ) { -li ( extraCSS.zápas( /^MediaWiki:[^&<>=%#]*.css$/ ) ) { mw.nakladač.zatížení( „/w/index.php?title=“ + extraCSS + '& action = raw & ctype = text / css', 'text / css' ); } jiný { mw.oznámit( "Povoleny jsou pouze stránky z oboru jmen MediaWiki.", { titul: „Neplatné s hodnotou CSS“ } ); } } -li ( extraJS ) { -li ( extraJS.zápas( /^MediaWiki:[^&<>=%#]*.js$/ ) ) { mw.nakladač.zatížení( „/w/index.php?title=“ + extraJS + '& action = raw & ctype = text / javascript' ); } jiný { mw.oznámit( "Povoleny jsou pouze stránky z oboru jmen MediaWiki.", { titul: „Neplatné s hodnotou JS“ } ); } } /*** WikiMiniAtlas ** Popis: WikiMiniAtlas je vyskakovací mapa a přetažení mapy světa.* Tento skript způsobí, že se u všech našich souřadnicových odkazů zobrazí vyskakovací tlačítko WikiMiniAtlas.* Samotný skript je umístěn na meta, protože je používán mnoha projekty.* Další informace viz [[Meta: WikiMiniAtlas]].* Poznámka - použití této služby se doporučuje nahradit mw: Help: Extension: Kartographer */ $( funkce () { var vyžadujíWikiminiatlas = $( 'a.external.text [href * = "geohack"]' ' ).délka || $( 'div.kmldata' ).délka; -li ( vyžadujíWikiminiatlas ) { mw.nakladač.zatížení( „//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript“ ); } } ); /*** Skládací stoly; reimplemented with mw-collapsible* Styling je také na místě, aby se zabránilo FOUC ** Umožňuje sbalit tabulky a zobrazit pouze záhlaví. Viz [[Nápověda: Sbalení]].* @version 3.0.0 (2018-05-20)* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js* @author [[Uživatel: R. Koot]]* @author [[Uživatel: Krinkle]]* @author [[Uživatel: TheDJ]]* @deprecated Protože MediaWiki 1.20: Místo toho použijte class = "mw-collapsible"* je podporováno v jádru MediaWiki. Shimable od MediaWiki 1.32 ** @param {jQuery} $ obsah */ funkce makeCollapsibleMwCollapsible( $ obsah ) { var $ stoly = $ obsah .nalézt( 'table.collapsible: not (.mw-collapsible)' ) .addClass( 'mw-collapsible' ); $.každý( $ stoly, funkce ( index, stůl ) { // mw.log.warn ('Tato stránka používá zastaralou třídu skládací. Nahraďte ji prosím mw-skládací.'); -li ( $( stůl ).hasClass( 'zhroutil se' ) ) { $( stůl ).addClass( 'mw collapsed' ); // mw.log.warn ('Tato stránka používá zastaralou třídu sbalenou. Nahraďte ji prosím mw-sbalenou.'); } } ); -li ( $ stoly.délka > 0 ) { mw.nakladač.použitím( 'jquery.makeCollapsible' ).pak( funkce () { $ stoly.makeCollapsible(); } ); } } mw.háček( 'wikipage.content' ).přidat( makeCollapsibleMwCollapsible ); /*** Přidejte podporu pro mw-collapsible pro autocollapse, innercollapse a outercollapse ** Správci: TheDJ */ funkce mwCollapsibleSetup( $ collapsibleContent ) { var $ prvek, $ přepnout, autoCollapseThreshold = 2; $.každý( $ collapsibleContent, funkce ( index, živel ) { $ prvek = $( živel ); -li ( $ prvek.hasClass( 'skládací' ) ) { $ prvek.nalézt( 'tr: první> th: první' ).předřadit( $ prvek.nalézt( 'tr: first> *> .mw-collapsible-toggle' ) ); } -li ( $ collapsibleContent.délka >= autoCollapseThreshold && $ prvek.hasClass( 'autocollapse' ) ) { $ prvek.data( 'mw-collapsible' ).kolaps(); } jiný -li ( $ prvek.hasClass( 'internalcollapse' ) ) { -li ( $ prvek.rodiče( '.outercollapse' ).délka > 0 ) { $ prvek.data( 'mw-collapsible' ).kolaps(); } } // kvůli barevnému pozadí stylujte odkaz v barvě textu // zajistit přístupný kontrast $ přepnout = $ prvek.nalézt( '.mw-collapsible-toggle' ); -li ( $ přepnout.délka ) { // Nastaví barvu zděděného přepínače -li ( $ přepnout.rodič()[ 0 ].styl.barva ) { $ přepnout.nalézt( 'A' ).css( 'barva', 'zdědit' ); } } } ); } mw.háček( 'wikipage.collapsibleContent' ).přidat( mwCollapsibleSetup ); /*** Dynamické navigační lišty (experimentální) ** Popis: Viz [[Wikipedia: NavFrame]].* Správci: NEÚDRŽBOVANÍ */ var collapseCaption = 'skrýt'; var expandCaption = 'ukázat'; // Nastavte slova ve vašem jazyce var navigationBarHide = '[' + collapseCaption + ']'; var navigationBarShow = '[' + expandCaption + ']'; /*** Zobrazuje a skrývá obsah a obrázek (pokud je k dispozici) navigačních panelů. ** @param {number} indexNavigationBar Index navigační lišty, kterou chcete přepnout* @param {jQuery.Event} událost Objekt události* @return {boolean} */ funkce toggleNavigationBar( indexNavigationBar, událost ) { var navToggle = dokument.getElementById( 'NavToggle' + indexNavigationBar ); var navFrame = dokument.getElementById( 'NavFrame' + indexNavigationBar ); var navChild; -li ( !navFrame || !navToggle ) { vrátit se Nepravdivé; } // Pokud se nyní zobrazuje -li ( navToggle.první dítě.data === navigationBarHide ) { pro ( navChild = navFrame.první dítě; navChild !== nula; navChild = navChild.další sourozenec ) { -li ( $( navChild ).hasClass( 'NavContent' ) ) { navChild.styl.Zobrazit = 'žádný'; } } navToggle.první dítě.data = navigationBarShow; // Pokud je nyní skrytý } jiný -li ( navToggle.první dítě.data === navigationBarShow ) { pro ( navChild = navFrame.první dítě; navChild !== nula; navChild = navChild.další sourozenec ) { -li ( $( navChild ).hasClass( 'NavContent' ) ) { navChild.styl.Zobrazit = 'blok'; } } navToggle.první dítě.data = navigationBarHide; } událost.preventDefault(); } /*** Přidá tlačítko show / hide na navigační lišty. ** @param {jQuery} $ obsah */ funkce createNavigationBarToggleButton( $ obsah ) { var j, navChild, navToggle, navToggleText, isColpsed, indexNavigationBar = 0; // Iterace nad všemi prvky var $ divs = $ obsah.nalézt( 'div.NavFrame: not (.mw-collapsible)' ); $ divs.každý( funkce ( i, navFrame ) { indexNavigationBar++; navToggle = dokument.createElement( 'A' ); navToggle.jméno třídy = 'NavToggle'; navToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar ); navToggle.setAttribute( 'href', '#' ); $( navToggle ).na( 'klik', $.proxy( toggleNavigationBar, nula, indexNavigationBar ) ); isColpsed = $( navFrame ).hasClass( 'zhroutil se' ); /*** Zkontrolujte, zda již nejsou nějaké děti skryty. Tato smyčka je zde pro zpětnou kompatibilitu:* starý způsob, jak začít sbalit NavFrames, bylo ručně přidat style = "display: none"* na všechny prvky NavPic / NavContent. Protože to bylo špatné pro přístupnost (žádný způsob, jak to udělat* obsah viditelný bez podpory JavaScriptu), novým doporučeným způsobem je přidání třídy* „Sbaleno“ do samotného NavFrame, stejně jako u skládacích stolů. */ pro ( navChild = navFrame.první dítě; navChild !== nula && !isColpsed; navChild = navChild.další sourozenec ) { -li ( $( navChild ).hasClass( 'NavPic' ) || $( navChild ).hasClass( 'NavContent' ) ) { -li ( navChild.styl.Zobrazit === 'žádný' ) { isColpsed = skutečný; } } } -li ( isColpsed ) { pro ( navChild = navFrame.první dítě; navChild !== nula; navChild = navChild.další sourozenec ) { -li ( $( navChild ).hasClass( 'NavPic' ) || $( navChild ).hasClass( 'NavContent' ) ) { navChild.styl.Zobrazit = 'žádný'; } } } navToggleText = dokument.createTextNode( isColpsed ? navigationBarShow : navigationBarHide ); navToggle.appendChild( navToggleText ); // Najít NavHead a připojit přepínač pro ( j = 0; j < navFrame.childNodes.délka; j++ ) { -li ( $( navFrame.childNodes[ j ] ).hasClass( 'NavHead' ) ) { navToggle.styl.barva = navFrame.childNodes[ j ].styl.barva; navFrame.childNodes[ j ].appendChild( navToggle ); } } navFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar ); } ); } mw.háček( 'wikipage.content' ).přidat( createNavigationBarToggleButton ); /*** Magic editintros ************************* * ***** ** Popis: Přidá editintros na stránky rozcestníku a stránky BLP.* Správci: [[Uživatel: RockMFR]] ** @param {string} name */ funkce addEditIntro( název ) { $( '.mw-editsection, # ca-edit, # ca-ve-edit' ).nalézt( 'A' ).každý( funkce ( i, el ) { el.href = $( tento ).attr( 'href' ) + '& editintro =' + název; } ); } -li ( mw.konfigurace.dostat( 'wgNamespaceNumber' ) === 0 ) { $( funkce () { -li ( dokument.getElementById( 'disambigbox' ) ) { addEditIntro( „Šablona: Disambig_editintro“ ); } } ); $( funkce () { var kočky = mw.konfigurace.dostat( 'wgCategories' ); -li ( !kočky ) { vrátit se; } -li ( $.inArray( „Živí lidé“, kočky ) !== -1 || $.inArray( „Možná žijící lidé“, kočky ) !== -1 ) { addEditIntro( 'Šablona: BLP_editintro' ); } } ); } / * Akce specifické pro stránku úprav * / -li ( mw.konfigurace.dostat( 'wgAction' ) === 'Upravit' || mw.konfigurace.dostat( 'wgAction' ) === 'Předložit' ) { /*** Opravit výzvu k úpravě souhrnu pro vrácení zpět ** Opravuje skutečnost, že funkce Zpět v kombinaci s výzvou bez úpravy souhrnu* stěžuje si na chybějící ediční souhrn, pokud ponechá souhrn úprav beze změny.* Přidal [[Uživatel: Deskana]], kód [[Uživatel: Tra]].* Viz také [[phab: T10912]]. */ $( funkce () { -li ( dokument.umístění.Vyhledávání.indexOf( 'undo =' ) !== -1 && dokument.getElementsByName( 'wpAutoSummary' )[ 0 ] ) { dokument.getElementsByName( 'wpAutoSummary' )[ 0 ].hodnota = '1'; } } ); } / * Konec mw.loader. Pomocí zpětného volání * /} );/ * NEPŘIDÁVEJTE KÓD POD TENTO ŘÁDEK * /