Szerkesztő:Bdamokos/refTools.js

A Wikipédiából, a szabad enciklopédiából

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
  • Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
  • Opera: 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 (mwCustomEditButtons && document.getElementById('toolbar') && wikEdAutoUpdateUrl == null) {
button = document.createElement('a');
button.href = "javascript:easyCiteMain()";
button.title = "Forráshivatkozás beiilesztése";
buttonimage = document.createElement('img');
buttonimage.src = "http://upload.wikimedia.org/wikipedia/commons/e/ea/Button_easy_cite.png";
buttonimage.alt = "Forráshivatkozás beillesztése";
button.appendChild(buttonimage);
document.getElementById('toolbar').appendChild(button);
if (navigator.userAgent.indexOf('MSIE') == -1) {
citemain = document.createElement('div');
citemain.style.display = 'none';
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") );
document.getElementById('wpTextbox1').parentNode.insertBefore(citemain, document.getElementById('wpTextbox1'));
}
else {
selection = '<div id="citeselect" style="display:none"><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óírat" onclick="citeJournal()" />'+
'<input type="button" value="Elnevezett hivatkozás" onclick="citeNamedRef()" />'+
'<input type="button" value="Mégse" onclick="hideInitial()" /></div>';
document.getElementById('editform').innerHTML = selection + document.getElementById('editform').innerHTML;
}
}
}
 
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';
if (document.getElementById('citediv1') ) {
document.getElementById('citediv'+numforms).style.display = 'none';
}
}
 
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) {
if (numforms != 0) {
document.getElementById('citediv'+numforms).style.display = 'none';
}
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">&nbsp;URL: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="url"></td>'+
'<td width="120"><label for="title">&nbsp;Cím: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="title"></td></tr>'+
'<tr><td width="120"><label for="last">&nbsp;Családnév: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="last"></td>'+
'<td width="120"><label for="first">&nbsp;Keresztnév: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors">&nbsp;Társszerzők: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="date">&nbsp;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">&nbsp;Munka: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="work"></td>'+
'<td width="120"><label for="publisher">&nbsp;Kiadó: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="publisher"></td></tr>'+
'<tr><td width="120"><label for="pages">&nbsp;Oldalak: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="pages"></td>'+
'<td width="120"><label for="language">&nbsp;Nyelv: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="language"></td></tr>'+
'<tr><td width="120"><label for="accessdate">&nbsp;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">&nbsp;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() {
if (numforms != 0) {
document.getElementById('citediv'+numforms).style.display = 'none';
}
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">&nbsp;Családnév: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="last"></td>'+
'<td width="120"><label for="first">&nbsp;Keresztnév: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors">&nbsp;Társszerzők: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="others">&nbsp;Mások: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="others"></td></tr>'+
'<tr><td width="120"><label for="title">&nbsp;Cím: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="title"></td>'+
'<td width="120"><label for="editor">&nbsp;Szerkesztő: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="editor"></td></tr>'+
'<tr><td width="120"><label for="publisher">&nbsp;Kiadó: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="publisher"></td>'+
'<td width="120"><label for="location">&nbsp;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">&nbsp;Kiadás dátuma: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="date"></td>'+
'<td width="120"><label for="edition">&nbsp;Kiadás: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="edition"></td></tr>'+
'<tr><td width="120"><label for="series">&nbsp;Sorozat: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="series"></td>'+
'<td width="120"><label for="volume">&nbsp;Kötet: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="volume"></td></tr>'+
'<tr><td width="120"><label for="pages">&nbsp;Oldalak: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="pages"></td>'+
'<td width="120"><label for="chapter">&nbsp;Fejezet: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="chapter"></td></tr>'+
'<tr><td width="120"><label for="isbn">&nbsp;ISBN: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="isbn"></td>'+
'<td width="120"><label for="oclc">&nbsp;OCLC: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="oclc"></td></tr>'+
'<tr><td width="120"><label for="url">&nbsp;URL: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="url"></td>'+
'<td width="120"><label for="accessdate">&nbsp;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">&nbsp;Nyelv: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="language"></td>'+
'<td width="120"><label for="refname">&nbsp;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() {
if (numforms != 0) {
document.getElementById('citediv'+numforms).style.display = 'none';
}
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">&nbsp;Családnév: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="last"></td>'+
'<td width="120"><label for="first">&nbsp;Keresztnév: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors">&nbsp;Társszerzők: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="date">&nbsp;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">&nbsp;Cím: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="title"></td>'+
'<td width="120"><label for="journal">&nbsp;Folyóirat: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="journal"></td></tr>'+
'<tr><td width="120"><label for="publisher">&nbsp;Kiadó: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="publisher"></td>'+
'<td width="120"><label for="location">&nbsp;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">&nbsp;Évfolyam: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="volume"></td>'+
'<td width="120"><label for="issue">&nbsp;Szám: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="issue"></td></tr>'+
'<tr><td width="120"><label for="pages">&nbsp;Oldalak: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="pages"></td>'+
'<td width="120"><label for="issn">&nbsp;ISSN: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="issn"></td></tr>'+
'<tr><td width="120"><label for="oclc">&nbsp;OCLC: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="oclc"></td>'+
'<td width="120"><label for="language">&nbsp;Nyelv: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="language"></td></tr>'+
'<tr><td width="120"><label for="url">&nbsp;URL: </label></td>'+
'<td width="400"><input type="text" style="width:100%" id="url"></td>'+
'<td width="120"><label for="accessdate">&nbsp;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">&nbsp;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() {
text = document.getElementById('wpTextbox1').value;
regex = /<\s*?ref\s+?name\s*?=\s*?(('([^']*?)')|("([^"]*?)"))\s*?>/gi //'
var namedrefs = new Array();
var i=0;
var nr=true;
do {
ref = regex.exec(text);
if(ref != null){
namedrefs[i] = ref[5];
i++;
} else {
nr=false;
}
} while (nr==true);
return namedrefs;
}
 
function citeNamedRef() {
namedrefs = getNamedRefs();
if (namedrefs == '') {
if (numforms != 0) {
document.getElementById('citediv'+numforms).style.display = 'none';
}
numforms++;
out = '<div id="citediv'+numforms+'"><fieldset>'+
'<legend>Hivatkozások a szövegben</legend>Nincsenek elnevezett hivatkozások (<tt>&lt;ref name="Név"&gt;</tt>) a szövegben</fieldset></div>';
document.getElementById('citeselect').innerHTML += out;
}
else {
if (numforms != 0) {
document.getElementById('citediv'+numforms).style.display = 'none';
}
numforms++;
form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>Hivatkozások a szócikkben</legend>'+
'<table cellspacing="5">'+
'<tr><td><label for="namedrefs">&nbsp;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';  
}
 
hookEvent("load", refbuttons);