Mòdul:WikidataCommonsCat
Mòdul de suport a la plantilla:Commonscat i similars. Obté la pàgina de Commons definida a Wikidata segons les següents possibilitats:
- Enllaç al lloc commons en l'element associat a la pàgina, si és una categoria.
- Enllaç al lloc commons definit en el valor de categoria principal (P910).
- Enllaç al lloc commons definit en el valor de categoria relacionada amb la llista (P1754).
- Valor definit a categoria de Commons (P373).
- Enllaç al lloc commons en l'element associat a la pàgina, si és una galeria.
- Text proporcionat al paràmetre default.
Sintaxi completa:
{{#invoke:WikidataCommonsCat|getCommonslink|<qid>|default= }}
Els paràmetres són opcionals:
1
: l'identificador Qid, per defecte serà l'element associat a la pàgina. En general no serà necessari.default=
: valor per defecte en cas de no trobar cap valor a Wikidata.
Dependències:
- Mòdul:Wikibase amb la funció getSiteLink.
local p = {}
function p.getCommonslink(frame)
local args = frame.args or frame
local qid = string.upper(mw.text.trim(args[1] or ""))
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return nil end
local sitelink_cat
local sitelink = mw.wikibase.getSitelink(qid, "commonswiki")
if not sitelink or sitelink:sub(1,9) ~= "Category:" then
-- check for topic's main category
local catid
local prop = mw.wikibase.getBestStatements(qid, "P910")[1]
if prop then
catid = prop.mainsnak.datavalue and prop.mainsnak.datavalue.value.id
sitelink_cat = mw.wikibase.getSitelink(catid, "commonswiki")
end
if not sitelink_cat then
-- check for list's main category
prop = mw.wikibase.getBestStatements(qid, "P1754")[1]
if prop then
catid = prop.mainsnak.datavalue and prop.mainsnak.datavalue.value.id
sitelink_cat = mw.wikibase.getSitelink(catid, "commonswiki")
end
if not sitelink_cat then
-- check for Commons category (string value)
prop = mw.wikibase.getBestStatements(qid, "P373")[1]
if prop then
sitelink_cat = prop.mainsnak.datavalue and prop.mainsnak.datavalue.value
if sitelink_cat then
sitelink_cat = "Category:" .. sitelink_cat
end
end
end
end
end
return sitelink_cat or sitelink or args.default
end
return p