Bahaipedia
Bahaipediaدانشنامه بهائی
Menú
Cambios recientes
Haga su pregunta
Página al azar
Categorías
Ayuda en Wikipedia
En otros proyectos
Herramientas
Lo que enlaza aquí
Cambios relacionados
Subir archivo
Páginas especiales
Versión para imprimir
Enlace permanente
Información de la página
Módulo
Discusión
Ver historial
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Navigation
Navigation
Navegación
Navigation
ナビゲーション
Điều hướng
导航
Navegação
ناوبری
Навигация
Cambios recientes
Haga su pregunta
Página al azar
Categorías
Ayuda en Wikipedia
En otros proyectos
Learn more
Weitere Informationen
Aprender más
En savoir plus
詳しく読む
Tìm hiểu thêm
了解更多
Saiba mais
یاد بگیرید بیشتر
Узнать больше
Fe bahá’í
Bahá’u’lláh
‘Abdu’l-Bahá
Principios bahá’ís
Tools
Werkzeuge
Herramientas
Outils
ツール
Công cụ
工具
Ferramentas
ابزارها
Инструменты
Lo que enlaza aquí
Cambios relacionados
Subir archivo
Páginas especiales
Versión para imprimir
Enlace permanente
Información de la página
Translations
Übersetzungen
Traducciones
Traductions
各言語版
Bản dịch
翻译
Traduções
به زبان‌های دیگر
Переводы

Módulo:Ficha Wikidata

De Bahaipedia
Saltar a:navegación, buscar

--[[
   *****************************************************************
   * Nombre: Módulo:Ficha Wikidata
   * Descripción: Este módulo genera una ficha solo con los valores
   *               de todas las propiedades de Wikidata
   * Estado: En creación
   *****************************************************************
]]
local p = {}
local ficha = require('Módulo:Ficha')
local Wikidata = require( 'Módulo:Ficha/Wikidata')
local elemento = mw.wikibase.getEntityObject() --Tabla con todos los datos de Wikidata
local es = mw.language.new('es') -- Configuración de idioma español
local marco
local cd = true 
local pais, web, mapa, unidad = '';

--[[
  ====================================================================
    Eliminar propiedades irrelevantes
  ====================================================================
  ]]
function filtrarPropiedades(propComprobar)
 
--   == Popiedades que no aparecerán en ninguna ficha ==
 
    local propIrrelevantes = {'P107','P646','P373','P214','P227','P244','P213','P1025', 'P268','P345','P269','P948','P402','P910','P968','P998','P982','P349', 'P865', 'P434', 'P906', 'P865', 'P935', 'P691','P1036','P1273','P1566', 'P1465', 'P1792','P1464','P2498','P2581','P1296','P6665'} 
 
--  == Comprobamos coincidencia ==
 
    for k,v in pairs(propIrrelevantes) do -- Se comprueba si coincide propiedad con propComprobar
       if propComprobar == v then return false end -- Si hay coincidencia devuelve false
    end
    return true -- Si no hay coincidencia devuelve true
end
--[[
  ====================================================================
    Seleccionamos configuración
  ====================================================================
  ]]
function configuracion(tablaValor,propiedades)
  --[[ 
  local formato = include('Módulo:Ficha Wikidata/Formatos')
  if formato.getTablaParametros(tablaValor, propiedades) ~= nil then
      return formato.getTablaParametros(tablaValor,propiedades)
  end
  ]]
  local tablaParametros = {}
  local valorID = tablaValor[1]['mainsnak']['datavalue']['value']['numeric-id']
  local valor = mw.wikibase.label('q'.. valorID)
    if valor == 'ser humano' then
        tablaParametros['tipocabecera'] = 'humano fn'         
        tablaParametros['clase'] = 'biography vcard'
        tablaParametros['colorfondo'] = '#8DB1C3'
        tablaParametros['colortexto'] = '#fff'
 
elseif valor == 'ciudad' or valor == 'localidad' or valor == 'villa' or valor == 'pueblo' or valor == 'municipio' or valor == 'comuna' or valor == 'barrio' or valor == 'concejo' or valor == 'capital' then
        local coor  = {}
        local pais
        tablaParametros['tipocabecera'] = 'mapa fn org' 
        tablaParametros['clase'] = 'geography vcar'
        tablaParametros['colorfondo'] = 'transparet'
        --tablaParametros['estilosubtitulo1']  = 'line-height: 2.4em; padding:3px; font-size:100%; font-weight:bold; background-color:#cddeff'
        --tablaParametros['estiloetiqueta'] = 'line-height: 1.4em; padding:1px 7px'
       -- tablaParametros['estilodatos'] = 'line-height: 1.4em; padding:1px 7px 1px 1px'
        tablaParametros['estiloetiqueta'] = 'padding:2px 7px;'
        tablaParametros['estilodatos'] = 'padding:2px 7px 1px 1px'
       
        for k, v in pairs(propiedades) do
           mw.log('propiedades esp '.. v.propiedad)
           if v.propiedad == 'P625' then -- Coordenadas
           	        tablaParametros['estiloetiqueta1'] = 'font-size:100;padding:0px 7px'
                    tablaParametros['etiqueta1'] = '[[Coordenadas geográficas|Coordenadas]]'
                    tablaParametros['estilodatos1'] = 'white-space:nowrap;padding:0px 1px 1px 1px'
                    tablaParametros['datos1'] = Wikidata.getDeclaracion(v.valor, v.propiedad, nil, nil, nil, nil)  
                    coor['latitud'] = Wikidata.getDeclaracion(v.valor, 'latitud', nil, nil, nil, nil) 
                    coor['longitud'] = Wikidata.getDeclaracion(v.valor, 'longitud', nil, nil, nil, nil) 
                    table.remove (propiedades, k)
                    cd = false
           elseif v.propiedad == 'P12' and pais then
              tablaParametros['etiqueta2'] = tostring('[[Entidad subnacional|Unidad]]')
              unidad = Wikidata.getDeclaracion(v.valor, v.propiedad, nil, nil, nil, nil) 
              tablaParametros['datos2'] = unidad
              tablaParametros['subtitulo1'] =	unidad .. ' de ' .. pais
           elseif v.propiedad == 'P37' then
              tablaParametros['estiloetiqueta3'] = 'border:0;font-weight:100; padding:0px 7px'
              tablaParametros['estilodatos3'] = 'border:0;font-weight:100;padding:0px 1px 0px 1px'
              tablaParametros['etiqueta3'] = tostring('• [[Anexo:Países|País]]')
              tablaParametros['datos3'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '<br>', 'Wikidata/Formatos', 'formatBandera2', nil, nil)
              mapa = Wikidata.getDeclaracion(v.valor, v.propiedad, nil, nil, nil, nil,'no')
              pais = Wikidata.getDeclaracion(v.valor, v.propiedad, nil, nil, nil, nil)
          elseif v.propiedad == 'P131' then
              tablaParametros['estiloetiqueta4'] = 'border:0;font-weight:100; padding:0px 7px'
              tablaParametros['estilodatos4'] = 'border:0;font-weight:100;padding:0px 1px 1px 1px'
              cd = false
              tablaParametros['etiqueta4'] = ''
              --local entidad = Wikidata.getDeclaracion(v,k , '<br>&bull;&nbsp; ','Wikidata/Formatos' ,'formatId' , nil, nil, nil,'P12')
              --local entidadComparar = Wikidata.getDeclaracion(v.valor, v.propiedad,'', 'Wikidata/Formatos','formatId' , 'no', nil, nil,'P12')
              mw.log(entidadComparar)
             -- if entidad and entidad ~= '' then
               --   tablaParametros['etiqueta4'] = '&bull;&nbsp;' .. entidad
             -- else
              --    tablaParametros['etiqueta4'] = '&bull;&nbsp;Entidades superiores'
             -- end
              --tablaParametros['datos4'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '<br>', 'Wikidata/Formatos', 'formatBandera2', nil,nil, entidadComparar) 
              tablaParametros['datos4'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '<br>', 'Wikidata/Formatos', 'formatFicha')
          end
          local nombre = Wikidata.getEtiqueta()
          if mapa and nombre and coor  then
          	  tablaParametros['estiloimagen'] = 'padding:0.8em 0.7em 0em 0.7em; text-align:center'
              tablaParametros['imagenflotante'] = 'si' 
              tablaParametros['imagen'] = require('Módulo:Ficha Wikidata/Mapa').mapaLoc(mapa, nombre, coor, marco)
              tablaParametros['estilopie'] = 'font-size:smaller; font-weight:bold'
              tablaParametros['pie'] ='Ubicación de ' .. nombre.. ' en ' .. mapa
          end    
    end
    elseif valor == 'provincia' or valor =='estado' or valor =='región' or valor =='comunidad autónoma'or valor == 'departamento' or valor =='comarca' or valor =='merindad' or valor =='partido judicial' then
        tablaParametros['colorfondo'] = 'transparet'
        tablaParametros['tipocabecera'] = 'mapa fn org' 
        tablaParametros['clase'] = 'geography vcar'
    elseif valor == 'pais' or valor == 'estado soberano' then
        tablaParametros['tipocabecera'] = 'mapa fn org' 
        tablaParametros['clase'] = 'geography vcar'
 
    elseif valor == 'monte' or valor == 'montaña' or valor == 'volcán'then
        tablaParametros['tipocabecera'] = 'mapa fn org'
        tablaParametros['colorfondotitulo'] = '#e7dcc3'
        --tablaParametros['colortexto'] = '#fff'
        tablaParametros['estiloetiqueta'] = 'background-color:#e7dcc3;'
    elseif valor == 'rio' or valor == 'océano' or valor == 'canal' or valor == 'Pólder' or valor == 'isla artificial' or valor == 'isla fluvial' or valor == 'mar'  or valor =='lago' or valor == 'fiordo' or valor == 'golfo' or valor == 'estrecho' then
        tablaParametros['tipocabecera'] = 'mapa fn org'
        tablaParametros['colorfondotitulo'] = '#7793E0'
        tablaParametros['colortexto'] = '#fff'
        tablaParametros['estiloetiqueta'] = 'background:#ddf'
        --tablaParametros['clase'] = 'geography vcar'
    elseif valor == 'revista' then
    	tablaParametros['tipocabecera'] = 'revista'
        tablaParametros['colorfondotitulo'] = '#D2691E'
        tablaParametros['colortexto'] = '#fff'
        tablaParametros['estiloetiqueta'] = 'background-color:#D2691E; color:#fff;'
    elseif valor == 'libro' then
    	tablaParametros['tipocabecera'] = libro
    	tablaParametros['colorfondotitulo'] = '#ddf'
        tablaParametros['estiloetiqueta'] = 'padding:1px 8px'
    elseif valor == 'Arboreto' or valor == 'parque' then
    	tablaParametros['tipocabecera'] = libro
    	tablaParametros['colorfondotitulo'] = '#d0f0c0'
    elseif valor == 'museo' or valor == 'museo de artes' then	
        tablaParametros['tipocabecera']  = 'conflicto'
        tablaParametros['estilotitulo']  = 'color:white'
        tablaParametros['colorfondotitulo'] = '#996633'	
        tablaParametros['colortexto'] = '#fff'
    else
        tablaParametros['colorfondotitulo'] = '#ddf'
        tablaParametros['estiloetiqueta'] = 'padding:1px 8px'
    end
    return tablaParametros
end

function ordenarPropiedades(propiedades) 
	local propiedadesOrdenadas = {}
	local num=1
    for k,v in pairs(propiedades) do
	     if  string.find(k,'P%d+') and v ~= '' then -- Comprobamos que son propiedades
	     	--local num = tostring(k):match('^P([1-9]%d*)$')
	     	--[[if k == 'P12' then 
	     		propiedadesOrdenadas[1] = {propiedad = k, valor = v }
	     	elseif k == 'P37' then 
	     	    propiedadesOrdenadas[2] = {propiedad = k, valor = v }	
	     	else
	     	   num  = mw.ustring.gsub(k,'P','')
	     	   mw.log(num)
	     	   num = tonumber(num)
	     	   propiedadesOrdenadas[num] = {propiedad = k, valor = v }
	     	end]]
	     	propiedadesOrdenadas[num]  = {propiedad = k, valor = v }
	     	num = num+1
     	end
    end
    table.sort(propiedadesOrdenadas,function(a1,a2) return a1.propiedad < a2.propiedad end)
    return propiedadesOrdenadas
end
local function getPropiedadNums(num)
    return  tonumber(mw.ustring.gsub(num,'P',''))
end
--[[
  ====================================================================
    Pasamos las datos de Wikidata a una tabla
  ====================================================================
]]
 
function leerEtiquetas()   
    local propiedades = {}
    local annadirFila = {} 
    local nuevasFilas = {}
    local etiquetaFicha ={}
    local num = 8
    if Wikidata.getDeclaraciones() ~= '' then
        propiedades = Wikidata.getDeclaraciones()
        if propiedades == nil then return nil end 
        propiedades = ordenarPropiedades(propiedades) 
        for k,v in pairs(propiedades) do
         mw.log('clave '.. v.propiedad )
            --if  string.find(k,'P%d+') then -- Comprobamos que son propiedades
                if v.propiedad == 'P35' then -- Imagen
                    annadirFila['imagensuperior'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '', nil, nil, nil) 
                elseif v.propiedad == 'P12' then -- instancia de
                    nuevasFilas  = configuracion(v.valor,propiedades)
                elseif v.propiedad == 'P154' then -- Imagen Logo
                    annadirFila['imagenderecha'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '', nil, nil, nil)    
                 elseif v.propiedad == 'P041' then -- Imagen de la bandera
                    annadirFila['imagenizquierda'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '', nil, nil, nil) 
                    annadirFila['estilopieizquierdo'] = 'font-size:smaller; font-weight:bold'
                    annadirFila['pieizquierdo'] = 'Bandera'
                elseif v.propiedad == 'P94' then -- Imagen del Escudo
                    annadirFila['imagenderecha'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '', nil, nil, nil)   
                    annadirFila['estilopiederecho'] = 'font-size:smaller; font-weight:bold'
                    annadirFila['piederecho'] =  'Escudo'
                elseif v.propiedad == 'P368' then -- prueba commons archivo multimedia
                    annadirFila['imagen'] =  Wikidata.getDeclaracion(v.valor, v.propiedad, '', nil, nil, nil)    
                elseif v.propiedad == 'P163' then -- Artículo de la bandera
                    annadirFila['pieizquierdo'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '', nil, nil, nil) 
                elseif v.propiedad == 'P237' then -- Artículo del escudo
                    annadirFila['piederecho'] =  Wikidata.getDeclaracion(v.valor, v.propiedad, '', nil, nil, nil) 
                elseif v.propiedad == 'P242' then -- mapa de localización
                    annadirFila['imagen']= '[[Archivo:'.. Wikidata.getDeclaracion(v.valor, v.propiedad, '|245px]]<br>[[Archivo:', nil, nil, nil)..'|245px]]'
                elseif v.propiedad == 'P856' then -- mapa de localización
                    web = Wikidata.getDeclaracion(v.valor, v.propiedad,nil, nil, nil, nil)    
                elseif v.propiedad == 'P37' then -- 
                    annadirFila['etiqueta2'] = '[[País]]'
                    pais = Wikidata.getDeclaracion(v.valor, v.propiedad, nil, nil,nil, nil)
                    annadirFila['datos2'] =  Wikidata.getDeclaracion(v.valor, v.propiedad, '<br>', 'Wikidata/Formatos', 'formatBandera2', nil)
                elseif v.propiedad == 'P131' then  
                    annadirFila['etiqueta3'] = '[[d:Property:' .. k .. '|Situado en unidad administrativa]]'
                    annadirFila['datos3'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '<br>', 'Wikidata/Formatos', 'formatBandera2', nil)     
                elseif v.propiedad == 'P625' and cd then -- Coordenadas
                    annadirFila['etiqueta4'] = '[[Coordenadas geográficas|Coordenadas]]'
                    annadirFila['datos4'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '<br>', nil, nil, nil) 
                elseif v.propiedad == 'P06' then -- Jefe de gobierno
                	local cadenaEtiqueta, cadenaDatos
                        local mandatario = Wikidata.getDeclaracion(v.valor, v.propiedad,'<br>')
                	local cargo = Wikidata.getDeclaracion(v.valor, v.propiedad,'', 'Wikidata/Formatos','formatId' , nil, nil, nil,'P039')
                	local partido = Wikidata.getDeclaracion(v.valor, v.propiedad,'', 'Wikidata/Formatos','formatId' ,nil, nil, nil,'P102')
                	local mandato = ''
                	if cargo and cargo ~= '' and  mandato and mandato ~= '' then
                		cadenaEtiqueta = cargo .. '&nbsp;(' .. mandato .. ')'
                	elseif 	cargo and cargo ~= '' then
                		cadenaEtiqueta = cargo
                    else 
                           cadenaEtiqueta = '[[d:Property:P6|Jefe de gobierno]]'
                	end
                	
                    if partido and partido ~= '' then
                           cadenaDatos = mandatario .. '&nbsp;(' .. partido .. ')'
                    else
                           cadenaDatos = mandatario
                    end	
                	annadirFila['etiqueta6'] = cadenaEtiqueta
                        annadirFila['datos6'] = cadenaDatos 
                elseif v.propiedad == 'P1082' then -- Población
                	local censo = Wikidata.getDeclaracion(v.valor, v.propiedad, nil, nil, nil,'P585')
                	annadirFila['estiloetiqueta8'] = 'border:0;font-weight:100'
                    annadirFila['estilodatos8'] = 'border:0;font-weight:100'
                	if censo and censo ~= '' then
                         annadirFila['etiqueta7'] = '[[Población]]&nbsp;('.. censo ..')'
                    else
                	     annadirFila['etiqueta7'] = '[[Población]]' 
                	end
                	annadirFila['datos7'] = '&nbsp;'  
                	annadirFila['etiqueta8'] =  '&bull;&nbsp;Total'
                    annadirFila['datos8'] = Wikidata.getDeclaracion(v.valor, v.propiedad, '<br>', nil, nil, nil) .. ' hab.'    
                
                elseif filtrarPropiedades(v.propiedad) then    	
                        num = num + 1
                        if mw.wikibase.label(v.propiedad) ~= nil and mw.wikibase.label(v.propiedad) ~= '' then
                        	etiquetaFicha = es:ucfirst( mw.wikibase.label(v.propiedad))
                        else
                        	etiquetaFicha = k 
                        end	
                        annadirFila['etiqueta' .. num] = '[[d:Property:' .. v.propiedad .. '|'.. etiquetaFicha .. ']]'
                        annadirFila['datos' .. num] = Wikidata.getDeclaracion(v.valor, v.propiedad, '<br>', nil, nil, nil)                                 
                end
 
            end   
        end
 
        annadirFila['titulo'] = Wikidata.getEtiqueta()
        annadirFila['estilotitulo'] = 'padding:0'  
        annadirFila['estilosubtitulo1'] = 'font-size:100%; font-weight:bold; background-color:#cddeff'
 
        annadirFila['estilodatos'] = 'padding:1px 8px 1px 1px'
        annadirFila['tamañoimagenizquierda'] = '100x78px'
        annadirFila['tamañoimagenderecha'] = '88x88px'
        annadirFila['tamañoimagensuperior'] = '245px'
        annadirFila['tamañoimagen'] = '245px'
        annadirFila['tamañoimagen1'] = '245px' 
        annadirFila['tamañoimageninferior'] = '245px'
        if web ~= '' and web ~= nil then
            annadirFila['datos' .. num+1]  = '['.. web .. ' Sitio web oficial]'
        end
        for k,v in pairs(nuevasFilas) do
                    annadirFila[k] = v -- Cargamos las filas según la configuración en la tabla
                end
        return  annadirFila
   --else 
       -- return nil
  -- end
end
 
--[[
  ====================================================================
    Función principal
  ====================================================================
]]
 
function _principal()
 
    local parametros = leerEtiquetas()
    if parametros ~= nil then
      return ficha.infobox(parametros)
    else
      return '<span class="error">Página sin enlace a Wikidata</span>'         
    end
end
 
function p.principal(frame)
    marco = frame
    Wikidata:setFrame(marco)
    return _principal()
end

return p
Obtenido de «https://es.bahaipedia.org/index.php?title=Módulo:Ficha_Wikidata&oldid=2454»
Categoría:
  • Wikidata
Esta página se editó por última vez el 2 ene 2024 a las 19:01.
El contenido está disponible bajo la licencia Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License a menos que se indique lo contrario.
Política de privacidad
Acerca de Bahaipedia
Descargos
Powered by MediaWiki