Módulo:Interproyecto
Apariencia
Esta documentación está transcluida desde Módulo:Interproyecto/doc.
Los editores pueden experimentar en la zona de pruebas
Por favor, añade las categorías a la subpágina de documentación.
(subpáginas - enlaces)
Los editores pueden experimentar en la zona de pruebas
Por favor, añade las categorías a la subpágina de documentación.
(subpáginas - enlaces)
local p = {}
local Wikidata = require('Módulo:Wikidata')
local Entidad = mw.wikibase.getEntityObject() or '' -- Tabla con los datos en Wikidata
local Str = require('Módulo:String')
local Enlaces = require('Módulo:Enlaces')
--parámetros reconocidos. 1 = vigente, 0 = obsoleto. En orden alfabético:
local params = {['commons']=1,['commonscat']=1,['wikiviajes']=1, ['wikcionario']=1,['wikidata']=1,['wikilibros']=1,['wikinoticias']=1,['wikipedia']=1,['wikiquote']=1,['wikispecies']=1,['wikiversidad']=1}
-- Función que devuelve la lista de los valores de una propiedad en Wikidata formateados
function propiedad(idPropiedad,opciones)
if Entidad and Entidad.claims then --and Entidad.claims[idPropiedad] then
if not opciones then
opciones = {}
end
idPropiedad = string.upper(idPropiedad)
opciones['propiedad'] = idPropiedad
valorPropiedad = Wikidata.getPropiedad(opciones,Entidad.claims[idPropiedad])
if not valorPropiedad or valorPropiedad == '' then
return ''
end
return valorPropiedad
else return ''
end
end
function p.interproyecto( frame )
local frame = frame:getParent()
local titulo = mw.title.getCurrentTitle()
local argus = {}
for k,v in pairs(frame.args) do -- crea una tabla con los parámetros incluídos en la plantilla, y elimina parámetros vacíos
if v ~= '' and type(k) ~= 'number' then
argus[mw.ustring.lower(k)] = v -- todos los parámetros en minúsculas por defecto:
end
end
-- WIKIDATA! --
if Entidad == '' and argus['wikidata'] then
Entidad = mw.wikibase.getEntityObject(argus['wikidata'])
end
local nombre = frame:preprocess("{{PAGENAME}}")
-- Lista de enlaces
if (not argus['wikidata'] or argus['wikidata'] == '') and Entidad~=nil then
argus['wikidata']=Entidad.id --enlazar a elemento wikidata
end
---- Enlaces uno por uno ---
listaenlaces = Enlaces.all(argus)
listaenlaces["eswiki"]["text"] = "Enciclopedia"
listaenlaces["eswikiquote"]["text"] = "Citas"
listaenlaces["eswikinews"]["text"] = "Noticias"
listaenlaces["commonswiki"]["text"] = "Multimedia"
listaenlaces["specieswiki"]["text"] = "Especies descritas"
listaenlaces["wikidata"]["text"] = "Metadatos"
listaenlaces["eswikibooks"]["text"] = "Libros"
listaenlaces["eswikiversity"]["text"] = "Clases"
listaenlaces["eswiktionary"]["text"] = "Diccionario"
listaenlaces["eswikivoyage"]["text"] = "Viajes"
orden = { 'eswiki', 'eswikiquote','eswiktionary', 'eswikibooks' , 'eswikiversity' , 'eswikinews', 'commonswiki', 'specieswiki', 'eswikivoyage' ,'wikidata'}
textoenlaces = Enlaces.formattedbiocitas(listaenlaces, orden)
local contenido = mw.html.create( 'div' )
:addClass( 'ws-noexport' )
:css( 'margin', '5px')
:css( 'float', 'right' )
:css( 'box-sizing', 'border-box')
:css( 'border', '1px solid #808080')
:css( 'width', '30%');
local nodoimagen = contenido:tag( 'div' )
:css(' margin', '5px')
:css('text-align','center');
--P41
if argus['imagen'] ~= '' and argus['imagen'] ~= nil then
nodoimagen:wikitext("[[File:"..argus['imagen'].."|frameless|99999x150px|center]]")
elseif propiedad('p41') ~= '' then
nodoimagen:wikitext("[[File:"..propiedad('p41',{['uno']='sí'}).."|frameless|99999x150px|Bandera|center]]")
elseif propiedad('p18') ~= '' then
nodoimagen:wikitext("[[File:"..propiedad('p18',{['uno']='sí'}).."|frameless|99999x150px|"..propiedad('p18',{['calificador']='P2096',['idioma']='es'}).."|center]]")
end
nodoimagen:done()
local nodonombre = contenido:tag( 'div' )
:css(' margin', '5px')
:css( 'text-align' , 'center')
:css( 'background' , '#6688AA')
:css('color', 'white')
:css('font-weight','bold')
:css('font-size', '120%');
if argus['nombre'] ~= '' and argus['nombre'] ~= nil then
nodonombre:wikitext( argus['nombre'] )
else
nodonombre:wikitext( nombre )
end
nodonombre:done()
local nodoenlaces = contenido:tag( 'div' )
:css(' margin', '5px')
:css('text-align','center');
nodoenlaces:wikitext(textoenlaces)
nodoenlaces:done()
return contenido:done()
end
return p