MediaWiki:Common.js
Z WikiSkript
Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.
- Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
- Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
- Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
- Opera: Stiskněte Ctrl-F5.
/**
* Základní javascriptový soubor WikiSkript
*
* @file Hlavní javascriptový soubor, který se načte na všech stránkách (vyjma přihlašovací obrazovky a nastavení uživatele)
* @license https://www.gnu.org/licenses/gpl.html GNU General Public License 3.0
*/
/* OBECNÉ FUNKCE */
/**
* Získání všech elementů se zadanou třídou
*
* @deprecated Již je možno použít jQuery $(".class").
*
* @param {searchClass} Hledaná CSS třída.
* @param {domNode} Oblast hledání v DOM (pokud chceme definovat, jinak se prohledává celý dokument).
* @param {tagName} Hledaná HTML značka (pokud chceme definovat, jinak se prohledává celý dokument).
*
* @return {el} Pole nalezených elementů se zadanou CSS třídou.
*/
function getElementsByClass(searchClass, domNode, tagName) {
// zavedení oblasti hledání
if (domNode == null) domNode = document;
if (tagName == null) tagName = '*';
var tags = domNode.getElementsByTagName(tagName);
// výsledné pole nalezených elementů
var el = new Array();
// co hledáme
var tcl = " "+searchClass+" ";
// cyklus hledání, nalezené elementy se zadají do výsledného pole
var i, j;
for(i=0,j=0; i<tags.length; i++) {
var test = " " + tags[i].className + " ";
if (test.indexOf(tcl) != -1)
el[j++] = tags[i];
}
// výsledek
return el;
}
/**
* Zadání dotazu AJAX
*
* @deprecated Již je možno použít jQuery $.ajax().
*
* @param {xmlvar} Proměnná určená ke komunikaci se serverem.
* @param {url} URL stránky k načtení.
* @param {todo} Funkce spouštějící se po získání odpovědi.
*/
function getXMLHttpRequest(xmlvar, url, todo) {
// definice proměnné
eval(xmlvar + '= null;');
if (window.XMLHttpRequest) {
// pro nové prohlížeče:
eval(xmlvar + '=new XMLHttpRequest();');
} else if (window.ActiveXObject) {
// pro IE5 a IE6 (chachacha :-) )
eval(xmlvar + '=new ActiveXObject("Microsoft.XMLHTTP");');
}
eval('xmlvarValue = ' + xmlvar + ';');
if (xmlvarValue!=null) {
eval(xmlvar+'.onreadystatechange=' + todo +';');
eval(xmlvar+'.open("GET",url,true);');
eval(xmlvar+'.send(null);');
} else {
window.alert("Chyba: Váš prohlížeč nepodporuje XMLHTTP. Některé stránky nemusí být zobrazeny správně.");
}
}
/**
* Osekání řetězce o prázdné znaky na začátku a na konci
*
* @deprecated Již je možno použít jQuery $.trim().
*
* @param {str} Řetězec určený k osekání.
*
* @return {str} Vrací osekaný řetězec bez prázdných znaků na začátku a na konci
*/
function trim(str) {
str = str.replace(/^\s+|\s+$/g, "");
return str;
}
/**
* Hledá dané právo mezi právy uživatele.
*
* @param {right} Hledané právo (např. "autoconfirmed", "editor", "pedagogue").
*
* @return {boolean} Vrací true, pokud daný uživatel má dané právo.
*/
function mwGetUserRight(right) {
if ($.inArray(right, mw.config.get("wgUserGroups")) !== -1) {
return true;
} else {
return false;
}
}
/* VLOŽENÉ SKRIPTY */
/**
* Úprava formuláře pro upload souborů.
*
* Spouští se pouze na stránce "Speciální:Načíst_soubor"
*/
if (mw.config.get("wgPageName") === "Speciální:Načíst_soubor") mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:UploadForm.js&action=raw&ctype=text/javascript");
/**
* Úprava editací a editační lišty.
*
* Spouští se pouze na editačních stránkách.
*/
if ($.inArray(mw.config.get("wgAction"), ["edit", "submit", "delete"]) !== -1) mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:Editace.js&action=raw&ctype=text/javascript");
/**
* Úpravy nabídek (menu)
*/
mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:UpravyMenu.js&action=raw&ctype=text/javascript");
/**
* Sbalování částí sekcí portálů
*/
mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:SbalovaniPortalu.js&action=raw&ctype=text/javascript");
/**
* Úprava vzhledu kvízů
*
* Spouští se pouze na stránkách ve jmeném prostoru "Procvičování"
*/
if (mw.config.get('wgNamespaceNumber') === 108) mw.util.addCSS( '@import url("/index.php?title=MediaWiki:Quiz.css&action=raw&ctype=text/css");' );
/* DALŠÍ FUNKCE */
/**
* ImageAnnotator
*
* Spouští se jen při zobrazování stránek a na portálech, souborech, uživatelských
* stránkách a procvičováních
* Máme na to náhradu v podobě MW extension
*/
/*
if ( $.inArray( mw.config.get( 'wgNamespaceNumber' ), [ 0, 2, 6, 100, 108 ] ) !== -1 && $.inArray( mw.config.get( 'wgAction' ), [ 'view', 'purge', 'submit' ] ) !== -1 ) {
if ( typeof ImageAnnotator_disable === 'undefined' || !ImageAnnotator_disable ) {
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
$(function(){
$.ajax({
url: mw.util.wikiScript( 'api' ),
data: {
format: 'json',
action: 'query',
generator: 'images',
prop: 'info',
gimlimit: '500',
titles: mw.config.get( 'wgPageName' )
},
dataType: 'json',
type: 'GET',
success: function( data ) {
if ( data && data.query && data.query.pages ) {
mw.loader.load( mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/index.php?title=MediaWiki:Gadget-ImageAnnotator.js&action=raw&ctype=text/javascript' );
}
}
});
});
} else {
mw.loader.load( mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/index.php?title=MediaWiki:Gadget-ImageAnnotator.js&action=raw&ctype=text/javascript' );
}
}
}
*/
/**
* Lékařská kalkulačka
*/
$( '.lekarska_kalkulacka').each( function() {
var idName = $( this ).attr( 'id' );
var scriptUrl = mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/index.php?title=MediaWiki:L%C3%A9ka%C5%99sk%C3%A1_kalkula%C4%8Dka/' + idName.replace( 'lekarska_kalkulacka_', '') + '.js&action=raw&ctype=text/javascript';
mw.loader.load( scriptUrl );
});
/**
* Wikidata Embed
*/
if ( $('.wdEmbed').length > 0) { //je-li na strance element s tridou wdEmbed, nacti script MediaWiki:WikidataEmbed.js
mw.loader.load(
mw.config.get("wgServer")
+ mw.config.get("wgScriptPath")
+ "/index.php?title=MediaWiki:WikidataEmbed.js&action=raw&ctype=text/javascript"
);
}
/**
* Přidání stylu klikatelných tlačítek (viz Šablona:Tlačítko)
*/
mw.hook('wikipage.content').add(function() {
if ((mw.loader.getState('oojs-ui') === 'registered') && ($('.oo-ui-widget').length)) {
mw.loader.using(['oojs-ui']);
}
});
/**
* Přidání CSS stylu do R wiki
*/
if($("#catlinks").length && $("#catlinks").html().indexOf("Kategorie:R wiki") > -1) {
if(mw.config.get("wgNamespaceNumber") === 0) {
mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/index.php?title=MediaWiki:Rwiki.css&action=raw&ctype=text/css", "text/css");
}
document.getElementById("firstHeading").innerHTML = '<span id="rwiki_link"><a href="//www.wikiskripta.eu/w/Port%C3%A1l:R_wiki"><img src="//www.wikiskripta.eu/images/thumb/1/1b/R_logo.svg/40px-R_logo.svg.png"></a></span>' + document.getElementById("firstHeading").innerHTML;
}
/**
* Loga do patičky (OPVVV, NPO, EU)
*/
$("#footer").append("<img src='https://www.wikiskripta.eu/thumb.php?f=LogaPaticka.png&width=1000' width='500' class='ms-4' title='Podpořeno OP VVV č. CZ.02.2.69/0.0/0.0/16_015/0002362 :: Podpořeno z projektu „Transformace pro VŠ na UK“, financovaného z Národního plánu obnovy, registrační číslo NPO_UK_MSMT-16602/2022.'>");
/**
* Přesun TOC do infoboxu
*/
if( $("table.infobox").length > 0 && $("#toc").length > 0 ) {
var cspan = 1;
var attr = $("table.infobox tr:first td:first").attr('colspan');
if (typeof attr !== typeof undefined && attr !== false) {
cspan = $("table.infobox tr:first td").prop("colspan");
}
$("table.infobox").append("<tr style='padding-top:10px;'><td colspan='" + cspan + "' id='infoboxtoc'></td></tr>");
$("#infoboxtoc").append($("#toc"));
}