Módulo:Zona de pruebas/Miguillen/WikidataID
Apariencia
A continuación se muestra la documentación transcluida desde la subpágina /doc. [salta a la caja de código]
Uso
{{#invoke:Zona de pruebas/Miguillen/WikidataID|getValueFromID|Q151973|P26|OBTENER_WIKIDATA}}
→ Elizabeth Taylor, Sybil Christopher, Suzy Miller[*], Elizabeth Taylor, Sally Burton[*]
Esta documentación está transcluida desde Módulo:Zona de pruebas/Miguillen/WikidataID/doc.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.
-- Pruebas para accesos arbitrarios a elementos de Wikidata diferentes al que enlaza la página
-- Destinado a ser:
-- Uso : {{#invoke:Wikidata|getValueFromID|<ID>|<Property>|OBTENER_WIKIDATA}}
-- Ejemplo.: {{#invoke:Wikidata|getValueFromID|Q151973|P26|OBTENER_WIKIDATA}} - Para obtener el valor de «cónyuge» (P26) de Richard Burton (Q151973)
-- Mientras que en la zona de pruebas:
-- Uso : {{#invoke:Zona de pruebas/Miguillen/WikidataID|getValueFromID|<ID>|<Property>|OBTENER_WIKIDATA}}
-- Ejemplo.: {{#invoke:Zona de pruebas/Miguillen/WikidataID|getValueFromID|Q151973|P26|OBTENER_WIKIDATA}} - Para obtener el valor de «cónyuge» (P26) de Richard Burton (Q151973)
local p = {}
-- Esto se utiliza para obtener un valor o una lista de valores separados por comas si existen varios valores
p.getValueFromID = function(frame)
local itemID = mw.text.trim(frame.args[1] or "") -- ID del elemento de Wikidata
local propiedadID = mw.text.trim(frame.args[2] or "") -- Propiedad
local parametroEntrada = mw.text.trim(frame.args[3] or "") -- Parámetro de entrada
if parametroEntrada == "OBTENER_WIKIDATA" then
local entidad = mw.wikibase.getEntity(itemID)
local declaracion = entidad.claims[propiedadID]
if declaracion then
-- Se muestra la salida como wikienlace si existe el correspondiente artículo en la wiki
if (declaracion[1] and declaracion[1].mainsnak.snaktype == "value" and declaracion[1].mainsnak.datavalue.type == "wikibase-entityid") then
local salida = {}
for k, v in pairs(declaracion) do
local enlace = mw.wikibase.sitelink("Q" .. v.mainsnak.datavalue.value["numeric-id"])
local etiqueta = mw.wikibase.label("Q" .. v.mainsnak.datavalue.value["numeric-id"])
if etiqueta == nil then etiqueta = "Q" .. v.mainsnak.datavalue.value["numeric-id"] end
if enlace then
salida[#salida + 1] = "[[" .. enlace .. "|" .. etiqueta .. "]]"
else
salida[#salida + 1] = "[[:d:Q" .. v.mainsnak.datavalue.value["numeric-id"] .. "|" .. etiqueta .. "]]<abbr title='Artículo aún no disponible en esta wiki'>[*]</abbr>"
end
end
return table.concat(salida, ", ")
else
return entidad:formatPropertyValues(propertyID, mw.wikibase.entity.claimRanks).value
end
else
return ""
end
else
return parametroEntrada
end
end
return p