MediaWiki:Gadget-WikidataInfo.js

Z Wikipodróży

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
// UWAGA! Z tego gadżetu korzystają także inne projekty
// Original version: [[d:User:Yair rand/WikidataInfo.js]]

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"
    },
    'pl': {
      notfound: "Brak elementu Wikidanych.",
      intro: "Wikidane: ",
      nolabel: "(brak etykiety)",
      nodescription: "brak opisu",
      aliases: "Inne nazwy: ",
      noaliases: "Brak"
    }
  }
  var namespace = mw.config.get('wgNamespaceNumber'), 
    lang = mw.config.get('wgPageContentLanguage'),
    page = namespace === 0 ? mw.config.get('wgTitle') : mw.config.get('wgFormattedNamespaces')[ namespace ] + ':' + mw.config.get('wgTitle');
 
  $.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 $d = $("<div>").appendTo("#contentSub"),
          m = translate[ lang ] || translate.en;
        for (var i in data.entities) {
          if (i == -1) {
            $d.append($("<a>").attr("href", "//www.wikidata.org/wiki/Special:CreateItem?site="+mw.config.get("wgDBname")+"&page="+page).text( m.notfound ))
          } 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) { }
            $d.append($("<a>").attr("href", "//www.wikidata.org/wiki/" + item.title).text(m.intro + ( item.labels ? item.labels[lang].value : m.nolabel ) + " (" + item.title + ")"),$("<span>").text(", "),$("<i>").text(item.descriptions ? item.descriptions[lang].value : m.nodescription),$("<br>"),$("<span>").text(m.aliases + (aliases.join(", ") || m.noaliases)))
          }
        }
      }
    }
  });
});