Benutzer:APPER/PNDJS
Zur Navigation springen
Zur Suche springen
// Dieses JS sucht für Artikel mit Personendaten aber ohne PND nach dieser. // Wird etwas vielversprechendes gefunden, wird es in den Personendaten angezeigt, //kann gecheckt werden und sollte dann natürlich ergänzt werden. function searchForPND() { // only in articles if (wgNamespaceNumber == 0) { // search for GND-Link sitetext = document.getElementById('bodyContent').innerHTML; if ((sitetext.indexOf("dispatch.opac.d-nb.de") == -1) && (sitetext.indexOf("dispatch.opac.ddb.de") == -1) && (sitetext.indexOf("d-nb.info") == -1)) { // now search for GND: name is needed RegExpForName = />NAME<\/td>[^<]*<td[^>]*>([^<]+)<\/td>/i; if(RegExpForName.exec(sitetext)) { // there are persondata... name = RegExp.$1; // now search for a pnd! (as long as there is no way for cross-site ajax...) var pndJS = document.createElement('script'); pndJS.type = 'text/javascript'; pndJS.src = '//tools.wmflabs.org/persondata/service/gndsearch.php?callback=addPNDoffer&name=' + encodeURIComponent(name) + '&rand=' + Math.floor(Math.random()*1000000); document.getElementsByTagName('head')[0].appendChild(pndJS); } } } } function addPNDoffer(offer) { links = document.getElementsByTagName("a"); for(i=0;i<links.length;i++) { if (links[i].href.indexOf("/wiki/Hilfe:Personendaten") > -1) { var output = []; for (var s in offer) output.push("<a href='http://d-nb.info/gnd/" + s + "/'>" + offer[s] + "</a>"); output = output.join("
");
row = document.createElement("TR"); cell1 = document.createElement("TD"); cell1.innerHTML = "GND?"; cell1.className = "metadata-label"; cell2 = document.createElement("TD"); cell2.innerHTML = output; row.appendChild(cell1); row.appendChild(cell2); links[i].parentNode.parentNode.parentNode.insertBefore(row, links[i].parentNode.parentNode.nextSibling); } } } addOnloadHook( searchForPND );