Module:Uses Wikidata
Appearance
Documentation for this module may be created at Module:Uses Wikidata/doc
-- Module:Uses Wikidata
local p = {}
function p.usesProperty(frame)
-- Fix: Safely get parent frame
local parentFrame = frame:getParent()
local args = parentFrame and parentFrame.args or frame.args
if not args then
return "Error: Unable to retrieve arguments"
end
local result = '<ul>'
local ii = 1
while true do
local p_num = args[ii] and mw.text.trim(args[ii]) or ''
if p_num ~= '' then
-- Fix: Check if mw.wikibase exists before using it
local label = "Property " .. p_num
if mw.wikibase and mw.wikibase.getLabel then
local success, lbl = pcall(mw.wikibase.getLabel, p_num)
if success and lbl then
label = lbl
end
end
result = result .. "<li>[[File:Disc Plain blue dark.svg|middle|4px|link=|alt=]] <b><i>[[d:Property talk:" .. p_num .. "|" .. label .. " (" .. string.upper(p_num) .. ")]]</i></b> (see <span class='plainlinks'>[https://query.wikidata.org/embed.html#SELECT%20%3FWikidata_item_%20%3FWikidata_item_Label%20%3Fvalue%20%3FvalueLabel%20%3FEnglish_Wikipedia_article%20%23Show%20data%20in%20this%20order%0A%7B%0A%09%3FWikidata_item_%20wdt%3A" .. p_num .. "%20%3Fvalue%20.%20%23Collecting%20all%20items%20which%20have%20" .. p_num .. "%20data%2C%20from%20whole%20Wikidata%20item%20pages%0A%09OPTIONAL%20%7B%3FEnglish_Wikipedia_article%20schema%3Aabout%20%3FWikidata_item_%3B%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%7D%20%23If%20collected%20item%20has%20link%20to%20English%20Wikipedia%2C%20show%20that%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22%20%20%7D%20%23Show%20label%20in%20this%20language.%20%22en%22%20is%20English.%20%20%20%0A%7D%0ALIMIT%201000 uses]</span>)</li>"
ii = ii + 1
else
break
end
end
if ii == 1 then
return "Error: No property numbers provided"
end
result = result .. "</ul>"
return result
end
function p.tuProperty(frame)
-- Fix: Safely get parent frame
local parentFrame = frame:getParent()
local args = parentFrame and parentFrame.args or frame.args
if not args then
return "Error: Unable to retrieve arguments"
end
local result = '<ul>'
local ii = 1
while true do
local p_num = args[ii] and mw.text.trim(args[ii]) or ''
if p_num ~= '' then
-- Fix: Check if mw.wikibase exists before using it
local label = "Property " .. p_num
if mw.wikibase and mw.wikibase.getLabel then
local success, lbl = pcall(mw.wikibase.getLabel, p_num)
if success and lbl then
label = lbl
end
end
result = result .. "<li><span style='font-size:90%;line-height:1;'>●</span> <b>[[d:Property:" .. p_num .. "|" .. label .. "]]</b> <span style='font-size:90%;'>([[d:Property talk:" .. string.upper(p_num) .. "|" .. p_num .. "]])</span></li>"
ii = ii + 1
else
break
end
end
if ii == 1 then
return "Error: No property numbers provided"
end
result = result .. "</ul>"
return result
end
return p