Moduł:Wikidane/format/wikibaseEntityItem
< Moduł:Wikidane | format
Przejdź do nawigacji
Przejdź do wyszukiwania
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Wikidane/format/wikibaseEntityItem/opis
local moduleData = mw.loadData("Module:Wikidane/data") return { options = { "alt", -- alternatywna metoda uzyskania opisu jeśli nie ma etykiety lub nazwy strony default = { ["alt"] = false, }, }, scope = "snak", format = function(snak, options) if snak.snaktype ~= "value" then return require("Module:Wikidane/format/snak").format(snak, options) end local value = snak.datavalue.value local id = "Q" .. value["numeric-id"] if options.alt == "id" then return id end local wikidataItemLink = string.format(moduleData.wikidataItemLink, id) local label = false local seeP = false if (options.alt == "kobieta") or (options.alt == "Q6581072") then seeP = "P2521" elseif (options.alt == "mężczyzna") or (options.alt == "Q6581097") then seeP = "P3321" elseif options.alt == "tak" then seeP = "P1705" end if seeP then local entity = mw.wikibase.getEntity(id) if entity and entity.claims and entity.claims[seeP] then for i, v in ipairs(entity.claims[seeP]) do if v.mainsnak and (v.mainsnak.snaktype == "value") and (v.mainsnak.datatype == "monolingualtext") and v.mainsnak.datavalue and (v.mainsnak.datavalue.type == "monolingualtext") and v.mainsnak.datavalue.value and (v.mainsnak.datavalue.value.language == "pl") then label = v.mainsnak.datavalue.value.text if label then break end end end end end if not label then local lang label, lang = mw.wikibase.getLabelWithLang(id) if lang ~= "pl" then label = false -- etykietki tylko po polsku else label = mw.text.nowiki(label) end end local sitelink = mw.wikibase.sitelink(id) if not label or (#label == 0) then label = sitelink -- just in case missing label end if not label then if not options.linkItem then mw.logObject(id, "brak etykiety i wyłączone linki") return nil end local main = mw.title.getCurrentTitle().namespace == 0 return (main and moduleData.itemWithoutLabelCat or "") .. moduleData.itemWithoutLabelTitle .. wikidataItemLink end if not options.linkItem then return label -- .. wikidataItemLink end if sitelink then return "[[" .. sitelink .. "|" .. label .. "]]" -- .. wikidataItemLink end return label .. wikidataItemLink end, }