Diferencia entre revisiones de «Módulo:Sucesiones»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Simplifico el estilo
usar mw.html en vez del módulo htmlbuilder
Línea 2: Línea 2:


-- Módulos utilizados
-- Módulos utilizados
local HtmlBuilder = require('Module:HtmlBuilder')
--local HtmlBuilder = require('Module:HtmlBuilder') -- Obsoleto. Usar mw.html
local ModuloTablas = require('Module:Tablas')
local ModuloTablas = require('Module:Tablas')
local ModuloWikidata = require('Module:Wikidata')
local ModuloWikidata = require('Module:Wikidata')


Línea 24: Línea 24:
etiquetaWikidata = Entidad.labels.es.value
etiquetaWikidata = Entidad.labels.es.value
sucesion = HtmlBuilder.create('table')
sucesion = mw.html.create('table')
.addClass('wikitable')
:addClass('wikitable')
.css('text-align', 'center')
:css('text-align', 'center')
.css('width','100%')
:css('width','100%')
.css('clear','both')
:css('clear','both')
.css('font-size','90%')
:css('font-size','90%')
sucesion.tag('tr')
sucesion:tag('tr')
.tag('th').wikitext('Predecesor')
:tag('th'):wikitext('Predecesor')
.css('width','30%')
:css('width','30%')
.css('background-color','#FFEC80')
:css('background-color','#FFEC80')
.tag('th').wikitext("Premios de ''" .. etiquetaWikidata .. "''")
:tag('th'):wikitext("Premios de ''" .. etiquetaWikidata .. "''")
.css('background-color','#FFEC80')
:css('background-color','#FFEC80')
.tag('th').wikitext('Sucesor')
:tag('th'):wikitext('Sucesor')
.css('width','30%')
:css('width','30%')
.css('background-color','#FFEC80')
:css('background-color','#FFEC80')
-- Grabar los datos obtenidos de Wikidata en una tabla
-- Grabar los datos obtenidos de Wikidata en una tabla
Línea 78: Línea 78:
-- Formatear los datos obtenidos
-- Formatear los datos obtenidos
for k,premio in pairs(nombrePremios) do
for k,premio in pairs(nombrePremios) do
fila = sucesion.tag('tr')
fila = sucesion:tag('tr')
-- Predecesor
-- Predecesor
Línea 92: Línea 92:
idPredecesores[k] == idPredecesores[k + 2] then
idPredecesores[k] == idPredecesores[k + 2] then
fila.tag('td').wikitext(tituloPredecesor)
fila:tag('td'):wikitext(tituloPredecesor)
.attr('rowspan', 3)
:attr('rowspan', 3)
elseif idPredecesores[k] and idPredecesores[k] == idPredecesores[k + 1] then
elseif idPredecesores[k] and idPredecesores[k] == idPredecesores[k + 1] then
fila.tag('td').wikitext(tituloPredecesor)
fila:tag('td'):wikitext(tituloPredecesor)
.attr('rowspan', 2)
:attr('rowspan', 2)
else
else
fila.tag('td').wikitext(tituloPredecesor)
fila:tag('td'):wikitext(tituloPredecesor)
end
end
end
end


fila.tag('td').wikitext(nombrePremios[k])
fila:tag('td'):wikitext(nombrePremios[k])
-- Sucesor
-- Sucesor
Línea 116: Línea 116:
idSucesores[k] == idSucesores[k + 2] then
idSucesores[k] == idSucesores[k + 2] then
fila.tag('td').wikitext(tituloSucesor)
fila:tag('td'):wikitext(tituloSucesor)
.attr('rowspan', 3)
:attr('rowspan', 3)
elseif idSucesores[k] and idSucesores[k] == idSucesores[k + 1] then
elseif idSucesores[k] and idSucesores[k] == idSucesores[k + 1] then
fila.tag('td').wikitext(tituloSucesor)
fila:tag('td'):wikitext(tituloSucesor)
.attr('rowspan', 2)
:attr('rowspan', 2)
else
else
fila.tag('td').wikitext(tituloSucesor)
fila:tag('td'):wikitext(tituloSucesor)
end
end
end
end

Revisión del 20:47 25 feb 2015

Icono de documentación de módulo Documentación del módulo[ver] [editar] [historial] [purgar]

A continuación se muestra la documentación transcluida desde la subpágina /doc. [salta a la caja de código]


Uso


Esta documentación está transcluida desde Módulo:Sucesiones/doc.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.

local z = {}

-- Módulos utilizados
--local HtmlBuilder     = require('Module:HtmlBuilder') -- Obsoleto. Usar mw.html
local ModuloTablas    = require('Module:Tablas')
local ModuloWikidata  = require('Module:Wikidata')

local Entidad       -- Tabla con los datos en Wikidata del libro.
local etiquetaWikidata

function z.sucesionPremios(frame)
    -- Obtener los datos de la página donde se inserta la ficha de Wikidata.
    Entidad = mw.wikibase.getEntityObject()
    
    -- Obra sin etiqueta en Wikidata
    if not Entidad or not Entidad.labels or not Entidad.labels.es then
    	return
    end
    -- Obra sin premios en Wikidata
    if not Entidad.claims or not Entidad.claims['P166'] then
    	return
    end
    
    etiquetaWikidata = Entidad.labels.es.value
    
    sucesion = mw.html.create('table')
                :addClass('wikitable')
                :css('text-align', 'center')
                :css('width','100%')
                :css('clear','both')
                :css('font-size','90%')
                
    sucesion:tag('tr')
                :tag('th'):wikitext('Predecesor')              
                          :css('width','30%')                          
                          :css('background-color','#FFEC80')                          
                :tag('th'):wikitext("Premios de ''" .. etiquetaWikidata .. "''")
                          :css('background-color','#FFEC80')                
                :tag('th'):wikitext('Sucesor')                                                    
                          :css('width','30%')    
                          :css('background-color','#FFEC80')                          
	-- Grabar los datos obtenidos de Wikidata en una tabla
	
    nombrePremios  = {}
    idPredecesores = {}
    idSucesores    = {}
    
    for k,premio in pairs(Entidad.claims['P166']) do   
        nombrePremios[k] = ModuloWikidata.formatoIdEntidad('Q' .. premio.mainsnak.datavalue.value['numeric-id'],
    	    	{['enlace'] = 'sí', ['calificativo']   = 'P585'})    	
    	
    	-- Premio con fecha    
    	if premio.qualifiers and premio.qualifiers.P585 and premio.qualifiers.P585[1] then 
    	    anyoPremio = ModuloWikidata.formatoDato(premio.qualifiers.P585[1],
    	    	{['enlace'] = 'sí', ['formatoTexto']='mayúscula'})
    	    nombrePremios[k] = nombrePremios[k] .. ' (' .. anyoPremio .. ')'
    	end
    	
    	if premio.qualifiers                   and 
    	   premio.qualifiers.P155              and 
    	   premio.qualifiers.P155[1]           and 
    	   premio.qualifiers.P155[1].datavalue and 
    	   premio.qualifiers.P155[1].datavalue.value then     	
    	
    	    idPredecesores[k] = premio.qualifiers.P155[1].datavalue.value['numeric-id']
    	end
    	
    	if premio.qualifiers                   and 
    	   premio.qualifiers.P156              and 
    	   premio.qualifiers.P156[1]           and 
    	   premio.qualifiers.P156[1].datavalue and 
    	   premio.qualifiers.P156[1].datavalue.value then     	
    	
    	    idSucesores[k] = premio.qualifiers.P156[1].datavalue.value['numeric-id']
    	end    	
    end
    
    -- Formatear los datos obtenidos
    for k,premio in pairs(nombrePremios) do   
    	fila = sucesion:tag('tr')  
    	
    	-- Predecesor
    	if not idPredecesores[k] or idPredecesores[k] ~= idPredecesores[k - 1] then
    	    if idPredecesores[k] then
    	        tituloPredecesor = "''" .. ModuloWikidata.formatoIdEntidad('Q' .. idPredecesores[k],
    	    	    {['enlace'] = 'sí'}) .. "''"
    	    else
    		    tituloPredecesor = '-'
    	    end
    		
    		if idPredecesores[k] and idPredecesores[k] == idPredecesores[k + 1] and 
    		   idPredecesores[k] == idPredecesores[k + 2] then
    		   	
    	    	fila:tag('td'):wikitext(tituloPredecesor)
    		        :attr('rowspan', 3) 		   	
    	    elseif idPredecesores[k] and idPredecesores[k] == idPredecesores[k + 1] then
    	    	fila:tag('td'):wikitext(tituloPredecesor)
    		        :attr('rowspan', 2)		        
    		else
    		    fila:tag('td'):wikitext(tituloPredecesor)    		    
    		end
    	end

    	fila:tag('td'):wikitext(nombrePremios[k])      		
    		
    	-- Sucesor
    	if not idSucesores[k] or idSucesores[k] ~= idSucesores[k - 1] then
    	    if idSucesores[k] then
    	        tituloSucesor = "''" .. ModuloWikidata.formatoIdEntidad('Q' .. idSucesores[k],
    	    	    {['enlace'] = 'sí'}) .. "''"
    	    else
    		    tituloSucesor = '-'
    	    end
    		
    		if idSucesores[k] and idSucesores[k] == idSucesores[k + 1] and
    		   idSucesores[k] == idSucesores[k + 2] then
    		   	
    	    	fila:tag('td'):wikitext(tituloSucesor)
    		        :attr('rowspan', 3)		   	
    	    elseif idSucesores[k] and idSucesores[k] == idSucesores[k + 1] then
    	    	fila:tag('td'):wikitext(tituloSucesor)
    		        :attr('rowspan', 2)    		        
    		else
    		    fila:tag('td'):wikitext(tituloSucesor)    			   		    
    		end
    	end
    end
    
    return tostring(sucesion)
    
end

return z