Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Portada
mantenimiento
Páginas nuevas
Página aleatoria
Cambios recientes
Páginas especiales
Ayuda
Comunidad
Portal de la comunidad
Centro de reportes
Tablón de solicitudes
Tutorial de edición
Políticas
Buscar
Buscar
Apariencia
Crear una cuenta
Acceder
Herramientas personales
Crear una cuenta
Acceder
Páginas para editores desconectados
más información
Contribuciones
Discusión
Edición de «
Módulo:Wikidata/Formato lugar
»
Módulo
Discusión
English
Leer
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar código
Ver historial
Actualizar
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Enlace corto
En otros proyectos
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
local p = {} local separadosPorComa = require('Módulo:Formato texto').separadosPorComa local moduloTablas = require('Módulo:Tablas') local elementoTabla = moduloTablas.elemento local moduloWikidataFormatos = require('Módulo:Wikidata/Formatos') local enlazar = moduloWikidataFormatos.enlazar local obtenerDatos = moduloWikidataFormatos.obtenerDatos local Date = require('Módulo:Date')._Date function p.formatoLugar(valor, opciones, frame, calificativos) -- Función que devuelve algo de la forma Lugar, entidad territorial administrativa, país function obtenerOcurrenciaAFecha(tabla, fecha) if not tabla or not fecha then return end local fechaInicio, fechaFin fecha = Date(fecha) --if true then return require('Módulo:Tablas').tostring(tabla) end -- for k,v in pairs(tabla) do fechaInicio = elementoTabla(v,'qualifiers','P580',1,'datavalue','value','time') fechaFin = elementoTabla(v,'qualifiers','P582',1,'datavalue','value','time') fechaInicio = Date(fechaInicio) fechaFin = Date(fechaFin) if fechaInicio and fechaFin then if fecha >= fechaInicio and fecha <= fechaFin then return k end elseif fechaInicio then if fecha >= fechaInicio then return k end elseif fechaFin then if fecha <= fechaFin then return k end end end end function obtenerOcurrenciaRangoPreferente(tabla) if not tabla then return end for k,v in pairs(tabla) do if v.rank == 'preferred' then return k end end end local idLugar, enlaceLugar, etiquetaLugar, lugarEnlazado local entidadTerritorialAdministrativaEnlazada local idPais, enlacePais, etiquetaPais, paisEnlazado local fecha -- Validar que está informado el id del lugar. if not valor or not valor['numeric-id'] then return end if opciones then fecha = opciones.fecha end -- Obtener primero la entidad territorial administrativa y el país de los calificativos si es posible -- No se obtiene primero el lugar, que sería lo más lógico, porque se obtendrá de forma diferente según -- estén o no informados los calificativos if calificativos then entidadTerritorialAdministrativaEnlazada = enlazar(obtenerDatos(elementoTabla(calificativos,'P131',1,'datavalue','value'))) enlacePais, etiquetaPais, idPais = obtenerDatos(elementoTabla(calificativos,'P17',1,'datavalue','value')) paisEnlazado = enlazar(enlacePais, etiquetaPais, idPais) end if paisEnlazado then enlaceLugar, etiquetaLugar, idLugar = obtenerDatos(valor) lugarEnlazado = enlazar(enlaceLugar, etiquetaLugar, idLugar) else -- Si el lugar no tiene el calificativo de país obtenerlo de la propiedad país de la -- entidad de Wikidata del lugar. -- De momento no se obtiene la entidad administrativa (tiene unas barbaridades...) local entidad idLugar = 'Q' .. valor['numeric-id'] entidad = mw.wikibase.getEntityObject(idLugar) if not entidad then return end enlaceLugar = elementoTabla(entidad,'sitelinks','eswiki','title') etiquetaLugar = elementoTabla(entidad,'labels','es','value') lugarEnlazado = enlazar(enlaceLugar, etiquetaLugar, idLugar, opciones) -- -- Obtener el país del lugar. -- local paisesLugar = elementoTabla(entidad,'claims','P17') if paisesLugar then -- Primero se intenta con el país en la fecha de las opciones, luego -- el país con rango máximo (el actual) y luego el primer país. local ocurrenciaPais = obtenerOcurrenciaAFecha(paisesLugar, fecha) or obtenerOcurrenciaRangoPreferente(paisesLugar) or 1 enlacePais, etiquetaPais, idPais = obtenerDatos(elementoTabla(paisesLugar,ocurrenciaPais,'mainsnak','datavalue','value')) paisEnlazado = enlazar(enlacePais, etiquetaPais, idPais) end end if idLugar == idPais then -- Si el lugar es un país, por ejemplo, estados Unidos, en Wikidata tiene la propiedad país informada con Estados Unidos. return lugarEnlazado elseif lugarEnlazado and entidadTerritorialAdministrativaEnlazada and paisEnlazado then return lugarEnlazado .. ' (' .. entidadTerritorialAdministrativaEnlazada .. ', ' .. paisEnlazado .. ')' elseif lugarEnlazado and entidadTerritorialAdministrativaEnlazada then return lugarEnlazado .. ' (' .. entidadTerritorialAdministrativaEnlazada .. ')' elseif lugarEnlazado and paisEnlazado then return lugarEnlazado .. ' (' .. paisEnlazado .. ')' elseif entidadTerritorialAdministrativaEnlazada and paisEnlazado then return entidadTerritorialAdministrativaEnlazada .. ' (' .. paisEnlazado .. ')' else return lugarEnlazado or entidadTerritorialAdministrativaEnlazada or paisEnlazado end end --***************************************************************************** -- Alias de formatos para utilizar en la plantilla propiedad --***************************************************************************** p['lugar'] = p['formatoLugar'] return p
Resumen:
Ten en cuenta que todas las contribuciones a Netxipedia se consideran publicadas bajo la Creative Commons Atribución-CompartirIgual (véase
Netxipedia:Derechos de autor
para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre.
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Entidades de Netxipedia usadas en esta página
P131
: Etiqueta: es, Etiqueta: en
P17
: Etiqueta: es, Etiqueta: en
P19
: Etiqueta: es, Etiqueta: en
P20
: Etiqueta: es, Etiqueta: en
P582
: Etiqueta: es, Etiqueta: en
Plantillas usadas en esta página:
Plantilla:Ep
(
editar
)
Plantilla:Epc
(
editar
)
Plantilla:Q
(
editar
)
Plantilla:Str left
(
editar
)
Módulo:Wikibase
(
editar
)
Módulo:Wikidata/Formato lugar/doc
(
editar
)
Buscar
Buscar
Edición de «
Módulo:Wikidata/Formato lugar
»
Añadir tema