MediaWiki:Gadget-WikidataLink.js
Перейти до навігації
Перейти до пошуку
Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
- Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
- Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
- Opera: натисніть Ctrl-F5
if (mw.config.get('wgAction') == 'view') {
location.search.indexOf("printable=yes") == -1 && $(function($) {
var translate = {
'en': {
notfound: "Wikidata item not found.",
intro: "Wikidata: ",
nolabel: "(No label)",
nodescription: "no description given",
aliases: "Aliases: ",
noaliases: "None"
},
'uk': {
notfound: "Тотожного елемента Вікіданих не знайдено [створити].",
intro: "Вікідані: ",
nolabel: "(без назви)",
nodescription: "без опису",
aliases: "Інші назви: ",
noaliases: "нема"
}
}
var namespace = mw.config.get('wgNamespaceNumber'),
lang = mw.config.get('wgPageContentLanguage'),
page = (namespace -= (namespace > 0 && namespace % 2)) === 0 ? mw.config.get('wgTitle') : mw.config.get('wgFormattedNamespaces')[namespace] + ':' + mw.config.get('wgTitle');
namespace != 2 && $.ajax({
url: '//www.wikidata.org/w/api.php',
data: {
'format': 'json',
'action': 'wbgetentities',
'sites': mw.config.get('wgDBname'),
'titles': page,
'props': 'info|labels|descriptions|aliases',
'languages': lang
},
dataType: 'jsonp',
success: function(data) {
if (data.success) {
var m = translate[lang] || translate.en;
for (var i in data.entities) {
if (i == -1) {
try {
mw.util.addSubtitle($("<a>").attr("href", "//www.wikidata.org/wiki/Special:CreateItem?site=" + mw.config.get("wgDBname") + "&page=" + page).text(m.notfound)[0])
} catch (e) {
// Occurs in Content Translation skin for example [[Special:ContentTranslation]].
return;
}
var api = new mw.Api();
api.get({
action: 'query',
titles: page,
prop: 'langlinks',
lllimit: 'max'
})
.done(function(data) {
var pg, ll, hasItem;
for (pg in data.query.pages)
if (!data.query.pages[pg].missing)
for (ll in data.query.pages[pg].langlinks) {
lang = data.query.pages[pg].langlinks[ll].lang;
$.ajax({
url: '//www.wikidata.org/w/api.php',
data: {
'format': 'json',
'action': 'wbgetentities',
'sites': data.query.pages[pg].langlinks[ll].lang + 'wiki',
'titles': data.query.pages[pg].langlinks[ll]["*"],
'props': 'info|labels|descriptions|aliases',
'languages': lang
},
dataType: 'jsonp',
success: function(data) {
if (!hasItem)
for (var i in data.entities)
if (i != -1) {
hasItem = data.entities[i];
var i = 0,
aliases = [];
try {
for (; i < item.aliases[lang].length; i++)
aliases.push(item.aliases[lang][i].value);
} catch (e) {}
mw.util.addSubtitle($('<div>').append($("<a>").attr("href", "//www.wikidata.org/wiki/" + hasItem.title).text(" Можливо, потрібний елемент: " + ((hasItem.labels && hasItem.labels[lang]) ? hasItem.labels[lang].value : "") + " (" + hasItem.title + ")"),
$("<span>").text(", "),
$("<i>").text(hasItem.descriptions && hasItem.descriptions[lang] ? hasItem.descriptions[lang].value : m.nodescription),
$("<br>"),
$("<span>").text(m.aliases + (aliases.join(", ") || m.noaliases)))[0])
break;
}
}
});
}
})
.fail(function(error) {
alert(error);
});
} else {
var item = data.entities[i],
i = 0,
aliases = [];
try {
for (; i < item.aliases[lang].length; i++) {
aliases.push(item.aliases[lang][i].value);
}
} catch (e) {}
mw.util.addSubtitle(
$('<div>').append(
$("<a>").attr("href", "//www.wikidata.org/wiki/" + item.title).text(m.intro + ((item.labels && item.labels[lang]) ? item.labels[lang].value : m.nolabel) + " (" + item.title + ")"),
$("<span>").text(", "),
$("<i>").text(item.descriptions && item.descriptions[lang] ? item.descriptions[lang].value : m.nodescription),
$("<br>"),
$("<span>").text(m.aliases + (aliases.join(", ") || m.noaliases)))[0]
)
}
}
}
}
});
});
} // if 'view'