Diferencia entre revisiones de «Módulo:Ficha de edificio»
Apariencia
Contenido eliminado Contenido añadido
cambio color de hospital |
Reformulando la forma de captar argumentos; reemplazando funciones locales por importadas; agregando argumentos faltantes de la Ficha de edificio, de la Ficha de hotel, y de la Ficha de edificio religioso [inacabado, suficiente por hoy] |
||
Línea 1: | Línea 1: | ||
local z = {} |
local z = {} |
||
local argumentos |
|||
local args -- used as global in ModuloArgs |
|||
local argumento={} |
|||
local Entidad |
local Entidad -- used as global in local functions |
||
local ModuloFicha = require('Módulo:Ficha') |
local ModuloFicha = require('Módulo:Ficha') |
||
local ModuloWikidata = require('Módulo:Wikidata') |
local ModuloWikidata = require('Módulo:Wikidata') |
||
local ModuloFormato = require('Módulo:Formato texto') |
local ModuloFormato = require('Módulo:Formato texto') |
||
local ModuloPaginas = require('Módulo:Páginas') |
local ModuloPaginas = require('Módulo:Páginas') |
||
local ModuloArgs = require('Módulo:Argumentos') |
|||
local argumento = ModuloArgs.obtenerValorDeArgumentos |
|||
local elementoTabla = require('Módulo:Tablas').elemento |
local elementoTabla = require('Módulo:Tablas').elemento |
||
local sinBandera = require('Módulo:Bandera').sinBandera |
local sinBandera = require('Módulo:Bandera').sinBandera |
||
Línea 18: | Línea 20: | ||
ModuloWikidata:setFrame(frame) |
ModuloWikidata:setFrame(frame) |
||
local valor = '' |
local valor = '' |
||
----argumento = obtenerArgumentosConValor(frame) |
|||
--return argumento['fecha primera piedra'] |
|||
obtenerArgumentosConValor(frame) |
|||
ModuloArgs.obtenerTablaDeArgumentos(frame) |
|||
return argumento['fecha primera piedra'] |
|||
return argumento{'fecha primera piedra'} |
|||
end |
end |
||
function z.Ficha(frame) |
function z.Ficha(frame) |
||
ModuloWikidata:setFrame(frame) |
ModuloWikidata:setFrame(frame) |
||
ModuloArgs.obtenerTablaDeArgumentos(frame) |
|||
obtenerArgumentosConValor(frame) |
|||
if argumento |
if argumento'wikidata' == 'no' then |
||
obtenerDatosWikidata = false -- sin uso ? |
|||
or argumento['fecha de demolición'] |
|||
) then |
|||
obtenerDatosWikidata = false |
|||
Entidad = nil |
Entidad = nil |
||
else |
else |
||
obtenerDatosWikidata = true |
obtenerDatosWikidata = true -- sin uso ? |
||
-- Obtener los datos de la página donde se inserta la ficha de Wikidata. |
-- Obtener los datos de la página donde se inserta la ficha de Wikidata. |
||
Entidad = mw.wikibase.getEntityObject(argumento |
Entidad = mw.wikibase.getEntityObject(argumento'id') or {} |
||
end |
end |
||
local |
local imagen = argumento{'imagen'} |
||
local pieDeImagen = argumento{'texto imagen', 'texto_imagen', 'pie de imagen', 'pie imagen', 'pie', 'pie_imagen'} |
|||
local tipodivadministrativa = argumento['tipo_división_administrativa'] |
|||
if not imagen then |
|||
local divadministrativa = argumento['división_administrativa'] |
|||
imagen, pieDeImagen = ModuloWikidata.obtenerImagenWikidata(Entidad, 'P18') |
|||
local imagen = argumento['imagen'] or argumento['Imagen'] or argumento['foto'] |
|||
local pieDeImagen |
|||
if imagen then |
|||
pieDeImagen = argumento['pie de imagen'] or argumento['pieimagen'] or |
|||
argumento['descripción'] or argumento['descripcion'] or |
|||
argumento['pie de foto'] or argumento['piedefoto'] or |
|||
argumento['textoimagen'] or argumento['TextoImagen'] or |
|||
argumento['texto_imagen'] or argumento['pie de foto'] |
|||
else |
|||
imagen, pieDeImagen = obtenerImagenWikidata() |
|||
end |
end |
||
nombre = argumento['nombre'] or argumento['Nombre'] or |
|||
local nombre = argumento{'nombre'} or |
|||
obtenerEtiquetaWikidata() or |
|||
-- ModuloWikidata.obtenerEtiquetaWikidata() or -- prioridad local |
|||
ModuloPaginas.nombrePagina({desambiguar='sí'}) |
ModuloPaginas.nombrePagina({desambiguar='sí'}) |
||
nombrelocal = argumento |
local nombrelocal = argumento{'nombre local', 'nombre_local', {propiedad, 'P1705'}} |
||
if |
if nombrelocal and nombrelocal ~= nombre then |
||
nombrelocal = '<i>' .. nombrelocal .. '</i>' |
|||
else |
else |
||
nombrelocal = nil |
|||
end |
end |
||
local color = obtenerColor() |
local color = obtenerColor() |
||
local estilotitulo = 'background-color:'..color.. '; font-style:normal' |
|||
local estiloseccion = 'background-color:'..color |
|||
local evsigs = devolverelemensigs(Entidad) |
local evsigs = devolverelemensigs(Entidad) |
||
local fechainicio |
local fechainicio = argumento{'inicio'} or (evsigs and evsigs['Q385378']) or '' |
||
local fechafin = argumento{'finalización', 'término'} or (evsigs and evsigs['Q385378']) or '' |
|||
if evsigs ~= nil then |
|||
local primerapiedra = argumento{'fecha primera piedra'} or (evsigs and evsigs['Q106863']) or '' |
|||
fechafin = argumento['fin'] or argumento['Fin'] or (evsigs['Q385378']) or '' |
|||
local direccionpostal = argumento{'dirección', 'calle', {propiedad, 'P6375'}, {obtenerCalle}} |
|||
primerapiedra = argumento['fecha primera piedra'] or argumento['Fecha primera piedra'] or evsigs['Q106863'] or '' |
|||
local codigopostal = argumento{'código postal', 'código_postal', {propiedad, 'P281'}} |
|||
else |
|||
fechainicio = argumento['inicio'] or argumento['Inicio'] |
|||
fechafin = argumento['fin'] or argumento['Fin'] or argumento['término'] |
|||
primerapiedra = argumento['fecha primera piedra'] or argumento['Fecha primera piedra'] |
|||
end |
|||
local direccionpostal = argumento['dirección'] or argumento['dirección postal'] or propiedad('P6375') or obtenerCalle() |
|||
local codigopostal = argumento['código postal'] or propiedad('P281') |
|||
if codigopostal then |
if codigopostal then |
||
direccionpostal = ModuloFormato.separadosPorComa({direccionpostal, codigopostal}) |
direccionpostal = ModuloFormato.separadosPorComa({direccionpostal, codigopostal}) |
||
end |
end |
||
local logotipo = argumento['logotipo'] or argumento['Logotipo'] or argumento['logo'] or argumento['Logotipo'] or propiedad('P154') |
|||
-- TODO: NUEVO -- sin uso ? |
|||
local logotipo = argumento{'logotipo', 'logo', {propiedad, 'P154'}} |
|||
if logotipo ~= nil then |
if logotipo ~= nil then |
||
logotipo = '[[Archivo:'..logotipo..']]' |
logotipo = '[[Archivo:'..logotipo..']]' |
||
end |
end |
||
local Ficha = |
local Ficha = |
||
{ |
{ |
||
tipocabecera = 'edificio', |
|||
estilotitulo = 'background-color:'..color, |
|||
estiloseccion = 'background-color:'..color, |
|||
estilosubtitulo = 'background-color:' .. color .. '; font-size:110%', |
|||
estiloetiqueta = 'width:33%;', |
|||
estilopie = 'font-size:95%', |
|||
['titulo'] = nombre, |
|||
['subtitulo'] = nombrelocal, |
|||
imagen = imagen, |
imagen = imagen, |
||
['tamañoimagen'] = argumento |
['tamañoimagen'] = argumento{'tamaño', 'tamaño_imagen'} or '275px', |
||
argumento['tamaño imagen'] or argumento['tamañoimagen'] or |
|||
argumento['tamañodelaimagen'] or argumento['tamaño de foto'] or |
|||
'220px', |
|||
pie = pieDeImagen, |
pie = pieDeImagen, |
||
{ '', logotipo }, |
|||
tipocabecera = 'edificio', |
|||
-- TODO: argumento{'mapa loc', 'mapa'}, argumento{'mapa alternativo'}, argumento{'tam mapa loc'} or '275', argumento{'mark'} or 'Red pog.svg', argumento{'marksize'} or '8', argumento{'pos etiqueta loc'}, argumento{'pie mapa'} |
|||
estilotitulo = estilotitulo, |
|||
{tipo = 'sección', |
|||
estiloseccion = estiloseccion, |
|||
['titulo'] = 'Localización', |
|||
{ 'País', sinBandera( argumento{'país', {propiedad, 'P17', {rango_mayor='sí'}}} ) }, |
|||
{'',logotipo}, |
|||
{ argumento{'tipo_división_administrativa', 'tipo_división'} or 'División', sinBandera( argumento{'división_administrativa', 'división'} ) }, |
|||
{tipo = "sección", |
|||
{ argumento{'tipo_subdivisión_administrativa', 'tipo_subdivisión'} or 'Subdivisión', sinBandera( argumento{'subdivisión_administrativa', 'subdivisión'} ) }, |
|||
['titulo'] = "Localización", |
|||
-- -- TODO: NUEVO |
|||
{'País', sinBandera( pais )}, |
|||
-- -- -- se repiten 'país'/P17, 'división', 'subdivisión' |
|||
{tipodivadministrativa, sinBandera( divadministrativa )}, |
|||
{' |
-- { 'Localidad', sinBandera( argumento{'localidad', 'municipio', 'ciudad', {propiedad, 'P276'}} ) }, |
||
{' |
-- { 'Ubicación', sinBandera( argumento{'localización', 'ubicación', {propiedad, 'P131', {uno='sí'}}} ) }, |
||
{ 'Localización', sinBandera( argumento{'localización', 'ubicación'} |
|||
ModuloFormato.enVariasLineas({ModuloFormato.separadosPorComa({argumento['ciudad'], argumento['estado'], argumento['país']})}) or |
|||
ModuloFormato.enVariasLineas({ |
or ModuloFormato.enVariasLineas({ModuloFormato.separadosPorComa({ |
||
argumento{'localidad', 'municipio', 'ciudad'}, argumento{'estado'}, argumento{'país'} |
|||
{'Dirección postal', sinBandera( direccionpostal )}, |
|||
})}) |
|||
or ModuloFormato.enVariasLineas({propiedad('P969'), ModuloFormato.separadosPorComa({propiedad('P131'),propiedad('P17')})}) ) |
|||
}, |
|||
{ 'Dirección', sinBandera( direccionpostal ) }, |
|||
{ 'Coordenadas' , argumento{ {propiedad, 'P625', {formato='dms', display='inline,title', tipo='landmark', uno='sí'}} } }, -- argumento{'coordenadas'} |
|||
}, |
}, |
||
{tipo = |
{tipo = 'sección', |
||
['titulo'] = |
['titulo'] = 'Información general', |
||
{'Nombres anteriores', argumento |
{ 'Nombres anteriores', argumento{'nombres anteriores', 'nombre anterior', 'nombre inicial'} }, |
||
{'Otros nombres',argumento |
{ 'Otros nombres', argumento{'otros nombres', 'otro nombre', {propiedad, 'P4970'}} }, |
||
{' |
{ 'Estado', argumento{'estado', 'condición', 'estatus'} }, |
||
{' |
{ 'Usos', argumento{'uso', 'usado', 'tipo', {propiedad, 'P366', {rango_mayor='sí'}}} }, |
||
{' |
{ 'Estilo', argumento{'estilo', {'P149'}} }, |
||
{'Catalogación', argumento |
{ 'Catalogación', argumento{'catalogación', {propiedad, 'P1435', {rango_mayor='sí'}}} }, |
||
{ |
{ 'Figura', argumento{'figura'} }, |
||
{ 'Declaración', argumento{'declaración', --[[ TODO: se repite con 'Catalogación': {propiedad, 'P1435', {calificador='P580'}}--]] } }, |
|||
{'Cruza',argumento['cruza'] or argumento['Cruza']}, |
|||
{ |
{ 'Código', argumento{'código', {propiedad, 'P808'}} }, |
||
{' |
{ 'Parte de', argumento{'partede', {propiedad, 'P361'}} }, |
||
{' |
{ 'Nombrado en honor a', argumento{'nombrado en honor a', 'etimología', {propiedad, 'P138'}} }, |
||
{' |
{ '[[Primera piedra]]', primerapiedra }, |
||
{ 'Inicio de obra', fechainicio }, |
|||
{'[[Coronación]]', argumento['coronación'] or argumento['Coronación']}, |
|||
{ '[[Coronación (arquitectura)|Coronación]]', argumento{'fecha coronación', 'coronación', 'coronado'} }, |
|||
{'Finalización de obra', fechafin}, |
|||
{ 'Finalización', fechafin }, -- TODO: 'Finalización estimada' argumento({'estim completado', 'estim_completado'}) |
|||
{'Fundación', argumento['fundación'] or argumento['Fundación'] or propiedad('P571')}, |
|||
{' |
{ 'Fundación', argumento{'fundación', 'año_construccion', 'construido', 'año construcción', 'año de construcción', 'construcción', {propiedad, 'P571', {uno='sí'}}} }, |
||
{ |
{ 'Inauguración', argumento{'fecha inauguración', 'fecha de inauguración', 'fecha de la inauguración', {propiedad, 'P1619', {uno='sí'}}} }, |
||
{ |
{ 'Cierre', argumento{'fecha del cierre'} }, |
||
{ argumento{'fecha demolición', 'demolición'} and 'Demolido' or 'Destruido', argumento{'fecha demolición', 'demolición', 'fecha destruido', 'destruido'} }, |
|||
{'Emergencias', argumento['emergencias'] or argumento['Emergencias']}, |
|||
{' |
{ 'Propietario', argumento{'propietario', 'dueño', {propiedad, 'P127'}} }, |
||
-- TODO: diferencia entre 'Arrendatario' y 'Ocupante' ? |
|||
{'Red', argumento['red'] or argumento['Red']}, |
|||
{' |
{ 'Arrendatario', argumento{'arrendatarios', 'arrendatario', 'inquilinos'} }, |
||
{' |
{ 'Ocupante', argumento{'ocupante', 'ocupantes', {propiedad, 'P466', {uno='sí'}}} }, |
||
-- -- TODO: NUEVO: -- sin uso ? |
|||
{'Financiamiento', argumento['financiamiento'] or argumento['Financiamiento']}, |
|||
-- { 'Organización', argumento{'organización', {propiedad, 'P749'}} }, |
|||
{'Coste', argumento['costo'] or argumento['coste'] or argumento['Coste'] or argumento['Costo'] or propiedad('P2130')}, |
|||
{' |
-- { 'Se conecta con', argumento{'se conecta con'} }, |
||
{ |
-- { 'Cruza', argumento{'cruza'} }, |
||
-- { 'Número de vanos', argumento{'ojos'} }, |
|||
{'Nombrado en honor a', argumento['nombrado en honor a'] or argumento['Nombrado en honor a'] or propiedad('P138')}, |
|||
-- { 'Clausura', argumento{'clausura', {propiedad, 'P3999'}} }, |
|||
{'[[Primera piedra]]', primerapiedra}, |
|||
{' |
-- { 'Número de camas', argumento{'camas', {propiedad, 'P6801'}} }, |
||
{' |
-- { 'Número de télefono', argumento{'teléfono', 'telefono', {propiedad, 'P1329'}} }, |
||
-- { 'Emergencias', argumento{'emergencias'} }, |
|||
-- { 'Afiliación', argumento{'afiliación', {propiedad, 'P1416'}} }, |
|||
-- { 'Red', argumento{'red'} }, |
|||
-- { 'Clasificación', argumento{'clasificación'} }, |
|||
-- { 'Especialidad', argumento{'especialidad'} }, |
|||
-- { 'Financiamiento', argumento{'financiamiento'} }, |
|||
}, |
}, |
||
{tipo = |
{tipo = 'sección', |
||
['titulo'] = |
['titulo'] = 'Altura', |
||
{ |
{ 'Máxima', argumento{'altura máxima', 'antena'} or obtenerAlturas().maxima }, |
||
{ |
{ 'Arquitectónica', argumento{'altura arquitectónica', 'altura'} or obtenerAlturas().altura }, |
||
{' |
{ 'Azotea', argumento{'azotea'} }, |
||
{ 'Piso más alto', argumento{'piso más alto', 'piso_mas_alto'} }, |
|||
{ 'Observatorio', argumento{'observatorio'} }, |
|||
}, |
}, |
||
{tipo= |
{tipo = 'sección', |
||
['título']= |
['título'] = 'Récord de altura', |
||
{'',argumento |
{ '', argumento{'más alto fecha', 'alto_fecha'} and '[[Anexo:Rascacielos más altos del mundo|Rascacielos más alto del mundo]] de ' .. argumento{'más alto fecha', 'alto_fecha'} }, |
||
{'Predecesor', argumento |
{ 'Predecesor', argumento{'más alto anterior', 'alto_anterior'} }, |
||
{'Sucesor', argumento |
{ 'Sucesor', argumento{'más alto siguiente', 'alto_siguiente'} }, |
||
-- TODO: NUEVO: { argumento{'récord de altura', 'record de altura'} }, -- sin uso ? |
|||
}, |
}, |
||
{tipo = |
{tipo = 'sección', |
||
['titulo'] = |
['titulo'] = 'Detalles técnicos', |
||
{' |
{ 'Sistema estructural', argumento{'sistema estructural'} }, |
||
{' |
{ 'Material', argumento{'material', 'materiales', {obtenerMaterial}} }, |
||
{ 'Diámetro', argumento{'diámetro'} }, |
|||
{'Número de plantas', argumento['numero de plantas'] or argumento['Numero de plantas'] or propiedad('P1101')}, |
|||
{ 'Superficie', argumento{'superficie', 'área planta', {obtenerSuperficie}} }, |
|||
{'Número de ascensores', argumento['numero de ascensores'] or argumento['Numero de ascensores'] or propiedad('P1301')}, |
|||
{ 'Superficie parcela', argumento{'superficie parcela'} }, |
|||
{ 'Plantas', argumento{'número de plantas', 'numero_plantas', 'cantidad pisos', 'plantas', {propiedad, 'P1101'}} }, |
|||
{ 'Ascensores', argumento{'número de ascensores', 'numero ascensores', {propiedad, 'P1301'}} }, |
|||
{ 'Otras dimensiones', argumento{'otras dimensiones'} }, |
|||
}, |
}, |
||
{tipo = |
{tipo = 'sección', |
||
['titulo'] = 'Diseño y construcción', |
['titulo'] = 'Diseño y construcción', |
||
{'Arquitecto', argumento |
{ 'Arquitecto', argumento{'arquitecto', 'arquitectos', {propiedad, 'P84'}} }, |
||
{' |
{ 'Fundador', argumento{'fundador', {propiedad, 'P112', {uno='sí'}}} }, |
||
{ |
{ 'Promotor', argumento{'promotor', 'promotora'} }, |
||
{ |
{ 'Constructor', argumento{'constructor', {propiedad, 'P193', {uno='sí'}}} }, |
||
{' |
{ 'Ingeniero', argumento{'ingeniero'} }, |
||
{'Ingeniero estructural', argumento |
{ 'Ingeniero estructural', argumento{'ingeniero estructural', {propiedad, 'P631'}} }, |
||
{' |
{ 'Ingeniero de servicios', argumento{'ingeniero de servicios'} }, |
||
{' |
{ 'Ingeniero civil', argumento{'ingeniero civil'} }, |
||
{' |
{ 'Otros', argumento{'otros'} }, |
||
{' |
{ 'Contratista', argumento{'contratista'} }, |
||
{ |
{ 'Viviendas', argumento{'número de viviendas'} }, |
||
{ 'Coste', argumento{'coste'} }, |
|||
{ 'Premios', argumento{'premios', {propiedad, 'P166'}} }, |
|||
{ 'Conocido por', argumento{'conocido por'} }, |
|||
}, |
}, |
||
{tipo = |
{tipo = 'sección', |
||
['titulo'] = |
['titulo'] = 'Remodelación', |
||
{' |
{ 'Fecha de remodelación', argumento{'fecha remodelación', 'remodelación', 'fecha de remodelación'} }, |
||
{' |
{ 'Coste remodelación', argumento{'coste remodelación'} }, |
||
{ |
{ 'Arquitecto', argumento{'rem arquitecto'} }, |
||
{' |
{ 'Ingeniero ', argumento{'rem ingeniero'} }, |
||
{' |
{ 'Ingeniero estructural', argumento{'rem ingeniero estructural'} }, |
||
{ 'Ingeniero de servicios', argumento{'rem ingeniero de servicios'} }, |
|||
{ 'Ingeniero civil', argumento{'rem ingeniero civil'} }, |
|||
{ 'Otros', argumento{'rem otros'} }, |
|||
{ 'Contratista', argumento{'rem contratista'} }, |
|||
{ 'Premios', argumento{'rem premios'} }, |
|||
}, |
}, |
||
{tipo = |
{tipo = 'sección', |
||
[ |
['titulo'] = 'Información religiosa', |
||
--Bar o restaurante |
|||
{"N.º de asientos", argumento["número de asientos"] or argumento["Número de asientos"] or argumento['asientos'] or propiedad("P1083")}, |
|||
{"N.º de tiendas", argumento['nro de tiendas'] or argumento['Nro de tiendas'] }, |
|||
--Hotel |
|||
{"N.º de habitaciones", argumento["nro de habitaciones"] or argumento["Nro de habitaciones"]}, |
|||
{"N.º de suites", argumento["nro de suites"] or argumento["Nro de suites"]}, |
|||
{"N.º de restaurantes", argumento["nro de restaurantes"] or argumento["Nro de restaurantes"]}, |
|||
{"N.º de bares", argumento["nro de bares"] or argumento["Nro de bares"]}, |
|||
{"Estrellas", argumento["estrellas"] or argumento["Estrellas"]}, |
|||
--Edificios religiosos |
--Edificios religiosos |
||
{ |
{ 'Culto', argumento{'culto', {propiedad, 'P140'}} }, |
||
{ |
{ argumento{'nombre_división_eclesiástica'} or 'Diócesis', argumento{'diócesis', 'división_eclesiástica', {propiedad, 'P708'}} }, |
||
{ argumento{'nombre_subdivisión_eclesiástica'} or '[[Parroquia (religión)|Parroquia]]', argumento{'subdivisión_eclesiástica', 'parroquia'} }, |
|||
{"Advocación", argumento["advocacion"] or argumento["Advocacion"] or propiedad("P825")}, |
|||
{ '[[Orden religiosa católica|Orden]]', argumento{'orden', {propiedad, 'P611'}} }, |
|||
{ 'Advocación', argumento{'advocación', {propiedad, 'P825'}} }, |
|||
{ 'Patrono', argumento{'patrono', {propiedad, 'P417'}} }, |
|||
{ 'Dedicación', argumento{'dedicación', {propiedad, 'P793', {calificador='Q1762010'}}} }, |
|||
{ 'Acceso público', argumento{'acceso'} }, |
|||
}, |
|||
{tipo = 'sección', |
|||
['titulo'] = 'Información militar', |
|||
--Edificios militares |
--Edificios militares |
||
{ |
{ 'Controlador', argumento{'controlado por'} }, |
||
{ |
{ 'Guarnición', argumento{'guarnición'} }, |
||
{ |
{ 'Comandante actual', argumento{'comandante actual'} }, |
||
{ 'Comandantes', argumento{'comandantes'} }, |
|||
{"Ocupantes", argumento["ocupantes"] or argumento["Ocupantes"] or propiedad("P466")}, |
|||
{ |
{ 'Batallas', argumento{'batallas'} }, |
||
{ |
{ 'Eventos', argumento{'eventos'} }, |
||
{ |
{ 'Período', argumento{'período'} }, |
||
}, |
}, |
||
{tipo = |
{tipo = 'sección', |
||
['titulo'] = |
['titulo'] = 'Otra información', |
||
{ |
{ 'Capacidad', argumento{'capacidad', 'aforo', {propiedad, 'P1083'}} }, |
||
--Bar o restaurante |
|||
{ 'N.º de asientos', argumento{'número de asientos', 'asientos', {propiedad, 'P1083'}} }, |
|||
{ 'N.º de tiendas', argumento{'número de tiendas'} }, |
|||
--Hotel |
|||
{ 'N.º de habitaciones', argumento{'número de habitaciones', 'habitaciones'} }, |
|||
{ 'N.º de suites', argumento{'número de suites', 'suites'} }, |
|||
{ 'N.º de restaurantes', argumento{'número de restaurantes'} }, |
|||
{ 'N.º de bares', argumento{'número de bares'} }, |
|||
{ 'Estrellas', argumento{'estrellas'} }, |
|||
{ 'Temática', argumento{'tema'} }, |
|||
{ 'Director', argumento{'director'} }, |
|||
{ 'Cadena', argumento{'cadena'} }, |
|||
}, |
}, |
||
{tipo = |
{tipo = 'sección', |
||
['titulo'] = |
['titulo'] = 'Sitio web', |
||
{ |
{ 'Sitio web', argumento{'sitio web', 'página web', 'url', {propiedad, 'P856'}} }, |
||
}, |
|||
{argumento['referencias'] or argumento['Referencias']}, |
|||
{tipo = 'sección', |
|||
} |
|||
['titulo'] = 'Referencias', |
|||
{'', argumento{'referencias'} }, |
|||
}, |
|||
{'', argumento{'ficha hija'} }, |
|||
} |
} |
||
return ModuloFicha.infobox(Ficha) |
return ModuloFicha.infobox(Ficha) |
||
end |
end |
||
-- helpers: |
|||
function obtenerImagenWikidata() |
|||
local imagen, valorImagen, piesDeImagen, k, pieDeImagen |
|||
if not Entidad then |
|||
return |
|||
end |
|||
local imagen = elementoTabla(Entidad, 'claims','P18',1) |
|||
if not imagen then |
|||
return |
|||
end |
|||
-- Obtener el nombre de la imagen |
|||
valorImagen = elementoTabla(imagen, 'mainsnak','datavalue','value') -- Por ejemplo, imagen.jpg |
|||
-- Obtener los pies de la imagen, uno por idioma |
|||
piesDeImagen = elementoTabla(imagen, 'qualifiers','P2096') |
|||
-- Encontrar el pie en español (aquel con datavalue.value.language = "es") |
|||
if piesDeImagen then |
|||
for k,pieDeImagen in pairs(piesDeImagen) do |
|||
if pieDeImagen.datavalue.value.language=='es' then |
|||
-- devolver la imagen y el texto del pie de la imagen en español |
|||
return valorImagen, pieDeImagen.datavalue.value.text |
|||
end |
|||
end |
|||
end |
|||
-- Si no hay pie de imagen en español comprueba si hay fecha especificada para la imagen |
|||
piesDeImagen = elementoTabla(imagen, 'qualifiers', 'P585') |
|||
if piesDeImagen and piesDeImagen[1] then |
|||
return valorImagen, nombre .. ' en ' .. require('Módulo:Wikidata/Fecha').FormateaFechaHora(piesDeImagen[1].datavalue.value, {['formatoFecha']='año',['enlace']='no'}) |
|||
end |
|||
-- Sin pie de imagen en español |
|||
return valorImagen |
|||
end |
|||
--function obtenerArgumentosConValor(frame) |
|||
-- local valor = '' |
|||
--argumento = obtenerArgumentosConValor(frame) |
|||
-- for i, j in pairs(frame.args) |
|||
-- do |
|||
-- valor = valor ..i..' '..j..' ' |
|||
-- argumento[i] = j |
|||
--end |
|||
--return |
|||
--end |
|||
function obtenerArgumentosConValor(frame) |
|||
local valor = '' |
|||
local aux = frame |
|||
while(aux ~= nil) |
|||
do |
|||
if aux.args ~= nil then |
|||
for i, j in pairs(aux.args) |
|||
do |
|||
valor = valor ..i..' '..j..' ' |
|||
argumento[i] = j |
|||
end |
|||
end |
|||
aux = aux:getParent() |
|||
end |
|||
return |
|||
end |
|||
function obtenerEtiquetaWikidata() |
|||
if Entidad and Entidad.labels and Entidad.labels.es then |
|||
return Entidad.labels.es.value |
|||
end |
|||
end |
|||
function propiedad(idPropiedad,opciones) |
function propiedad(idPropiedad,opciones) |
||
-- global Entidad |
|||
if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then |
|||
return ModuloWikidata.propiedad( Entidad, idPropiedad, opciones or {} ) |
|||
if not opciones then |
|||
opciones = {} |
|||
end |
|||
opciones['propiedad'] = idPropiedad |
|||
valorPropiedad = ModuloWikidata.getPropiedad(opciones,Entidad.claims[idPropiedad]) |
|||
if valorPropiedad and valorPropiedad:match('%[%[:d:') then |
|||
algunaPropiedadEnlazaWikidata = true |
|||
end |
|||
return valorPropiedad |
|||
end |
|||
end |
end |
||
Línea 379: | Línea 332: | ||
-- TODO: revisar colores y contraste |
-- TODO: revisar colores y contraste |
||
local colores = { |
local colores = { |
||
['hotel'] = '#A7D3F3', |
['hotel'] = '#A7D3F3', -- mejor que {{Ficha de hotel}} |
||
['edificio militar'] = '#665D1D', -- revisar, marrón demasiado oscuro, no se diferencia el texto |
['edificio militar'] = '#665D1D', -- revisar, marrón demasiado oscuro, no se diferencia el texto |
||
['cuartel'] = '#665D1D', -- ídem anterior |
['cuartel'] = '#665D1D', -- ídem anterior |
||
Línea 385: | Línea 338: | ||
['restaurante'] = '#BFFF00', -- ídem anterior |
['restaurante'] = '#BFFF00', -- ídem anterior |
||
['iglesia'] = '#F3D5E1', -- según {{Ficha de edificio religioso}} |
['iglesia'] = '#F3D5E1', -- según {{Ficha de edificio religioso}} |
||
['hospital'] = '# |
['hospital'] = '#EEE', -- según {{Ficha de hospital}} |
||
['monumento conmemorativo'] = '#D5D4FC' --según {{Ficha de monumento}} |
['monumento conmemorativo'] = '#D5D4FC', -- según {{Ficha de monumento}} |
||
} |
|||
local tipoedificio = elementoTabla(Entidad,'claims','P31',1,'mainsnak','datavalue') |
local tipoedificio = elementoTabla(Entidad,'claims','P31',1,'mainsnak','datavalue') |
||
tipoedificio = elementoTabla(tipoedificio,'value','id') |
tipoedificio = elementoTabla(tipoedificio,'value','id') |
||
local nombretipoedificio= mw.wikibase.getEntityObject(tipoedificio) |
local nombretipoedificio= mw.wikibase.getEntityObject(tipoedificio) |
||
nombretipoedificio = elementoTabla(nombretipoedificio,'labels','es','value') |
nombretipoedificio = elementoTabla(nombretipoedificio,'labels','es','value') |
||
local uso = argumento |
local uso = argumento{'tipo', 'uso', 'usos', {propiedad, 'P366'}} |
||
if uso == "militar" or uso == "Militar" then |
if uso == "militar" or uso == "Militar" then |
||
return colores['edificio militar'] |
return colores['edificio militar'] |
Revisión del 21:41 28 may 2020
Este módulo no tiene página de documentación[crear]
local z = {}
local args -- used as global in ModuloArgs
local Entidad -- used as global in local functions
local ModuloFicha = require('Módulo:Ficha')
local ModuloWikidata = require('Módulo:Wikidata')
local ModuloFormato = require('Módulo:Formato texto')
local ModuloPaginas = require('Módulo:Páginas')
local ModuloArgs = require('Módulo:Argumentos')
local argumento = ModuloArgs.obtenerValorDeArgumentos
local elementoTabla = require('Módulo:Tablas').elemento
local sinBandera = require('Módulo:Bandera').sinBandera
-- sin uso ?
local ModuloWikidataFormatos = require('Módulo:Wikidata/Formatos')
local formatoURL = ModuloWikidataFormatos.formatoURL
local sinEnlazar = {['enlace']='no', ['linkback']='sí'}
local sinLapiz = {}
function z.prueba(frame)
ModuloWikidata:setFrame(frame)
local valor = ''
----argumento = obtenerArgumentosConValor(frame)
--return argumento['fecha primera piedra']
ModuloArgs.obtenerTablaDeArgumentos(frame)
return argumento{'fecha primera piedra'}
end
function z.Ficha(frame)
ModuloWikidata:setFrame(frame)
ModuloArgs.obtenerTablaDeArgumentos(frame)
if argumento'wikidata' == 'no' then
obtenerDatosWikidata = false -- sin uso ?
Entidad = nil
else
obtenerDatosWikidata = true -- sin uso ?
-- Obtener los datos de la página donde se inserta la ficha de Wikidata.
Entidad = mw.wikibase.getEntityObject(argumento'id') or {}
end
local imagen = argumento{'imagen'}
local pieDeImagen = argumento{'texto imagen', 'texto_imagen', 'pie de imagen', 'pie imagen', 'pie', 'pie_imagen'}
if not imagen then
imagen, pieDeImagen = ModuloWikidata.obtenerImagenWikidata(Entidad, 'P18')
end
local nombre = argumento{'nombre'} or
-- ModuloWikidata.obtenerEtiquetaWikidata() or -- prioridad local
ModuloPaginas.nombrePagina({desambiguar='sí'})
local nombrelocal = argumento{'nombre local', 'nombre_local', {propiedad, 'P1705'}}
if nombrelocal and nombrelocal ~= nombre then
nombrelocal = '<i>' .. nombrelocal .. '</i>'
else
nombrelocal = nil
end
local color = obtenerColor()
local evsigs = devolverelemensigs(Entidad)
local fechainicio = argumento{'inicio'} or (evsigs and evsigs['Q385378']) or ''
local fechafin = argumento{'finalización', 'término'} or (evsigs and evsigs['Q385378']) or ''
local primerapiedra = argumento{'fecha primera piedra'} or (evsigs and evsigs['Q106863']) or ''
local direccionpostal = argumento{'dirección', 'calle', {propiedad, 'P6375'}, {obtenerCalle}}
local codigopostal = argumento{'código postal', 'código_postal', {propiedad, 'P281'}}
if codigopostal then
direccionpostal = ModuloFormato.separadosPorComa({direccionpostal, codigopostal})
end
-- TODO: NUEVO -- sin uso ?
local logotipo = argumento{'logotipo', 'logo', {propiedad, 'P154'}}
if logotipo ~= nil then
logotipo = '[[Archivo:'..logotipo..']]'
end
local Ficha =
{
tipocabecera = 'edificio',
estilotitulo = 'background-color:'..color,
estiloseccion = 'background-color:'..color,
estilosubtitulo = 'background-color:' .. color .. '; font-size:110%',
estiloetiqueta = 'width:33%;',
estilopie = 'font-size:95%',
['titulo'] = nombre,
['subtitulo'] = nombrelocal,
imagen = imagen,
['tamañoimagen'] = argumento{'tamaño', 'tamaño_imagen'} or '275px',
pie = pieDeImagen,
{ '', logotipo },
-- TODO: argumento{'mapa loc', 'mapa'}, argumento{'mapa alternativo'}, argumento{'tam mapa loc'} or '275', argumento{'mark'} or 'Red pog.svg', argumento{'marksize'} or '8', argumento{'pos etiqueta loc'}, argumento{'pie mapa'}
{tipo = 'sección',
['titulo'] = 'Localización',
{ 'País', sinBandera( argumento{'país', {propiedad, 'P17', {rango_mayor='sí'}}} ) },
{ argumento{'tipo_división_administrativa', 'tipo_división'} or 'División', sinBandera( argumento{'división_administrativa', 'división'} ) },
{ argumento{'tipo_subdivisión_administrativa', 'tipo_subdivisión'} or 'Subdivisión', sinBandera( argumento{'subdivisión_administrativa', 'subdivisión'} ) },
-- -- TODO: NUEVO
-- -- -- se repiten 'país'/P17, 'división', 'subdivisión'
-- { 'Localidad', sinBandera( argumento{'localidad', 'municipio', 'ciudad', {propiedad, 'P276'}} ) },
-- { 'Ubicación', sinBandera( argumento{'localización', 'ubicación', {propiedad, 'P131', {uno='sí'}}} ) },
{ 'Localización', sinBandera( argumento{'localización', 'ubicación'}
or ModuloFormato.enVariasLineas({ModuloFormato.separadosPorComa({
argumento{'localidad', 'municipio', 'ciudad'}, argumento{'estado'}, argumento{'país'}
})})
or ModuloFormato.enVariasLineas({propiedad('P969'), ModuloFormato.separadosPorComa({propiedad('P131'),propiedad('P17')})}) )
},
{ 'Dirección', sinBandera( direccionpostal ) },
{ 'Coordenadas' , argumento{ {propiedad, 'P625', {formato='dms', display='inline,title', tipo='landmark', uno='sí'}} } }, -- argumento{'coordenadas'}
},
{tipo = 'sección',
['titulo'] = 'Información general',
{ 'Nombres anteriores', argumento{'nombres anteriores', 'nombre anterior', 'nombre inicial'} },
{ 'Otros nombres', argumento{'otros nombres', 'otro nombre', {propiedad, 'P4970'}} },
{ 'Estado', argumento{'estado', 'condición', 'estatus'} },
{ 'Usos', argumento{'uso', 'usado', 'tipo', {propiedad, 'P366', {rango_mayor='sí'}}} },
{ 'Estilo', argumento{'estilo', {'P149'}} },
{ 'Catalogación', argumento{'catalogación', {propiedad, 'P1435', {rango_mayor='sí'}}} },
{ 'Figura', argumento{'figura'} },
{ 'Declaración', argumento{'declaración', --[[ TODO: se repite con 'Catalogación': {propiedad, 'P1435', {calificador='P580'}}--]] } },
{ 'Código', argumento{'código', {propiedad, 'P808'}} },
{ 'Parte de', argumento{'partede', {propiedad, 'P361'}} },
{ 'Nombrado en honor a', argumento{'nombrado en honor a', 'etimología', {propiedad, 'P138'}} },
{ '[[Primera piedra]]', primerapiedra },
{ 'Inicio de obra', fechainicio },
{ '[[Coronación (arquitectura)|Coronación]]', argumento{'fecha coronación', 'coronación', 'coronado'} },
{ 'Finalización', fechafin }, -- TODO: 'Finalización estimada' argumento({'estim completado', 'estim_completado'})
{ 'Fundación', argumento{'fundación', 'año_construccion', 'construido', 'año construcción', 'año de construcción', 'construcción', {propiedad, 'P571', {uno='sí'}}} },
{ 'Inauguración', argumento{'fecha inauguración', 'fecha de inauguración', 'fecha de la inauguración', {propiedad, 'P1619', {uno='sí'}}} },
{ 'Cierre', argumento{'fecha del cierre'} },
{ argumento{'fecha demolición', 'demolición'} and 'Demolido' or 'Destruido', argumento{'fecha demolición', 'demolición', 'fecha destruido', 'destruido'} },
{ 'Propietario', argumento{'propietario', 'dueño', {propiedad, 'P127'}} },
-- TODO: diferencia entre 'Arrendatario' y 'Ocupante' ?
{ 'Arrendatario', argumento{'arrendatarios', 'arrendatario', 'inquilinos'} },
{ 'Ocupante', argumento{'ocupante', 'ocupantes', {propiedad, 'P466', {uno='sí'}}} },
-- -- TODO: NUEVO: -- sin uso ?
-- { 'Organización', argumento{'organización', {propiedad, 'P749'}} },
-- { 'Se conecta con', argumento{'se conecta con'} },
-- { 'Cruza', argumento{'cruza'} },
-- { 'Número de vanos', argumento{'ojos'} },
-- { 'Clausura', argumento{'clausura', {propiedad, 'P3999'}} },
-- { 'Número de camas', argumento{'camas', {propiedad, 'P6801'}} },
-- { 'Número de télefono', argumento{'teléfono', 'telefono', {propiedad, 'P1329'}} },
-- { 'Emergencias', argumento{'emergencias'} },
-- { 'Afiliación', argumento{'afiliación', {propiedad, 'P1416'}} },
-- { 'Red', argumento{'red'} },
-- { 'Clasificación', argumento{'clasificación'} },
-- { 'Especialidad', argumento{'especialidad'} },
-- { 'Financiamiento', argumento{'financiamiento'} },
},
{tipo = 'sección',
['titulo'] = 'Altura',
{ 'Máxima', argumento{'altura máxima', 'antena'} or obtenerAlturas().maxima },
{ 'Arquitectónica', argumento{'altura arquitectónica', 'altura'} or obtenerAlturas().altura },
{ 'Azotea', argumento{'azotea'} },
{ 'Piso más alto', argumento{'piso más alto', 'piso_mas_alto'} },
{ 'Observatorio', argumento{'observatorio'} },
},
{tipo = 'sección',
['título'] = 'Récord de altura',
{ '', argumento{'más alto fecha', 'alto_fecha'} and '[[Anexo:Rascacielos más altos del mundo|Rascacielos más alto del mundo]] de ' .. argumento{'más alto fecha', 'alto_fecha'} },
{ 'Predecesor', argumento{'más alto anterior', 'alto_anterior'} },
{ 'Sucesor', argumento{'más alto siguiente', 'alto_siguiente'} },
-- TODO: NUEVO: { argumento{'récord de altura', 'record de altura'} }, -- sin uso ?
},
{tipo = 'sección',
['titulo'] = 'Detalles técnicos',
{ 'Sistema estructural', argumento{'sistema estructural'} },
{ 'Material', argumento{'material', 'materiales', {obtenerMaterial}} },
{ 'Diámetro', argumento{'diámetro'} },
{ 'Superficie', argumento{'superficie', 'área planta', {obtenerSuperficie}} },
{ 'Superficie parcela', argumento{'superficie parcela'} },
{ 'Plantas', argumento{'número de plantas', 'numero_plantas', 'cantidad pisos', 'plantas', {propiedad, 'P1101'}} },
{ 'Ascensores', argumento{'número de ascensores', 'numero ascensores', {propiedad, 'P1301'}} },
{ 'Otras dimensiones', argumento{'otras dimensiones'} },
},
{tipo = 'sección',
['titulo'] = 'Diseño y construcción',
{ 'Arquitecto', argumento{'arquitecto', 'arquitectos', {propiedad, 'P84'}} },
{ 'Fundador', argumento{'fundador', {propiedad, 'P112', {uno='sí'}}} },
{ 'Promotor', argumento{'promotor', 'promotora'} },
{ 'Constructor', argumento{'constructor', {propiedad, 'P193', {uno='sí'}}} },
{ 'Ingeniero', argumento{'ingeniero'} },
{ 'Ingeniero estructural', argumento{'ingeniero estructural', {propiedad, 'P631'}} },
{ 'Ingeniero de servicios', argumento{'ingeniero de servicios'} },
{ 'Ingeniero civil', argumento{'ingeniero civil'} },
{ 'Otros', argumento{'otros'} },
{ 'Contratista', argumento{'contratista'} },
{ 'Viviendas', argumento{'número de viviendas'} },
{ 'Coste', argumento{'coste'} },
{ 'Premios', argumento{'premios', {propiedad, 'P166'}} },
{ 'Conocido por', argumento{'conocido por'} },
},
{tipo = 'sección',
['titulo'] = 'Remodelación',
{ 'Fecha de remodelación', argumento{'fecha remodelación', 'remodelación', 'fecha de remodelación'} },
{ 'Coste remodelación', argumento{'coste remodelación'} },
{ 'Arquitecto', argumento{'rem arquitecto'} },
{ 'Ingeniero ', argumento{'rem ingeniero'} },
{ 'Ingeniero estructural', argumento{'rem ingeniero estructural'} },
{ 'Ingeniero de servicios', argumento{'rem ingeniero de servicios'} },
{ 'Ingeniero civil', argumento{'rem ingeniero civil'} },
{ 'Otros', argumento{'rem otros'} },
{ 'Contratista', argumento{'rem contratista'} },
{ 'Premios', argumento{'rem premios'} },
},
{tipo = 'sección',
['titulo'] = 'Información religiosa',
--Edificios religiosos
{ 'Culto', argumento{'culto', {propiedad, 'P140'}} },
{ argumento{'nombre_división_eclesiástica'} or 'Diócesis', argumento{'diócesis', 'división_eclesiástica', {propiedad, 'P708'}} },
{ argumento{'nombre_subdivisión_eclesiástica'} or '[[Parroquia (religión)|Parroquia]]', argumento{'subdivisión_eclesiástica', 'parroquia'} },
{ '[[Orden religiosa católica|Orden]]', argumento{'orden', {propiedad, 'P611'}} },
{ 'Advocación', argumento{'advocación', {propiedad, 'P825'}} },
{ 'Patrono', argumento{'patrono', {propiedad, 'P417'}} },
{ 'Dedicación', argumento{'dedicación', {propiedad, 'P793', {calificador='Q1762010'}}} },
{ 'Acceso público', argumento{'acceso'} },
},
{tipo = 'sección',
['titulo'] = 'Información militar',
--Edificios militares
{ 'Controlador', argumento{'controlado por'} },
{ 'Guarnición', argumento{'guarnición'} },
{ 'Comandante actual', argumento{'comandante actual'} },
{ 'Comandantes', argumento{'comandantes'} },
{ 'Batallas', argumento{'batallas'} },
{ 'Eventos', argumento{'eventos'} },
{ 'Período', argumento{'período'} },
},
{tipo = 'sección',
['titulo'] = 'Otra información',
{ 'Capacidad', argumento{'capacidad', 'aforo', {propiedad, 'P1083'}} },
--Bar o restaurante
{ 'N.º de asientos', argumento{'número de asientos', 'asientos', {propiedad, 'P1083'}} },
{ 'N.º de tiendas', argumento{'número de tiendas'} },
--Hotel
{ 'N.º de habitaciones', argumento{'número de habitaciones', 'habitaciones'} },
{ 'N.º de suites', argumento{'número de suites', 'suites'} },
{ 'N.º de restaurantes', argumento{'número de restaurantes'} },
{ 'N.º de bares', argumento{'número de bares'} },
{ 'Estrellas', argumento{'estrellas'} },
{ 'Temática', argumento{'tema'} },
{ 'Director', argumento{'director'} },
{ 'Cadena', argumento{'cadena'} },
},
{tipo = 'sección',
['titulo'] = 'Sitio web',
{ 'Sitio web', argumento{'sitio web', 'página web', 'url', {propiedad, 'P856'}} },
},
{tipo = 'sección',
['titulo'] = 'Referencias',
{'', argumento{'referencias'} },
},
{'', argumento{'ficha hija'} },
}
return ModuloFicha.infobox(Ficha)
end
-- helpers:
function propiedad(idPropiedad,opciones)
-- global Entidad
return ModuloWikidata.propiedad( Entidad, idPropiedad, opciones or {} )
end
--Devuelve la fecha de inicio y fin de la construcción
function obtenerfechasObra(unaTabla)
-- TODO: MóduloWikidataFormatos.formatoPeriodo ?
--local evsig = elementoTabla(Entidad, 'claims','P793',1)
--local construccion = elementoTabla(Entidad,'claims','P793',1)
local precision = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','precision')
if precision ~= 11 then
return
end
local fechainicio = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','time')
local anyoinicio = tonumber(fechainicio:sub(2,5))
local mesinicio = tonumber(fechainicio:sub(7,8))
local diainicio = tonumber(fechainicio:sub(10,11))
local fechafin = elementoTabla(unaTabla,'qualifiers','P582',1,'datavalue','value','time')
local anyofin = tonumber(fechafin:sub(2,5))
local mesfin = tonumber(fechafin:sub(7,8))
local diafin = tonumber(fechafin:sub(10,11))
local meses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"}
local retorno = {}
retorno['fechainicio'] = diainicio ..' de '..meses[mesinicio]..' de '..anyoinicio
retorno['fechafin'] = diafin..' de '..meses[mesfin]..' de ' ..anyofin
return retorno
end
--Devuelve la fecha ceremonia de inauguración
function devolvercereminaug(unaTabla)
-- TODO: MóduloWikidataFormatos.formatoPeriodo ?
local precision = elementoTabla(unaTabla,'qualifiers','P580',1,'datavalue','value','precision') -- 'fecha de inicio'
if precision ~= 11 then
return
end
local fecha = elementoTabla(unaTabla,'qualifiers','P585',1,'datavalue','value','time') -- 'fecha'
local anyo = tonumber(fechainicio:sub(2,5))
local mes = tonumber(fechainicio:sub(7,8))
local meses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"}
local dia = tonumber(fechainicio:sub(10,11))
local fecha = elementoTabla(unaTabla,'qualifiers','P582',1,'datavalue','value','time') -- 'fecha de fin'
local retorno = dia .."de" ..meses[mes] .. "de" ..anyo
return retorno
end
--Devuelve los campos de elementos significativos de Wikidata
function devolverelemensigs(unaEntidad)
local evsigs = elementoTabla(unaEntidad,'claims','P793') -- 'evento significativo'
if evsigs == nil then
return
end
local elementos = {}
for i, j in pairs(evsigs)
do
valorQ = elementoTabla(j,'mainsnak','datavalue','value','id')
if valorQ == 'Q385378' then -- 'construcción'
elementos[valorQ] = obtenerfechasObra(j)
elseif valorQ == 'Q3010369' then -- 'ceremonia de inauguración'
elementos[valorQ] = devolvercereminaug(j)
elseif valorQ == 'Q744913' then -- 'accidente de aviación'
elementos[valorQ] = elementoTabla(construccion,'qualifiers','P805',1,'datavalue','value','id')
elseif valorQ == 'Q1068633' then -- 'primera piedra'
elementos[valorQ] = elementoTabla(construccion,'qualifiers','P585',1,'datavalue','value','time')
end
end
return elementos
end
function obtenerColor()
-- TODO: revisar colores y contraste
local colores = {
['hotel'] = '#A7D3F3', -- mejor que {{Ficha de hotel}}
['edificio militar'] = '#665D1D', -- revisar, marrón demasiado oscuro, no se diferencia el texto
['cuartel'] = '#665D1D', -- ídem anterior
['bar'] = '#BFFF00', -- revisar, verde claro intenso, fosforito ?
['restaurante'] = '#BFFF00', -- ídem anterior
['iglesia'] = '#F3D5E1', -- según {{Ficha de edificio religioso}}
['hospital'] = '#EEE', -- según {{Ficha de hospital}}
['monumento conmemorativo'] = '#D5D4FC', -- según {{Ficha de monumento}}
}
local tipoedificio = elementoTabla(Entidad,'claims','P31',1,'mainsnak','datavalue')
tipoedificio = elementoTabla(tipoedificio,'value','id')
local nombretipoedificio= mw.wikibase.getEntityObject(tipoedificio)
nombretipoedificio = elementoTabla(nombretipoedificio,'labels','es','value')
local uso = argumento{'tipo', 'uso', 'usos', {propiedad, 'P366'}}
if uso == "militar" or uso == "Militar" then
return colores['edificio militar']
end
return colores[nombretipoedificio] or '#ddd' -- según {{Ficha de edificio}} [original]
end
function obtenerSuperficie()
-- global Entidad
local frame = mw.getCurrentFrame()
local valor = {}
local datos = elementoTabla(Entidad,'claims','P2046') -- 'superficie'
if datos ~= nil then
for i, j in pairs(datos)
do
local medida = elementoTabla(j,'mainsnak','datavalue','value','amount')
local unidad = elementoTabla(j,'mainsnak','datavalue','value','unit')
if medida ~= nil then
unidad = mw.ustring.gsub(unidad, '^.-/(Q%d+)$', '%1')
if unidad ~= 'Q25343' then -- unidades en 'metro cuadrado'
local unidades = {
-- véanse valores admitidos para 'superficie' en https://www.wikidata.org/wiki/Property:P2046#P2302
['Q2737347' ] = 'mm2',
['Q2489298' ] = 'cm2',
['Q25343' ] = 'm2', -- unidad de destino
['Q712226' ] = 'km2',
['Q185078' ] = 'dam2',
['Q35852' ] = 'ha',
['Q81292' ] = 'acre',
['Q232291' ] = 'sqmi',
['Q857027' ] = 'sqft',
['Q1063786' ] = 'sqin',
-- ['Q21074767'] = 'sqvt', -- medida antigua en desuso, [[versta]] cuadrada
-- ['Q669931' ] = 'dessiatin', -- medida antigua en desuso
-- ['Q935614' ] = 'rai', -- medida antigua en desuso
-- ['Q216795' ] = 'dunam', -- medida antigua en desuso, [[dunam]]
-- ['Q23931103'] = 'nmi²', -- no para edificios
-- ['Q254532' ] = 'sqdeg', -- no para edificios
-- ? 'sqyd'
}
medida = frame:preprocess('{{Convertir|' .. medida .. '|' .. unidades[unidad] .. '|m2|abr=3|disp=#}}')
end
table.insert( valor, frame:preprocess('{{Unidad|' .. tostring( tonumber( medida ) ) .. '|[[metro cuadrado|m²]]}}') )
end
end
end
return mw.text.listToText( valor, ' o ', ' o ' )
end
function obtenerAlturas()
-- global Entidad
local frame = mw.getCurrentFrame()
local valor = {}
local datos = elementoTabla(Entidad,'claims','P2048') -- 'altura'
if datos ~= nil then
local valores = {}
local altmax = ''
local altarq = ''
for i, j in pairs(datos)
do
local medida = elementoTabla(j,'mainsnak','datavalue','value','amount')
local unidad = elementoTabla(j,'mainsnak','datavalue','value','unit')
if medida ~= nil then
unidad = mw.ustring.gsub(unidad, '^.-/(Q%d+)$', '%1')
if unidad ~= 'Q11573' then -- unidades en 'metro'
local unidades = {
-- véanse valores admitidos para 'altura' en https://www.wikidata.org/wiki/Property:P2048#P2302
['Q174789'] = 'mm',
['Q174728'] = 'cm',
-- ['Q11573'] = 'm', -- unidad de destino
['Q828224'] = 'km',
['Q218593'] = 'in',
['Q3710' ] = 'ft',
-- ['Q355198' ] = 'pixel', -- no para edificios
-- ['Q7673190'] = 'celda', -- no para edificios
-- ? 'yd'
}
medida = frame:preprocess('{{Convertir|' .. medida .. '|' .. unidades[unidad] .. '|m|abr=3|disp=#}}')
end
valores[i] = tonumber( medida )
local texto = frame:preprocess('{{Unidad|' .. tostring( valores[i] ) .. '|[[metro|m]]}}')
local parte = elementoTabla(j,'qualifiers','P518',1,'datavalue','value','id')
if parte == 'Q26970842' then -- 'altura máxima'
if altmax ~= '' then
altmax = altmax .. ' o '
end
altmax = altmax .. texto
elseif parte == 'Q24192182' then -- 'altura arquitectónica'
if altarq ~= '' then
altarq = altarq .. ' o '
end
altarq = altarq .. texto
end
end
end
-- cuando no se especifica la 'altura máxima' se muestra la máxima altura disponible:
if altmax == '' and #valores > 0 then
altmax = 0
for i,j in pairs(valores)
do
if altmax < tonumber(j) then
altmax = tonumber(j)
end
end
altmax = frame:preprocess('{{Unidad|' .. tostring(altmax) .. '|[[metro|m]]}}')
end
-- -- cuando no se especifica la 'altura arquitectónica' se muestran todas las alturas disponibles:
-- if altarq == '' and #valores > 0 then
-- altarq = ''
-- for i,j in pairs(valores)
-- do
-- if altarq ~= '' then
-- altarq = altarq .. ' o '
-- end
-- altarq = frame:preprocess('{{Unidad|' .. tostring(j) .. '|[[metro|m]]}}')
-- end
-- end
valor.maxima = altmax
valor.altura = altarq
end
return valor
end
function obtenerCalle()
-- global Entidad
local valor = {}
local datos = elementoTabla(Entidad,'claims','P669') -- 'calle'
if datos ~= nil then
for i, j in pairs(datos)
do
local qid = elementoTabla(j,'mainsnak','datavalue','value','id')
local obj = mw.wikibase.getEntityObject(qid)
if obj ~= nil then
local titulo = elementoTabla(obj,'labels','es','value')
local pagina = obj:getSitelink('eswiki')
if titulo ~= nil then
local entrada = ''
if pagina ~= nil then
entrada = '[[' .. pagina .. '|' .. titulo .. ']]'
else
entrada = titulo
end
local nrocalle = elementoTabla(j,'qualifiers','P670',1,'datavalue','value')
if nrocalle ~= nil then
entrada = entrada .. ' n.º ' .. nrocalle
end
table.insert( valor, entrada )
end
end
end
end
return mw.text.listToText( valor )
end
function obtenerMaterial()
-- global Entidad
local valor = {}
local datos = elementoTabla(Entidad,'claims','P186') -- 'material empleado'
if datos ~= nil then
for i,j in pairs(datos)
do
local qid = elementoTabla(j,'mainsnak','datavalue','value','id')
local obj = mw.wikibase.getEntityObject(qid)
if obj ~= nil then
local titulo = elementoTabla(obj,'labels','es','value')
local pagina = obj:getSitelink('eswiki')
if titulo ~= nil then
if pagina ~= nil then
table.insert( valor, '[[' .. pagina .. '|' .. titulo .. ']]' )
else
table.insert( valor, titulo )
end
end
end
end
end
return mw.text.listToText( valor )
end
return z