|
|
Řádek 1: |
Řádek 1: |
| é/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky. */
| | /* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky. */ |
|
| |
|
| importScriptURI('http://en.wikipedia.org/w/index.php?title=User:ProveIt_GT/ProveIt.js&action=raw&ctype=text/javascript'); | | importScriptURI('http://en.wikipedia.org/w/index.php?title=User:ProveIt_GT/ProveIt.js&action=raw&ctype=text/javascript'); |
| // [[User:ProveIt GT/ProveIt.js]] | | // [[User:ProveIt GT/ProveIt.js]] |
|
| |
| /* <pre> */
| |
|
| |
| /* ============== Citace =====================================
| |
| autor: Petr Kajzar [[Uživatel:Slepi]], spoluautor Pavel Dušek [[Uživatel:Pavel Dusek]]
| |
| datum: 05/2010, poslední úprava 04/2011
| |
| dokumentace: [[MediaWiki:Gadget-citace.js/dokumentace]]
| |
| popis: skript pomáhá generovat bibliografické
| |
| záznamy a citace – tlačítko je v horní
| |
| editační liště
| |
| ==========================================================
| |
| */
| |
|
| |
| /* ======================== Texty =========================================== */
| |
|
| |
| baseTextCitace = '<p><span style="float: right;"><a href="#" onclick="return createCitationForm();">Obnovit</a> • <a href="#" onclick="return closeCitationBox()">Zavřít</a></span></p><h2>Citace</h2>';
| |
|
| |
| /* ======================== Pomocné funkce ================================== */
| |
|
| |
| // FUNKCE ZÍSKÁVAJÍCÍ SOUŘADNICE ROLOVANÉHO OKNA
| |
| // http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
| |
| function getScrollXY() {
| |
| // souřadnice
| |
| var scrOfX = 0, scrOfY = 0;
| |
|
| |
| // Netscape
| |
| if( typeof( window.pageYOffset ) == 'number' ) {
| |
| scrOfY = window.pageYOffset;
| |
| scrOfX = window.pageXOffset;
| |
|
| |
| // DOM
| |
| } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
| |
| scrOfY = document.body.scrollTop;
| |
| scrOfX = document.body.scrollLeft;
| |
|
| |
| // IE6
| |
| } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
| |
| scrOfY = document.documentElement.scrollTop;
| |
| scrOfX = document.documentElement.scrollLeft;
| |
| }
| |
|
| |
| // výstup
| |
| return [ scrOfX, scrOfY ];
| |
| }
| |
|
| |
| // FUNKCE ZPRACOVÁVAJÍCÍ CITACE A VKLÁDAJÍCÍ JE DO TEXTU
| |
| // parametr "formular": odkaz na formulář
| |
| // paramer "typ": typ citovaného zdroje
| |
| function zpracovatCitace(formular, typ) {
| |
| // zpracování ISSN (nemusí být vždy uvedeno)
| |
| if(formular.elements["issn"]) {
| |
| if(formular.elements["issn"].value == "")
| |
| formular.elements["issn"].value = "-";
| |
| }
| |
|
| |
| // zpracování ISBN (nemusí být vždy ucedeno)
| |
| if(formular.elements["isbn"]) {
| |
| if(formular.elements["isbn"].value == "")
| |
| formular.elements["isbn"].value = "-";
| |
| }
| |
|
| |
| // úvod výstupu: začátek šablony Citace
| |
| var output = "{{Citace\n| typ = " + typ + "\n";
| |
|
| |
| // procházení polí formuláře a vkládání do šablony
| |
| var i = 0;
| |
| for(i=0; i<formular.elements.length; i++) {
| |
|
| |
| // textová pole
| |
| if(formular.elements[i] && formular.elements[i].type == "text" && formular.elements[i].value != "") {
| |
| // informace od uživatele
| |
| vlozenaInfo = trim(formular.elements[i].value);
| |
|
| |
| // zabezpečení posledního znaku
| |
| viPosledniZnak = vlozenaInfo.charAt(vlozenaInfo.length - 1);
| |
| if(viPosledniZnak == "." || viPosledniZnak == ",") vlozenaInfo = vlozenaInfo.substring(0, vlozenaInfo.length-1);
| |
|
| |
| // výstup
| |
| output += "| " + formular.elements[i].id + " = " + vlozenaInfo + "\n";
| |
|
| |
| // checkboxy (např. "kolektiv")
| |
| } else if (formular.elements[i] && formular.elements[i].type == "checkbox") {
| |
| if(formular.elements[i].checked == true)
| |
| output += "| " + formular.elements[i].id + " = ano\n";
| |
| }
| |
| }
| |
|
| |
| // závěr citační šablony
| |
| output += "}}\n";
| |
|
| |
| //pokud byla načítána citace z databáze je třeba záznam v databázi upravit, požádá server o úpravu:
| |
| if (typ == 'kniha') {
| |
| if ((vyplnenoDleISBN && !zDatabaze) || (vyplnenoDleISBN && zmenaPredvyplneneCitace)) {
| |
| opravZaznamVDatabazi();
| |
| }
| |
| }
| |
|
| |
| // vložení do textu na místo pomocné spleti znaků
| |
| novyOutput = document.getElementById("wpTextbox1").value;
| |
| novyOutput = novyOutput.replace("--//--//--", output);
| |
| document.getElementById("wpTextbox1").value = novyOutput;
| |
|
| |
| // zavřít udělátko
| |
| closeCitationBox();
| |
|
| |
| return false;
| |
| }
| |
|
| |
| // FUNKCE VKLÁDAJÍCÍ POMOCNOU SPLEŤ ZNAKŮ NA POZICI KURZORU V TEXTOVÉM POLI
| |
| // parametr "textovePole": ID textového pole, které měníme
| |
| function vlozitTextAreaSpletZnaku(textovePole) {
| |
|
| |
| pridanyText = "--//--//--";
| |
|
| |
| // vyhledání zadaného ID
| |
| if(!document.getElementById(textovePole)) return;
| |
| textovePole = document.getElementById(textovePole);
| |
|
| |
| // Microsoft Internet Explorer
| |
| if (document.selection) {
| |
| textovePole.focus();
| |
|
| |
| // vložení do výběru
| |
| oblastVlozeni = document.selection.createRange();
| |
| oblastVlozeni.text = pridanyText;
| |
| }
| |
|
| |
| // ostatní prohlížeče
| |
| else if (textovePole.selectionStart || textovePole.selectionStart == 0) {
| |
|
| |
| // vložení do pole a aktualizace celého textu
| |
| startText = textovePole.selectionStart;
| |
| endText = textovePole.selectionEnd;
| |
| aktualniText = textovePole.value;
| |
| textovePole.value = aktualniText.substring(0, startText);
| |
| textovePole.value += pridanyText;
| |
| textovePole.value += aktualniText.substring(endText, aktualniText.length);
| |
| }
| |
|
| |
| // nepodporující prohlížeče: vložení textu na konec pole
| |
| else {
| |
| textovePole.value += pridanyText;
| |
| }
| |
| }
| |
|
| |
| // FUNKCE VKLÁDAJÍCÍ TLAČÍTKO CITACE NA PŘESNÉ MÍSTO EDITAČNÍ LIŠTY
| |
| function vlozitTlacitkoCitace() {
| |
|
| |
| if(document.getElementById("mw-editbutton-OL") && document.getElementById("mw-editbutton-citation")) {
| |
| document.getElementById("mw-editbutton-OL").parentNode.insertBefore(document.getElementById("mw-editbutton-citation"), document.getElementById("mw-editbutton-OL").nextSibling);
| |
| } else {
| |
| setTimeout("vlozitTlacitkoCitace()", 1000);
| |
| }
| |
| }
| |
|
| |
| // FUNKCE VYTVÁŘEJÍCÍ POVINNÉ PARAMETRY
| |
| // parametr "poleParametru": pole se všemi povinnými parametry daného zdroje
| |
| function classPovinneCitace(poleParametru) {
| |
| for (i in poleParametru) {
| |
| document.getElementById(poleParametru[i]).className += " povinnyParCitace";
| |
| }
| |
| }
| |
|
| |
| /* =================== Hlavní funkce pro zobrazení formulářů ================ */
| |
|
| |
| // FUNKCE TVOŘÍCÍ TLAČÍTKO CITACE DO EDITAČNÍ LIŠTY
| |
| function createCitationButton() {
| |
|
| |
| // bez editace skončit
| |
| if(wgAction == "view" || !document.getElementById("toolbar")) return;
| |
|
| |
| // staré prohlížeče ukončit
| |
| // časem zde bude náhradní kód pro staré prohlížeče (nové okno)
| |
| if (!window.XMLHttpRequest) return;
| |
|
| |
| // přidání CSS stylu
| |
| importStylesheet("MediaWiki:Gadget-citace.css");
| |
|
| |
| // vytvoření tlačítka
| |
| tlacitkoCitace = document.createElement("img");
| |
| tlacitkoCitace.name = "Citace";
| |
| tlacitkoCitace.src = "http://upload.wikimedia.org/wikipedia/commons/e/ea/Button_easy_cite.png";
| |
| tlacitkoCitace.id = "mw-editbutton-citation";
| |
| tlacitkoCitace.setAttribute("alt", "Přidat citaci");
| |
| tlacitkoCitace.style.cursor = "pointer";
| |
| tlacitkoCitace.onclick = function(){createCitationForm();};
| |
|
| |
| // vložení tlačítka na správné místo
| |
| if(document.getElementById("mw-editbutton-OL")) {
| |
| document.getElementById("mw-editbutton-OL").parentNode.insertBefore(tlacitkoCitace, document.getElementById("mw-editbutton-OL").nextSibling);
| |
| } else {
| |
| // vložení tlačítka na správné místo (každou 1 s se zkontroluje pozice až do správného načtení)
| |
| document.getElementById("toolbar").appendChild(tlacitkoCitace);
| |
| vlozitTlacitkoCitace();
| |
| }
| |
|
| |
| // vytvoření divu pro overlay
| |
| overlayDiv = document.createElement("div");
| |
| overlayDiv.className = "overlay_div_cit";
| |
| overlayDiv.id = "overlay_div_cit";
| |
|
| |
| // zapozicování na stránku a zafixování při rolování
| |
| kam = getScrollXY();
| |
| overlayDiv.style.top = kam[0];
| |
| overlayDiv.style.position = "fixed";
| |
|
| |
| // přidání divu na stránku
| |
| document.body.appendChild(overlayDiv);
| |
|
| |
| // blok s textem
| |
| contentDiv = document.createElement("div");
| |
| contentDiv.className = "content_div_cit";
| |
| contentDiv.id = "content_div_cit";
| |
|
| |
| // zapozicování bloku
| |
| contentDiv.style.top = 20 + kam[0];
| |
| contentDiv.style.position = "fixed";
| |
|
| |
| // přidání bloku na stránku
| |
| document.body.appendChild(contentDiv);
| |
| }
| |
|
| |
| // FUNKCE ZAVÍRAJÍCÍ BOX S CITACEMI PO KLIKNUTÍ NA "ZAVŘÍT"
| |
| function closeCitationBox() {
| |
| document.getElementById('overlay_div_cit').style.display = 'none';
| |
| document.getElementById('content_div_cit').style.display = 'none';
| |
| document.getElementById('wpTextbox1').value = document.getElementById('wpTextbox1').value.replace('--//--//--', '');
| |
| document.forms['editform'].elements['wpTextbox1'].focus();
| |
|
| |
| return false;
| |
| }
| |
|
| |
| // FUNKCE VRACEJÍCÍ ŘÁDEK FORMULÁŘE S POŽADOVANÝM ÚDAJEM
| |
| // parametr "popis": udává popis políčka
| |
| // parametr "parametr": udává parametr šablony Citace
| |
| // parametr "typ": udává typ vstupu (text, checkbox, aj.)
| |
| function createCitationFormRow(popis, parametr, typ) {
| |
|
| |
| // defaultní typ vstupu: text
| |
| if(!typ) typ = "text";
| |
|
| |
| // výroba řádku
| |
| output = '<div><p><label for="' + parametr + '">' + popis + ': </label><input type="' + typ + '" name="' + parametr + '" id="' + parametr +'" onChange="fieldChanged(\'' + parametr + '\');" /></p></div>';
| |
|
| |
| // výstup
| |
| return output;
| |
| }
| |
|
| |
| // FUNKCE VRACEJÍCÍ ŘÁDEK PRO KONKRÉTNÍ PARAMETR ŠABLONY CITACE
| |
| // parametr "parametr": parametr šablony
| |
| function createCitationInput(parametr){
| |
| // pole řádků
| |
| output = {
| |
|
| |
| // autoři
| |
| "korporace" : createCitationFormRow("Název korporace", "korporace"),
| |
| "příjmení1" : createCitationFormRow("Příjmení prvního autora", "příjmení1"),
| |
| "jméno1" : createCitationFormRow("Jméno prvního autora", "jméno1"),
| |
| "příjmení2" : createCitationFormRow("Příjmení druhého autora", "příjmení2"),
| |
| "jméno2" : createCitationFormRow("Jméno druhého autora", "jméno2"),
| |
| "příjmení3" : createCitationFormRow("Příjmení třetího autora", "příjmení3"),
| |
| "jméno3" : createCitationFormRow("Jméno třetího autora", "jméno3"),
| |
| "kolektiv" : createCitationFormRow("Kolektiv", "kolektiv", "checkbox"),
| |
| "autor_sborníku" : createCitationFormRow("Pořadatel sborníku", "autor_sborníku"),
| |
| "odpovědnost" : createCitationFormRow("Autor/autoři", "odpovědnost"),
| |
| "instituce" : createCitationFormRow("Instituce", "instituce"),
| |
| "ústav" : createCitationFormRow("Ústav", "ústav"),
| |
| "příjmení" : createCitationFormRow("Příjmení přednášejícího", "příjmení"),//parametr příjmení u přednášky
| |
| "jméno" : createCitationFormRow("Jméno přednášejícího", "jméno"),//parametr jméno u přednášky
| |
|
| |
| // názvy
| |
| "titul" : createCitationFormRow("Název", "titul"),
| |
| "článek" : createCitationFormRow("Název článku", "článek"),
| |
| "název" : createCitationFormRow("Název", "název"),
| |
| "podnázev" : createCitationFormRow("Podnázev", "podnázev"),
| |
| "časopis" : createCitationFormRow("Časopis", "časopis"),
| |
| "sbírka" : createCitationFormRow("Sbírka", "sbírka"),
| |
| "seriálová_publikace" : createCitationFormRow("Název seriálové publikace", "seriálová_publikace"),
| |
| "označení" : createCitationFormRow("Označení dokumentu", "označení"),
| |
| "sborník" : createCitationFormRow("Název sborníku", "sborník"),
| |
| "dokument" : createCitationFormRow("Název dokumentu", "dokument"),
| |
| "téma" : createCitationFormRow("Název přednášky", "téma"),
| |
|
| |
| // popisy a vydavatelé
| |
| "url" : createCitationFormRow("Dostupné z WWW", "url"),
| |
| "vydání" : createCitationFormRow("Vydání", "vydání"),
| |
| "místo" : createCitationFormRow("Místo (město)", "místo"),
| |
| "země" : createCitationFormRow("Země", "země"),
| |
| "vydavatel" : createCitationFormRow("Vydavatel", "vydavatel"),
| |
| "rok" : createCitationFormRow("Rok", "rok"),
| |
| "datum_revize" : createCitationFormRow("Datum poslední revize", "datum_revize"),
| |
| "citováno" : createCitationFormRow("Datum citování", "citováno"),
| |
| "ročník" : createCitationFormRow("Ročník", "ročník"),
| |
| "číslo" : createCitationFormRow("Číslo", "číslo"),
| |
| "rozsah" : createCitationFormRow("Počet stran", "rozsah"),
| |
| "edice" : createCitationFormRow("Edice", "edice"),
| |
| "svazek" : createCitationFormRow("Svazek", "svazek"),
| |
| "volume" : createCitationFormRow("Volume", "svazek"),
| |
| "kapitola" : createCitationFormRow("Číslo kapitoly", "kapitola"),
| |
| "název_kapitoly" : createCitationFormRow("Název kapitoly", "název_kapitoly"),
| |
| "strany" : createCitationFormRow("Citované strany", "strany"),
| |
| "poznámky" : createCitationFormRow("Další údaje a poznámky", "poznámky"),
| |
| "isbn" : createCitationFormRow("ISBN", "isbn"),
| |
| "issn" : createCitationFormRow("ISSN", "issn"),
| |
| "pmid" : createCitationFormRow("PMID", "pmid"),
| |
| "doi" : createCitationFormRow("DOI", "doi"),
| |
| "předmět" : createCitationFormRow("Předmět, jehož byla přednáška součástí", "předmět"),
| |
| "obor": createCitationFormRow("Obor, pro nějž je předmět určen", "obor"),
| |
| "fakulta" : createCitationFormRow("Fakulta", "fakulta"),
| |
| "univerzita" : createCitationFormRow("Název vysoké školy", "univerzita"),
| |
| "datum" : createCitationFormRow("Datum konání přednášky", "datum") //parametr datum u přednášky
| |
| };
| |
|
| |
| // výstup
| |
| return output[parametr];
| |
| }
| |
|
| |
| // VYTVOŘENÍ FORMULÁŘE PRO CITACE
| |
| function createCitationForm() {
| |
|
| |
| // přidání spleti znaků pro pozdější změnu
| |
| if(document.getElementById('wpTextbox1').value.indexOf('--//--//--') == -1) vlozitTextAreaSpletZnaku("wpTextbox1");
| |
| document.getElementById('wpTextbox1').blur();
| |
|
| |
| // zviditelnění divu overlay_div_cit
| |
| overlayDiv.style.display = "block";
| |
|
| |
| // zviditelnění divu overlay_div_cit
| |
| contentDiv.style.display = "block";
| |
| contentDiv.style.fontSize = "small";
| |
|
| |
| // text
| |
| contentDiv.innerHTML = baseTextCitace;
| |
| contentDiv.innerHTML += "<p>Tento nástroj vám umožní správně ocitovat použitou literaturu. Po vyplnění formuláře se vám automaticky vygeneruje šablona citací a bude vložena do článku. Nejprve prosím vyberte typ zdroje, ze kterého jste čerpali:</p>";
| |
|
| |
| // základní nabídka
| |
| contentDiv.innerHTML +=
| |
| "<h4>Knihy a sborníky</h4>" +
| |
| "<ul>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('kniha');\">" +
| |
| "kniha</a></li>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('kapitola');\">" +
| |
| "kapitola z knihy (shodný autor)</a></li>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('sborník');\">" +
| |
| "kapitola z knihy (jiný autor), sborník</a></li>" +
| |
| "</ul>" +
| |
| "<h4>Články, práce a periodické materiály</h4>" +
| |
| "<ul>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('článek');\">" +
| |
| "článek</a></li>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('akademická_práce');\">" +
| |
| "akademická práce (bakalářská, diplomová, habilitační,...)</a></li>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('seriálová_publikace');\">" +
| |
| "seriálová publikace</a></li>" +
| |
| "</ul>" +
| |
| "<h4>Elektronické zdroje</h4>" +
| |
| "<ul>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('web');\">" +
| |
| "internetová stránka</a></li>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('cd');\">" +
| |
| "nosič CD, DVD a další</a></li>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('db');\">" +
| |
| "databáze</a></li>" +
| |
| "</ul>" +
| |
| "<h4>Oficiální materiály</h4>" +
| |
| "<ul>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('firemní_literatura');\">" +
| |
| "firemní literatura</a></li>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('legislativní_dokument');\">" +
| |
| "legislativní dokument, zákon, předpis</a></li>" +
| |
| "<li>" +
| |
| "<a href=\"#\" onclick=\"return createCitationTypeForm('standard');\">" +
| |
| "standard, norma, patent</a></li>" +
| |
| "</ul>" +
| |
| "<h4>Jiné</h4>" +
| |
| "<ul>" +
| |
| "<li>" +
| |
| "<a href=\"#\"# onclick=\"return createCitationTypeForm('přednáška');\">" +
| |
| "přednáška na vysoké škole</a></li>" +
| |
| "</ul>";
| |
|
| |
| //pole pro automatické vyplnění pomocí přímého vložení PMID
| |
| contentDiv.innerHTML +=
| |
| "<h4>Rychlé citace pomocí specifických čísel</h4>" +
| |
| "<h5>PMID</h5>" +
| |
| '<form onsubmit="return false;" id="formPMID">' +
| |
| '<p>Zde můžete zadat číslo PMID článku v databázi PubMed a vygeneruje se Vám zcela automaticky kompletní citace – a to bez nutnosti zadávat všechny údaje!</p>' +
| |
| '<label for="pmid">PMID:</label> <input type="text" id="pmid" name="pmid" /> ' +
| |
| '<input type="button" onclick="zpracovatPMID(document.forms[\'formPMID\'].elements[\'pmid\'].value)" value="Získat citaci pomocí PMID" /> <span id="pmid_wait"><img src="' + wgServer + '/skins/common/images/ajax-loader.gif" width="20" height="20" /> Prosím čekejte…</span>' +
| |
| '</form><br />';
| |
| document.getElementById("pmid_wait").style.visibility= "hidden";
| |
| return false;
| |
| }
| |
|
| |
| // FUNKCE PRO ZPRACOVÁNÍ PMID
| |
| var xmlPMID;
| |
|
| |
| function zpracovatPMID(formularX) {
| |
| document.getElementById("pmid_wait").style.visibility= "visible";
| |
| pmid = formularX;
| |
| exptest = /^\d+$/;
| |
|
| |
| if (exptest.test(pmid) == true) {
| |
| var urlPMID = "http://www.wikiskripta.eu/extensions/citace/pmid.php?pmid=" + pmid;
| |
| getXMLHttpRequest("xmlPMID", urlPMID, "zpracovatPMIDRequest");
| |
| return false;
| |
| } else {
| |
| document.getElementById("pmid_wait").style.visibility= "hidden";
| |
| window.alert("Zadali jste neplatné číslo PMID. Prosím, zkuste jej zadat znovu.");
| |
| document.forms["formPMID"].elements["pmid"].value = "";
| |
| return false;
| |
| }
| |
|
| |
| }
| |
|
| |
| // FUNKCE ZÍSKÁVAJÍCÍ VYGENEROVANOU ŠABLONU POMOCÍ PMID
| |
| function zpracovatPMIDRequest() {
| |
| if (xmlPMID.readyState==4) {// 4 = "loaded"
| |
| if (xmlPMID.status==200) {// 200 = OK
| |
| var output = xmlPMID.responseText; // odpověď serveru
| |
|
| |
| if (output.indexOf("{{") == -1) {
| |
| document.getElementById("pmid_wait").style.visibility= "hidden";
| |
| window.alert("Zadali jste neplatné číslo PMID. Prosím, zkuste jej zadat znovu.");
| |
| document.forms["formPMID"].elements["pmid"].value = "";
| |
| return false;
| |
| }
| |
|
| |
| // vložení do textu na místo pomocné spleti znaků
| |
| novyOutput = document.getElementById("wpTextbox1").value;
| |
| novyOutput = novyOutput.replace("--//--//--", output);
| |
| document.getElementById("wpTextbox1").value = novyOutput;
| |
|
| |
| // zavřít udělátko
| |
| document.getElementById("pmid_wait").style.visibility= "hidden";
| |
| closeCitationBox();
| |
| return false;
| |
|
| |
| } else {
| |
| return false;
| |
| }
| |
| }
| |
| }
| |
|
| |
| // FUNKCE ZPROSTŘEDKOVÁVAJÍCÍ VYPLŇOVÁNÍ ÚDAJŮ DLE ISBN
| |
| //FUNKCE PRO ZPRACOVÁNÍ ISBN
| |
| var xmlISBN;
| |
|
| |
| function vyplnitDleISBN() {
| |
| var isbn = document.getElementById('isbn').value;
| |
| var urlISBN = 'http://www.wikiskripta.eu/extensions/citace/isbn.php?isbn=' + isbn;
| |
| getXMLHttpRequest("xmlISBN", urlISBN, "vyplnitDleISBNRequest");
| |
| return false;
| |
| }
| |
|
| |
| // FUNKCE REGISTRUJÍCÍ ZMĚNU PARAMETRŮ CITACE
| |
| var zmenaPredvyplneneCitace = false;
| |
| function fieldChanged(parametr) {
| |
| //pokud se změní jakýkoliv parametr uváděný u citace knihy, nastaví se zmenaPredvyplneneCitace na true
| |
| switch(parametr) {
| |
| case 'příjmení1':
| |
| case 'příjmení2':
| |
| case 'příjmení3':
| |
| case 'jméno1':
| |
| case 'jméno2':
| |
| case 'jméno3':
| |
| case 'korporace':
| |
| case 'kolektiv':
| |
| case 'titul':
| |
| case 'podnázev':
| |
| case 'místo':
| |
| case 'vydání':
| |
| case 'vydavatel':
| |
| case 'rok':
| |
| case 'url':
| |
| case 'rozsah':
| |
| case 'edice':
| |
| case 'svazek':
| |
| zmenaPredvyplneneCitace = true;
| |
| break;
| |
| }
| |
| return false;
| |
| }
| |
|
| |
| // FUNKCE VYPLŇUJÍCÍ ÚDAJE DLE ISBN
| |
| var zDatabaze = true; //předpokládám načtení z databáze (u ostatních typů citace než kniha by to mělo být spíše užitečné)
| |
| var vyplnenoDleISBN = false;
| |
| function vyplnitDleISBNRequest() {
| |
| if (xmlISBN.readyState == 4) { //4 = loaded
| |
| if (xmlISBN.status == 200) { //200 = OK
| |
| vyplnenoDleISBN = true;
| |
| var output = xmlISBN.responseText; //odpověď serveru
| |
| var jsonCitace = eval( '(' + output + ')' ); //parsování objektu JSON
| |
|
| |
| //vyplnění parametrů dle získaného objektu JSON
| |
| if (jsonCitace.titul) {
| |
| document.getElementById('titul').value = jsonCitace.titul;
| |
| } else {
| |
| window.alert("Nebyla nalezena žádná kniha s tímto ISBN");
| |
| //return false;// netřeba vracet false: ještě se mohou zkusit vyplnit ostatní parametry
| |
| }
| |
|
| |
| if (jsonCitace.prijmeni1)
| |
| document.getElementById('příjmení1').value = jsonCitace.prijmeni1;
| |
| if (jsonCitace.jmeno1)
| |
| document.getElementById('jméno1').value = jsonCitace.jmeno1;
| |
| if (jsonCitace.prijmeni2)
| |
| document.getElementById('příjmení2').value = jsonCitace.prijmeni2;
| |
| if (jsonCitace.jmeno2)
| |
| document.getElementById('jméno2').value = jsonCitace.jmeno2;
| |
| if (jsonCitace.prijmeni3)
| |
| document.getElementById('příjmení3').value = jsonCitace.prijmeni3;
| |
| if (jsonCitace.jmeno3)
| |
| document.getElementById('jméno3').value = jsonCitace.jmeno3;
| |
| if (jsonCitace.kolektiv)
| |
| document.getElementById('kolektiv').checked = true;
| |
| if (jsonCitace.podtitul)
| |
| document.getElementById('podnázev').value = jsonCitace.podtitul;
| |
| if (jsonCitace.vydani)
| |
| document.getElementById('vydání').value = jsonCitace.vydani;
| |
| if (jsonCitace.misto)
| |
| document.getElementById('místo').value = jsonCitace.misto;
| |
| if (jsonCitace.vydavatel)
| |
| document.getElementById('vydavatel').value = jsonCitace.vydavatel;
| |
| if (jsonCitace.rok)
| |
| document.getElementById('rok').value = jsonCitace.rok;
| |
| if (jsonCitace.isbn)
| |
| document.getElementById('isbn').value = jsonCitace.isbn;
| |
| if (jsonCitace.korporace)
| |
| document.getElementById('korporace').value = jsonCitace.korporace;
| |
| if (jsonCitace.url)
| |
| document.getElementById('url').value = jsonCitace.url;
| |
| if (jsonCitace.rozsah)
| |
| document.getElementById('rozsah').value = jsonCitace.rozsah;
| |
| if (jsonCitace.edice)
| |
| document.getElementById('edice').value = jsonCitace.edice;
| |
| if (jsonCitace.svazek)
| |
| document.getElementById('svazek').value = jsonCitace.svazek;
| |
| if (jsonCitace.zDatabaze) {
| |
| if (jsonCitace.zDatabaze == "false")
| |
| zDatabaze = false;
| |
| }
| |
| }
| |
| }
| |
| return false;
| |
| }
| |
|
| |
| var nejakaPromenna;
| |
| // FUNKCE opravující záznam v databázi citací
| |
| function opravZaznamVDatabazi() {
| |
| var requesturl = "http://www.wikiskripta.eu/extensions/citace/isbn-uprav.php?";
| |
| requesturl += "isbn=" + encodeURIComponent(document.getElementById('isbn').value);
| |
| requesturl += "&prijmeni1=" + encodeURIComponent(document.getElementById('příjmení1').value);
| |
| requesturl += "&jmeno1=" + encodeURIComponent(document.getElementById('jméno1').value);
| |
| requesturl += "&prijmeni2=" + encodeURIComponent(document.getElementById('příjmení2').value);
| |
| requesturl += "&jmeno2=" + encodeURIComponent(document.getElementById('jméno2').value);
| |
| requesturl += "&prijmeni3=" + encodeURIComponent(document.getElementById('příjmení3').value);
| |
| requesturl += "&jmeno3=" + encodeURIComponent(document.getElementById('jméno3').value);
| |
| if (document.getElementById('kolektiv').checked)
| |
| requesturl += "&kolektiv=1";
| |
| else
| |
| requesturl += "&kolektiv=0";
| |
| requesturl += "&titul=" + encodeURIComponent(document.getElementById('titul').value);
| |
| requesturl += "&podnazev=" + encodeURIComponent(document.getElementById('podnázev').value);
| |
| requesturl += "&vydani=" + encodeURIComponent(document.getElementById('vydání').value);
| |
| requesturl += "&misto=" + encodeURIComponent(document.getElementById('místo').value);
| |
| requesturl += "&vydavatel=" + encodeURIComponent(document.getElementById('vydavatel').value);
| |
| requesturl += "&rok=" + encodeURIComponent(document.getElementById('rok').value);
| |
| requesturl += "&korporace=" + encodeURIComponent(document.getElementById('korporace').value);
| |
| requesturl += "&url=" + encodeURIComponent(document.getElementById('url').value);
| |
| requesturl += "&rozsah=" + encodeURIComponent(document.getElementById('rozsah').value);
| |
| requesturl += "&edice=" + encodeURIComponent(document.getElementById('edice').value);
| |
| requesturl += "&svazek=" + encodeURIComponent(document.getElementById('svazek').value);
| |
|
| |
| //requesturl = requesturl.replace(" ", "%20");
| |
|
| |
| getXMLHttpRequest(nejakaPromenna, requesturl, nedelejNic);
| |
|
| |
| return false;
| |
| }
| |
|
| |
| // FUNKCE, KTERÁ NEDĚLÁ NIC
| |
| function nedelejNic() {
| |
| return false;
| |
| }
| |
|
| |
| // FUNKCE PRO PŘEPIS CITAČNÍHO BOXU NA FORMULÁŘ K DANÉMU KONKRÉTNÍMU TYPU CITACE
| |
| // parametr "typ": typ zdroje
| |
| function createCitationTypeForm(typ) {
| |
|
| |
| // citační box
| |
| contentDiv = document.getElementById("content_div_cit");
| |
|
| |
| // začátek výstupu: info o citaci
| |
| output = '<h3>Typ citace: ' + typ.replace("_", " ") + '</h3>';
| |
|
| |
| // nápověda
| |
| output += '<p>Vyplňte, prosím, políčka následujícího formuláře. Vždy uveďte autory, pokud je to možné. Další vyžadovaná políčka jsou zvýrazněna červeně. Po stisknutí tlačítka <b>Vygenerovat citaci</b> bude vytvořena šablona citace a vložena do článku na místo, kde jste zanechali kurzor.<br /><small>Pokud jste omylem vybrali špatný typ citovaného zdroje, můžete se vrátit na předchozí stránku stisknutím <b>Obnovit</b> nahoře vpravo. Odkaz <b>Zavřít</b> tamtéž úplně zavře toto okno a vrátí vás k editaci článku.</small></p>';
| |
|
| |
| // začátek formuláře
| |
| // kapitola se cituje jako kniha, seriálová publikace jako článek
| |
| output += '<form onsubmit="return zpracovatCitace(this, \'' + (typ == "kapitola" ? "kniha" : (typ == "seriálová_publikace" ? "článek" : typ)) + '\');">';
| |
|
| |
| // políčko pro automatické vyplnění parametrů pomocí isbn
| |
| if (typ == "kniha") {
| |
| output += "<div><p><small>Pokud chcete vygenerovat údaje automaticky a následně je v políčkách jen zkontrolovat, zadejte prosím číslo ISBN knihy do tohoto políčka:</small></p></div>";
| |
| output += "<label for='isbn'>ISBN: </label>";
| |
| output += "<input type='text' id='isbn' /><button type='button' onclick='vyplnitDleISBN()'>Vyplnit ostatní údaje automaticky</button>";
| |
| }
| |
|
| |
| // autoři
| |
| switch(typ) {
| |
| case "kniha" :
| |
| case "kapitola" :
| |
| case "sborník" :
| |
| case "článek" :
| |
| case "seriálová_publikace" :
| |
| case "web" :
| |
| case "cd" :
| |
| case "firemní_literatura" :
| |
| case "akademická_práce" :
| |
| output += '<div><fieldset><legend>Autoři</legend>';
| |
| output += '<div id="citKorporaceForm">';
| |
| output += createCitationInput("korporace");
| |
| output += '</div>';
| |
| output += createCitationInput("příjmení1");
| |
| output += createCitationInput("jméno1");
| |
| output += '<div id="citDalsiAutoriForm">';
| |
| output += createCitationInput("příjmení2");
| |
| output += createCitationInput("jméno2");
| |
| output += createCitationInput("příjmení3");
| |
| output += createCitationInput("jméno3");
| |
| output += '</div>';
| |
| output += createCitationInput("kolektiv");
| |
| output += '<div id="citOdkaz1AutoriForm"><a href="#" onclick="return false;">→ více autorů a další možnosti</a></div>';
| |
| output += '<div id="citOdkaz2AutoriForm"><a href="#" onclick="return false;">← jeden autor, skrýt možnosti</a></div>';
| |
| output += '</fieldset></div>';
| |
| break;
| |
| default :
| |
| break;
| |
| }
| |
|
| |
|
| |
| // ostatní parametry
| |
| switch(typ) {
| |
|
| |
| // knižní typy
| |
| case "sborník" :
| |
| output += '<div><fieldset><legend>Název příspěvku nebo kapitoly</legend>';
| |
| output += createCitationInput("titul");
| |
| output += createCitationInput("podnázev");
| |
| output += '</fieldset></div>';
| |
| output += '<div><fieldset><legend>Údaje o sborníku nebo knize</legend>';
| |
| output += createCitationInput("sborník");
| |
| output += createCitationInput("autor_sborníku");
| |
| output += '<div class="prefsectiontip">Autora prosím vyplňte ve formátu: "PŘÍJMENÍ, Jméno". Případné iniciály prosím uveďte bez teček.</div>';
| |
| output += '</fieldset></div>';
| |
| output += '<div><fieldset><legend>Údaje o dostupnosti</legend>';
| |
| output += createCitationInput("url");
| |
| output += '</fieldset></div>';
| |
| output += '<div><fieldset><legend>Údaje o vydání</legend>';
| |
| output += createCitationInput("vydání");
| |
| output += '</fieldset></div>';
| |
| output += '<div><fieldset><legend>Nakladatelské údaje a fyzický popis</legend>';
| |
| output += createCitationInput("místo");
| |
| output += createCitationInput("vydavatel");
| |
| output += createCitationInput("rok");
| |
| output += createCitationInput("rozsah");
| |
| output += createCitationInput("edice");
| |
| output += createCitationInput("svazek");
| |
| output += createCitationInput("strany");
| |
| output += createCitationInput("poznámky");
| |
| output += createCitationInput("isbn");
| |
| output += '</fieldset></div>';
| |
| break;
| |
| case "kapitola" :
| |
| case "firemní_literatura" :
| |
| output += '<div><fieldset><legend>Údaje o kapitole</legend>';
| |
| output += createCitationInput("kapitola");
| |
| output += createCitationInput("název_kapitoly");
| |
| output += '</fieldset></div>';
| |
| case "kniha" :
| |
| output += '<div><fieldset><legend>Údaje o názvu</legend>';
| |
| output += createCitationInput("titul");
| |
| output += createCitationInput("podnázev");
| |
| output += '</fieldset></div>';
| |
| output += '<div><fieldset><legend>Údaje o dostupnosti</legend>';
| |
| output += createCitationInput("url");
| |
| output += '</fieldset></div>';
| |
| output += '<div><fieldset><legend>Údaje o vydání</legend>';
| |
| output += createCitationInput("vydání");
| |
| output += '</fieldset></div>';
| |
| output += '<div><fieldset><legend>Nakladatelské údaje a fyzický popis</legend>';
| |
| output += createCitationInput("místo");
| |
| output += createCitationInput("vydavatel");
| |
| output += createCitationInput("rok");
| |
| output += createCitationInput("rozsah");
| |
| output += createCitationInput("edice");
| |
| output += createCitationInput("svazek");
| |
| output += createCitationInput("strany");
| |
| output += createCitationInput("poznámky");
| |
| //output += createCitationInput("isbn");
| |
| output += '</fieldset></div>';
| |
| break;
| |
|
| |
| // článkové typy
| |
| case "seriálová_publikace" :
| |
| output += '<div><fieldset><legend>Údaje o publikaci</legend>';
| |
| output += createCitationInput("seriálová_publikace");
| |
| output += '</fieldset></div>';
| |
| case "článek" :
| |
| output += '<div><fieldset><legend>Článek/Publikace</legend>';
| |
| output += createCitationInput("článek");
| |
| output += '</fieldset></div>';
| |
| if (typ == "článek") {
| |
| output += '<div><fieldset><legend>Údaje o časopise</legend>';
| |
| output += createCitationInput("časopis");
| |
| } else if (typ == "seriálová_publikace") {
| |
| output += '<div><fieldset><legend>Údaje o publikaci</legend>';
| |
| }
| |
| output += createCitationInput("url");
| |
| output += createCitationInput("rok");
| |
| output += createCitationInput("ročník");
| |
| output += createCitationInput("volume");
| |
| output += createCitationInput("číslo");
| |
| output += createCitationInput("strany");
| |
| output += createCitationInput("poznámky");
| |
| output += createCitationInput("issn");
| |
| output += '</fieldset></div>';
| |
| break;
| |
|
| |
| // elektronické zdroje
| |
| case "db" :
| |
| output += '<div><fieldset><legend>Údaje o odpovědnosti, autorech</legend>';
| |
| output += createCitationInput("odpovědnost");
| |
| output += '</fieldset></div>';
| |
| case "web" :
| |
| output += '<div><fieldset><legend>Údaje o dostupnosti</legend>';
| |
| output += createCitationInput("url");
| |
| output += '</fieldset></div>';
| |
| case "cd" :
| |
| output += '<div><fieldset><legend>Údaje o zdroji</legend>';
| |
| output += createCitationInput("název");
| |
| output += createCitationInput("podnázev");
| |
| output += createCitationInput("vydavatel");
| |
| output += createCitationInput("rok");
| |
| output += createCitationInput("datum_revize");
| |
| output += createCitationInput("citováno");
| |
| output += '</fieldset></div>';
| |
| break;
| |
|
| |
| // legislativní dokument
| |
| case "legislativní_dokument" :
| |
| output += '<div><fieldset><legend>Údaje o legislativním dokumentu</legend>';
| |
| output += createCitationInput("země");
| |
| output += createCitationInput("instituce");
| |
| output += createCitationInput("dokument");
| |
| output += createCitationInput("sbírka");
| |
| output += createCitationInput("rok");
| |
| output += createCitationInput("poznámky");
| |
| output += createCitationInput("strany");
| |
| output += createCitationInput("url");
| |
| output += '</fieldset></div>';
| |
| break;
| |
|
| |
| // standard
| |
| case "standard" :
| |
| output += '<div><fieldset><legend>Údaje o standardu, normě</legend>';
| |
| output += createCitationInput("označení");
| |
| output += createCitationInput("název");
| |
| output += createCitationInput("místo");
| |
| output += createCitationInput("instituce");
| |
| output += createCitationInput("rok");
| |
| output += createCitationInput("poznámky");
| |
| output += createCitationInput("strany");
| |
| output += createCitationInput("url");
| |
| output += '</fieldset></div>';
| |
| break;
| |
|
| |
| // akademická literatura
| |
| case "akademická_práce" :
| |
| output += '<div><fieldset><legend>Údaje o akademické práci</legend>';
| |
| output += createCitationInput("název");
| |
| output += createCitationInput("podnázev");
| |
| output += createCitationInput("místo");
| |
| output += createCitationInput("ústav");
| |
| output += createCitationInput("rok");
| |
| output += createCitationInput("url");
| |
| output += createCitationInput("strany");
| |
| output += createCitationInput("poznámky");
| |
| output += '</fieldset></div>';
| |
| break;
| |
|
| |
| case "přednáška":
| |
| output += '<div><fieldset><legend>Údaje o přednášce na vysoké škole</legend>';
| |
| output += createCitationInput("příjmení");
| |
| output += createCitationInput("jméno");
| |
| output += createCitationInput("téma");
| |
| output += createCitationInput("předmět");
| |
| output += createCitationInput("obor");
| |
| output += createCitationInput("fakulta");
| |
| output += createCitationInput("univerzita");
| |
| output += createCitationInput("místo");
| |
| output += createCitationInput("datum");
| |
| output += createCitationInput("url");
| |
| output += createCitationInput("poznámky");
| |
| output += '</fieldset></div>';
| |
| break;
| |
| }
| |
|
| |
| if (typ == "článek") {
| |
| output += "<div><fieldset><legend>Další identifikátory</legend>";
| |
| output += createCitationInput("pmid");
| |
| output += '<div class="prefsectiontip">Zde můžete uvést PMID číslo článku v databázi PubMed.</div>';
| |
| output += createCitationInput("doi");
| |
| output += '<div class="prefsectiontip">Pokud je článek k dispozici pod identifikátorem DOI, můžete jej zde zadat.</div>';
| |
| output += "</fieldset></div>";
| |
| }
| |
|
| |
| // tlačítko pro odeslání a závěr formuláře
| |
| output += '<input type="submit" value="Vygenerovat šablonu" /> ';
| |
| output += '<input type="reset" value="Smazat údaje" /></form>';
| |
| output += '<p> </p>';
| |
|
| |
| // kýžený výstup: přepis formuláře a zablokování odkazu
| |
| contentDiv.innerHTML = baseTextCitace + output;
| |
|
| |
| // povinné parametry jednotlivých zdrojů:
| |
| polePovinnychParametru = new Array();
| |
| switch (typ) {
| |
| case "kniha":
| |
| case "kapitola":
| |
| polePovinnychParametru = ["titul", "vydání", "rok", "isbn"];
| |
| break;
| |
| case "sborník":
| |
| polePovinnychParametru = ["titul", "vydání", "autor_sborníku", "rok"];
| |
| break;
| |
| case "článek":
| |
| polePovinnychParametru = ["článek", "časopis", "strany", "rok", "ročník", "svazek", "issn"];
| |
| break;
| |
| case "seriálová_publikace":
| |
| polePovinnychParametru = ["článek", "název", "seriálová_publikace", "strany", "rok", "svazek", "ročník", "issn"];
| |
| break;
| |
| case "web":
| |
| polePovinnychParametru = ["název", "citováno", "url"];
| |
| break;
| |
| case "cd":
| |
| polePovinnychParametru = ["citováno", "název"];
| |
| break;
| |
| case "db":
| |
| polePovinnychParametru = ["název", "odpovědnost", "citováno", "url"];
| |
| break;
| |
| case "firemní_literatura":
| |
| polePovinnychParametru = ["titul", "vydavatel", "rok"];
| |
| break;
| |
| case "legislativní_dokument":
| |
| polePovinnychParametru = ["země", "dokument", "rok"];
| |
| break;
| |
| case "standard":
| |
| polePovinnychParametru = ["označení", "název", "rok"];
| |
| break;
| |
| case "akademická_práce":
| |
| polePovinnychParametru = ["název", "místo", "rok"];
| |
| break;
| |
| case "přednáška":
| |
| polePovinnychParametru = ["příjmení", "téma", "předmět", "obor", "fakulta", "univerzita", "místo", "datum"];
| |
| break;
| |
| }
| |
|
| |
| // vytvořit třídy pro povinné parametry
| |
| classPovinneCitace(polePovinnychParametru);
| |
|
| |
| // vyplnit datum, je-li potřeba
| |
| if(document.getElementById("citováno")) {
| |
|
| |
| datumCitace = document.getElementById("citováno");
| |
|
| |
| dnesni_datum = new Date();
| |
|
| |
| vyplneni_rok = dnesni_datum.getFullYear();
| |
| vyplneni_mesic = (dnesni_datum.getMonth() + 1);
| |
| if (vyplneni_mesic < 10) vyplneni_mesic = "0" + vyplneni_mesic;
| |
| vyplneni_den = dnesni_datum.getDate();
| |
| if (vyplneni_den < 10) vyplneni_den = "0" + vyplneni_den;
| |
| vyplneni_data = vyplneni_rok + "-" + vyplneni_mesic + "-" + vyplneni_den;
| |
|
| |
| datumCitace.value = vyplneni_data;
| |
| datumCitace.onclick = function() {
| |
| document.getElementById("citováno").value = "";
| |
| document.getElementById("citováno").onclick = null;
| |
| }
| |
| }
| |
|
| |
| // obhospodařit autory
| |
| // jQuery animace
| |
| $j(document).ready(function(){
| |
| $j("#citOdkaz1AutoriForm").click(
| |
| function(){
| |
| $j("#citKorporaceForm").slideToggle();
| |
| $j("#citDalsiAutoriForm").slideToggle();
| |
| $j("#citOdkaz1AutoriForm").slideToggle();
| |
| $j("#citOdkaz2AutoriForm").slideToggle();
| |
| }
| |
| );
| |
| $j("#citOdkaz2AutoriForm").click(
| |
| function(){
| |
| $j("#citKorporaceForm").slideToggle();
| |
| $j("#citDalsiAutoriForm").slideToggle();
| |
| $j("#citOdkaz1AutoriForm").slideToggle();
| |
| $j("#citOdkaz2AutoriForm").slideToggle();
| |
| }
| |
| );
| |
| });
| |
|
| |
| // konec
| |
| return false;
| |
| }
| |
|
| |
| // spuštění všeho
| |
| addOnloadHook(createCitationButton);
| |
|
| |
| /* </pre> */
| |