MediaWiki:Gadget-reftools.js
Megjelenés
Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.
- Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
- Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
- Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
// TODO:
// Reference errors:
// Multiple refs given same name
// Unclosed ref tags
// Incorrect date format
// multiple refs contain the same content
// Forrás: http://en.wikipedia.org/w/index.php?title=User:Mr.Z-man/refToolbar.js&oldid=209966388
// Szerző: en:User:Mr.Z-man
// Fordította: User:Bdamokos
var numforms = 0;
var wikEdAutoUpdateUrl;
$(function refbuttons() {
if (mw.toolbar && document.getElementById('toolbar')) {
button = document.createElement('a');
button.href = "javascript:easyCiteMain()";
button.title = "Forráshivatkozás beillesztése";
buttonimage = document.createElement('img');
buttonimage.src = "//upload.wikimedia.org/wikipedia/commons/e/ea/Button_easy_cite.png";
buttonimage.alt = "Forráshivatkozás beillesztése";
button.appendChild(buttonimage);
var toolbar = document.getElementById('toolbar');
if (navigator.userAgent.indexOf('MSIE') == -1) {
if (toolbar.style != null) {
toolbar.style.height = 'auto';
} else {
toolbar.setAttribute('style', 'margin-bottom: 6px; height: auto;');
}
toolbar.appendChild(button);
citemain = document.createElement('div');
citemain.style.display = 'none';
citemain.style.margin = '0.2em 0 -0.2em 0';
citemain.setAttribute('Id', 'citeselect');
citemain.appendChild(addOption("citeWeb()", "Web"));
citemain.appendChild(addOption("citeNews()", "Hír"));
citemain.appendChild(addOption("citeBook()", "Könyv"));
citemain.appendChild(addOption("citeJournal()", "Folyóirat"));
citemain.appendChild(addOption("citeNamedRef()", "Elnevezett hivatkozás"));
citemain.appendChild(addOption("hideInitial()", "Mégse"));
toolbar.appendChild(citemain);
} else {
toolbar.appendChild(button);
selection =
'<div id="citeselect" style="display:none;margin:0.2em 0 -0.2em 0;"><input type="button" value="Web" onclick="citeWeb()" />' +
'<input type="button" value="Hír" onclick="citeNews()" />' +
'<input type="button" value="Könyv" onclick="citeBook()" />' +
'<input type="button" value="Folyóirat" onclick="citeJournal()" />' +
'<input type="button" value="Elnevezett hivatkozás" onclick="citeNamedRef()" />' +
'<input type="button" value="Mégse" onclick="hideInitial()" /></div>';
toolbar.innerHTML = toolbar.innerHTML + selection;
}
}
});
function addOption(script, text) {
option = document.createElement('input');
option.setAttribute('type', 'button');
option.setAttribute('onclick', script);
option.setAttribute("value", text);
return option;
}
function hideInitial() {
document.getElementById('citeselect').style.display = 'none';
oldFormHide();
}
function oldFormHide() {
if (numforms != 0) {
document.getElementById('citediv' + numforms).style.display = 'none';
}
if (document.getElementById('errorform') != null) {
document.getElementById('citeselect').removeChild(document.getElementById('errorform'));
}
}
function easyCiteMain() {
document.getElementById('citeselect').style.display = '';
}
function getTime() {
var time = new Date();
var nowdate = time.getUTCDate();
if (nowdate < 10) {
nowdate = "0" + nowdate.toString();
}
var nowmonth = time.getUTCMonth() + 1;
if (nowmonth < 10) {
nowmonth = "0" + nowmonth.toString();
}
var nowyear = time.getUTCFullYear();
newtime = nowyear + '-' + nowmonth + '-' + nowdate;
return (newtime);
}
function citeWeb() {
citeNewsWeb("cite web");
}
function citeNews() {
citeNewsWeb("cite news");
}
function citeNewsWeb(templatename) {
oldFormHide();
template = templatename;
var legend;
if (template == "cite web") {
legend = "Internetes forrásra hivatkozás";
} else {
legend = "Hírforrásra hivatkozás";
}
newtime = getTime();
numforms++;
form = '<div id="citediv' + numforms + '">' +
'<fieldset><legend>' + legend + '</legend>' +
'<table cellspacing="5">' +
'<input type="hidden" value="' + template + '" id="template">' +
'<tr><td width="120"><label for="url"> URL: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="url"></td>' +
'<td width="120"><label for="title"> Cím: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="title"></td></tr>' +
'<tr><td width="120"><label for="last"> Családnév: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="last"></td>' +
'<td width="120"><label for="first"> Keresztnév: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="first"></td></tr>' +
'<tr><td width="120"><label for="coauthors"> Társszerzők: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="coauthors"></td>' +
'<td width="120"><label for="date"> Kiadás dátuma: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="date"></td></tr>' +
'<tr><td width="120"><label for="work"> Munka: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="work"></td>' +
'<td width="120"><label for="publisher"> Kiadó: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="publisher"></td></tr>' +
'<tr><td width="120"><label for="pages"> Oldalak: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="pages"></td>' +
'<td width="120"><label for="language"> Nyelv: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="language"></td></tr>' +
'<tr><td width="120"><label for="accessdate"> Elérés: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="accessdate" value="' + newtime + '"></td>' +
'<td width="120"><label for="refname"> Hivatkozás neve: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="refname"></td></tr>' +
'</table>' +
'<input type="button" value="Forráshivatkozás hozzáadása" onClick="addcites()">' +
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
function citeBook() {
oldFormHide();
template = "cite book";
numforms++;
form = '<div id="citediv' + numforms + '">' +
'<fieldset><legend>Könyvre hivatkozás</legend>' +
'<table cellspacing="5">' +
'<input type="hidden" value="' + template + '" id="template">' +
'<tr><td width="120"><label for="last"> Családnév: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="last"></td>' +
'<td width="120"><label for="first"> Keresztnév: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="first"></td></tr>' +
'<tr><td width="120"><label for="coauthors"> Társszerzők: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="coauthors"></td>' +
'<td width="120"><label for="others"> Mások: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="others"></td></tr>' +
'<tr><td width="120"><label for="title"> Cím: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="title"></td>' +
'<td width="120"><label for="editor"> Szerkesztő: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="editor"></td></tr>' +
'<tr><td width="120"><label for="publisher"> Kiadó: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="publisher"></td>' +
'<td width="120"><label for="location"> Kiadás helye: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="location"></td></tr>' +
'<tr><td width="120"><label for="date"> Kiadás dátuma: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="date"></td>' +
'<td width="120"><label for="edition"> Kiadás: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="edition"></td></tr>' +
'<tr><td width="120"><label for="series"> Sorozat: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="series"></td>' +
'<td width="120"><label for="volume"> Kötet: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="volume"></td></tr>' +
'<tr><td width="120"><label for="pages"> Oldalak: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="pages"></td>' +
'<td width="120"><label for="chapter"> Fejezet: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="chapter"></td></tr>' +
'<tr><td width="120"><label for="isbn"> ISBN: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="isbn"></td>' +
'<td width="120"><label for="oclc"> OCLC: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="oclc"></td></tr>' +
'<tr><td width="120"><label for="url"> URL: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="url"></td>' +
'<td width="120"><label for="accessdate"> Elérés: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="accessdate"></td></tr>' +
'<tr><td width="120"><label for="language"> Nyelv: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="language"></td>' +
'<td width="120"><label for="refname"> Hivatkozás neve: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="refname"></td></tr>' +
'</table>' +
'<input type="button" value="Forráshivatkozás hozzáadása" onClick="addcites()">' +
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
function citeJournal() {
oldFormHide();
template = "cite journal";
numforms++;
form = '<div id="citediv' + numforms + '">' +
'<fieldset><legend>Folyóiratra hivatkozás</legend>' +
'<table cellspacing="5">' +
'<input type="hidden" value="' + template + '" id="template">' +
'<tr><td width="120"><label for="last"> Családnév: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="last"></td>' +
'<td width="120"><label for="first"> Keresztnév: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="first"></td></tr>' +
'<tr><td width="120"><label for="coauthors"> Társszerzők: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="coauthors"></td>' +
'<td width="120"><label for="date"> Kiadás dátuma: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="date"></td></tr>' +
'<tr><td width="120"><label for="title"> Cím: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="title"></td>' +
'<td width="120"><label for="journal"> Folyóirat: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="journal"></td></tr>' +
'<tr><td width="120"><label for="publisher"> Kiadó: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="publisher"></td>' +
'<td width="120"><label for="location"> Kiadás helye: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="location"></td></tr>' +
'<tr><td width="120"><label for="volume"> Évfolyam: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="volume"></td>' +
'<td width="120"><label for="issue"> Szám: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="issue"></td></tr>' +
'<tr><td width="120"><label for="pages"> Oldalak: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="pages"></td>' +
'<td width="120"><label for="issn"> ISSN: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="issn"></td></tr>' +
'<tr><td width="120"><label for="oclc"> OCLC: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="oclc"></td>' +
'<td width="120"><label for="language"> Nyelv: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="language"></td></tr>' +
'<tr><td width="120"><label for="url"> URL: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="url"></td>' +
'<td width="120"><label for="accessdate"> Elérés: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="accessdate"></td></tr>' +
'<tr><td width="120"><label for="refname"> Hivatkozás neve: </label></td>' +
'<td width="400"><input type="text" style="width:100%" id="refname"></td></tr>' +
'</table>' +
'<input type="button" value="Forráshivatkozás hozzáadása" onClick="addcites()">' +
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
function addcites(template) {
cites = document.getElementById('citediv' + numforms).getElementsByTagName('input');
var citebegin = '<ref';
var citename = '';
var citeinner = '';
for (var i = 0; i < cites.length - 1; i++) {
if (cites[i].value != '' && cites[i].id != "refname" && cites[i].id != "template") {
citeinner += "|" + cites[i].id + "=" + cites[i].value;
} else if (cites[i].value != '' && cites[i].id == "refname" && cites[i].id != "template") {
citebegin += ' name="' + cites[i].value + '"';
} else if (cites[i].value != '' && cites[i].id != "refname" && cites[i].id == "template") {
citename = '>{{' + cites[i].value;
}
}
cite = citebegin + citename + citeinner + "}}</ref>";
insertTags(cite, '', '');
document.getElementById('citediv' + numforms).style.display = 'none';
}
function getNamedRefs(calls) {
if (typeof (wikEdUseWikEd) != 'undefined') {
if (wikEdUseWikEd == true) {
WikEdUpdateTextarea();
}
}
text = document.getElementById('wpTextbox1').value;
var regex;
if (calls) {
regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?\/ *?>/gi //'
} else {
regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?>/gi //'
}
var namedrefs = new Array();
var i = 0;
var nr = true;
do {
ref = regex.exec(text);
if (ref != null) {
if (ref[5]) {
namedrefs[i] = ref[5];
} else if (ref[3]) {
namedrefs[i] = ref[3];
} else {
namedrefs[i] = ref[6];
}
i++;
} else {
nr = false;
}
} while (nr == true);
return namedrefs;
}
function citeNamedRef() {
namedrefs = getNamedRefs(false);
if (namedrefs == '') {
oldFormHide();
numforms++;
out = '<div id="citediv' + numforms + '"><fieldset>' +
'<legend>Hivatkozások a szövegben</legend>Nincsenek elnevezett hivatkozások (<tt><ref name="Név"></tt>) a szövegben</fieldset></div>';
document.getElementById('citeselect').innerHTML += out;
} else {
oldFormHide();
numforms++;
form = '<div id="citediv' + numforms + '">' +
'<fieldset><legend>Hivatkozások a szócikkben</legend>' +
'<table cellspacing="5">' +
'<tr><td><label for="namedrefs"> Elnevett hivatkozások a szócikkben</label></td>' +
'<td><select name="namedrefs" id="namedrefs">';
for (var i = 0; i < namedrefs.length; i++) {
form += '<option value="' + namedrefs[i] + '">' + namedrefs[i] + '</option>';
}
form += '</select>' +
'</td></tr></table>' +
'<input type="button" value="Hivatkozás hozzáadása" onClick="addnamedcite()">' +
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
}
function addnamedcite() {
name = document.getElementById('citediv' + numforms).getElementsByTagName('select')[0].value;
ref = '<ref name="' + name + '" />';
insertTags(ref, '', '');
document.getElementById('citediv' + numforms).style.display = 'none';
}