local z = {}
local argumentos -- Tabla de argumentos con los que se llama a la función
local argumento={} -- Argumentos eliminando los argumentos sin datos
local Entidad -- Tabla con los datos en Wikidata del libro.
-- Ver Wikidata:WikiProject Books para las propicedades posibles
local algunaPropiedadEnlazaWikidata -- Para alguna propiedad no existe la etiqueta ni el enlace mostrándose algo de la forma d:...
-- Módulos utilizados
local ModuloArgumentos = require('Módulo:Argumentos')
local ModuloFicha = require('Módulo:Ficha')
local ModuloFormato = require('Módulo:Formato texto')
--local ModuloIdentificadores = require('Módulo:Identificadores')
local ModuloPaginas = require('Módulo:Páginas')
--local ModuloWikidataFormatos = require('Módulo:Wikidata/Formatos')
local ModuloWikidata = require('Módulo:Wikidata')
local ModuloTablas = require('Módulo:Tablas')
--local ModuloURL = require('Módulo:URL')
-- Constantes
--local enMayusculas = {['formatoTexto'] = 'mayúscula'}
--local enMayusculasO = {['formatoTexto'] = 'mayúscula', ['conjunción']=' o '}
--local listaNoOrdenada = {['lista'] = 'no ordenada'} --, ['debeExistir'] = 'sí'
--local lugar = {['conjunción']=' o ', ['valor-función'] = ModuloWikidataFormatos.formatoLugar}
--local debeExistir = {['debeExistir'] = 'sí'}
--local conPeriodo = {['lista'] = 'no ordenada', ['formatoTexto'] = 'mayúscula', ['calificativo'] = ModuloWikidataFormatos.formatoPeriodo}
function z.Ficha(frame)
-- Hacer que funcione la función formatBandera y formatoGentilicio
ModuloWikidata:setFrame(frame) -- No funciona si se pone ModuloWikidata.setFrame(marco)
--Obtener una copia de los argumentos eliminando los argumentos sin valor
local argumento = ModuloArgumentos.obtenerArgumentosConValor(frame)
-- Obtener datos complejos
-- Obtener los datos de la página donde se inserta la ficha de Wikidata.
Entidad = mw.wikibase.getEntityObject() or {}
--if true then
-- return ModuloTablas.tostring(Entidad)
--end
nombre = argumento['nombre'] or
obtenerEtiquetaWikidata() or
ModuloPaginas.nombrePagina({desambiguar='sí'})
-- Para los lemas ver la propiedad P1451, Wharton Business School
local lema = ModuloFormato.enCursivas (argumento['lema'] , argumento['lemaref'])
local lemaesp = ModuloFormato.entreComillas(argumento['lemaesp'], argumento['lemaespref'])
local tipocabecera = 'libro'
local estilotitulo = 'background-color:#ffe8b8'
local tipoCentro = propiedad('P31') or ''
if tipoCentro:find('universidad') then
tipocabecera = 'universidad'
estilotitulo = 'background-color:#cddefe'
end
local estudiantes = argumento['estudiantes']
local listaEstudiantes = ''
if estudiantes then
listaEstudiantes = ' • '
end
local Ficha = {
--clase = 'biography vcard',
-- Título
tipocabecera = tipocabecera,
titulo = nombre,
estilotitulo = estilotitulo,
subtitulo = argumento['traducción nombre'],
estilosubtitulo = 'font-style:italic; font-size: 80%;' .. estilotitulo,
estiloseccion = estilotitulo,
estilopie = 'font-size: x-small',
--Imagen
imagen = argumento['escudo'] or (
(not argumento['escudo'] and not argumento['logo'] and not argumento['imagen'])
and (propiedad('P94', {['uno'] = 'sí'}) or propiedad('P154', {['uno'] = 'sí'}))),
['tamañoimagen']= argumento['tamaño escudo'] or '90px',
pie = argumento['pie escudo'],
imagen2 = argumento['imagen'] or
propiedad('P18', {uno='sí'}),
['tamañoimagen2']= '270px',
pie2 = argumento['pie de imagen'] or argumento['pie_de_imagen'],
imageninferior = argumento['logo'],
['tamañoimageninferior'] = argumento['tamaño logo'],
pieinferior = argumento['pie logo'],
piedetabla = argumento['notas'] and ('<hr/><span style="font-size:90%">' .. argumento['notas'] .. '</span>'),
{tipo='sección',
{'[[Sigla]]' , argumento['sigla']},
{'[[Acrónimo]]', argumento['acrónimo']},
{'[[Sobrenombre]]' , argumento['sobrenombre']},
{'[[Lema]]' , ModuloFormato.enVariasLineas({lema, lemaesp})},
{'Tipo' , argumento['tipo']},
--{'Universidad' , argumento['universidad']},
{'Forma parte de' , argumento['universidad'] or propiedad('P361')},
{'Fundación' , argumento['fundación'] or propiedad('P571', {['enlace'] = 'no'})},
{'Fundador' , argumento['fundador'] or propiedad('P112')},
},
{tipo='sección',
['titulo'] = 'Localización',
{'País', argumento['pais']},
{'Division', argumento['division_administrativa']},
{'Subdivisión', argumento['subdivision_administrativa']},
{'Municipio', argumento['municipio']},
{'Dirección', argumento['localización'] or
ModuloFormato.enVariasLineas({argumento['dirección'],
ModuloFormato.separadosPorComa({argumento['ciudad'], argumento['estado'], argumento['país']})}) or
ModuloFormato.enVariasLineas({propiedad('P969'), --Dirección postal
ModuloFormato.separadosPorComa({propiedad('P131'),propiedad('P17')})})}, --
{'[[Campus]]' , argumento['campus']},
{'Coordenadas' , argumento['coor'] or argumento['coordenadas'] or propiedad('P625', {formato='dms', display='inline,title', tipo='edu', uno='sí'})},
{'Otras sedes' , argumento['sedes']},
{'Transporte público', argumento['transporte']},
},
{tipo='sección',
['titulo'] = ModuloFormato.entreParentesis('Administración', argumento['admin_año']),
{'[[Rector]]', argumento['rector']},
{'[[Rector|Rectora]]', argumento['rectora']},
{'Vicerrector', argumento['vicerrector']},
{'Vicerrectora', argumento['vicerrectora']},
{'Canciller' , argumento['canciller']},
{'Vicecanciller', argumento['vice canciller']},
{'Presidente' , argumento['presidente']},
{'Presidenta' , argumento['presidenta']},
{'Director' , argumento['director']},
{'Directora' , argumento['directora']},
{'Decano' , argumento['decano']},
{'Decana' , argumento['decana']},
{'Vicedecana' , argumento['vicedecana']},
{'Vicedecano' , argumento['vicedecano']},
{argumento['administrador'], argumento['nombre administrador']},
{'Afiliaciones', argumento['afiliaciones']},
{'[[Dotación financiera|Dotación de capital]]', argumento['dotación de capital']},
{'[[Presupuesto]]', argumento['presupuesto']},
{'Funcionarios', argumento['funcionarios']},
{'Administrativos', argumento['administrativos']},
{'Gobierno Estudiantil', argumento['gobiernoestudiantil']},
{'Presidente Estudiantil', argumento['presidenteestudiantil']},
{'Jefe de Estudios' , argumento['jefedeestudios']},
{'Jefa de Estudios' , argumento['jefadeestudios']},
{'Secretaría' , argumento['secretaria']},
{'[[Asociación de Madres y Padres de Alumnos]]' , argumento['ampa']},
{'Centros asociados', argumento['centrosasociados']},
},
{tipo='sección',
['titulo'] = ModuloFormato.entreParentesis('Academia', argumento['academia_año']),
{'[[Profesor]]es' , argumento['profesores']},
{'Empleados' , argumento['empleados']},
{'Docentes' , argumento['docentes']},
{'[[Estudiante]]s', estudiantes},
{listaEstudiantes .. '[[Bachillerato]]', argumento['bachillerato']},
{listaEstudiantes .. '[[Pregrado]]' , argumento['pregrado']},
{listaEstudiantes .. '[[Posgrado]]' , argumento['posgrado'] or argumento['postgrado']},
{listaEstudiantes .. '[[Doctorado]]' , argumento['doctorado']},
{listaEstudiantes .. 'Colegiales' , argumento['colegiales']},
{listaEstudiantes .. 'Titulados' , argumento['titulados']},
{listaEstudiantes .. 'Otros' , argumento['otros_estudiantes']},
{'[[Mascota (símbolo)|Mascota]]', argumento['mascota']},
{'Colores', argumento['colores']},
{'Colores académicos', argumento['colores académicos']},
{'Colores deportivos', argumento['colores deportivos']},
},
{tipo='sección',
['titulo'] = 'Sitio web',
{'', argumento['sitio web'] or propiedad('P856')},
},
}
categorias = ''
if algunaPropiedadEnlazaWikidata then
categorias = '[[Categoría:Wikipedia:Páginas con propiedades de Wikidata sin etiqueta]]'
end
if ( mw.title.getCurrentTitle().namespace == 0 ) then
if (argumento['coor'] or argumento['coordenadas']) and propiedad('P625', {formato='dms', display='inline', tipo='edu', uno='sí'}) then
categorias = categorias .. '[[Categoría:Wikipedia:Artículos con coordenadas locales]]'
elseif argumento['coor'] or argumento['coordenadas'] then
categorias = categorias .. '[[Categoría:Wikipedia:Artículos con coordenadas por trasladar a Wikidata]]'
end
end
--if educacion and almamater then
-- categorias = categorias .. '[[Categoría:Wikipedia:Páginas que tienen informado el campo educación]]'
--end
return ModuloFicha.infobox(Ficha) .. categorias
end
-- Función que devuelve la lista de los valores de una propiedad en Wikidata formateados
function propiedad(idPropiedad,opciones)
if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then
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
function obtenerEtiquetaWikidata()
if Entidad and Entidad.labels and Entidad.labels.es then
return Entidad.labels.es.value
end
end
return z