--Returns a list of all claims and references, if any, from Wikidata
local p =
p.seeRefs = function(frame) -- look for named parameter qid; if it's blank make it nil local qid = frame.args.qid if qid and (#qid
scope='col' | Property\r\n! scope='col' | Value\r\n" local numclaims = 0 local ent = mw.wikibase.getEntity(qid) if ent and ent.claims then for k1, v1 in pairs(ent.claims) do -- code to look for claims numclaims = numclaims + 1 result = result .. " | -\r\n | " .. (mw.wikibase.getLabel(k1) or "nolabel") .. " | " local numvals = 0 local val = "\r\n" for k2, v2 in pairs(v1) do numvals = numvals + 1 local valtype = v2.mainsnak.datatype if valtype == "wikibase-item" then local label = "Q" .. v2.mainsnak.datavalue.value["numeric-id"] label = mw.wikibase.getLabel("Q" .. v2.mainsnak.datavalue.value["numeric-id"]) or label val = val .. k2 .. ". " .. label elseif valtype == "string" or valtype == "external-id" or valtype == "url" or valtype == "commonsMedia" then val = val .. k2 .. ". " .. v2.mainsnak.datavalue.value elseif valtype == "monolingualtext" then val = val .. k2 .. ". " .. v2.mainsnak.datavalue.value.text else val = val .. k2 .. ". <" .. valtype .. "> " .. ent:formatPropertyValues(k1, mw.wikibase.entity.claimRanks).value -- expand this later end if v2.qualifiers then val = val .. " -- " .. mw.wikibase.renderSnaks(v2.qualifiers) end if v2.references then for k3, v3 in pairs(v2.references) do val = val .. " ++ Ref = " .. mw.wikibase.renderSnaks(v3.snaks) end val = val .. " \r\n" else val = val .. " -- NO REFS\r\n" end end val = val .. "\r\n" result = result .. val end end result = result .. " |
---|
return p