Módulo:Infobox/Funções
A documentação para este módulo pode ser criada na página Módulo:Infobox/Funções/doc
-- Funções comuns a diversas infobox
local localdata = require( 'Módulo:Infobox/Localdata' )
local wikidata = require( 'Módulo:Infobox/Wikidata' )
local coordfunctions -- = require 'Módulo:Infobox/Funções/Geolocalização'
local p = {}
function p.title(icon, style, subtitleparam, subtitlequery)
return {
type = 'title',
value = function()
return localdata['nome']
or wikidata.getLabel(localdata.item) and mw.language.getContentLanguage():ucfirst( wikidata.getLabel(localdata.item) )
or mw.title.getCurrentTitle().text
end,
subtitle = function() return localdata[subtitleparam] end,
wikidatasubtitle = subtitlequery,
icon = icon,
style = style,
}
end
function p.mainimage(args, defaultimage)
if type( args ) ~= 'table' then
args = { cat = args, defaultimage = defaultimage }
end
return {
type = 'images',
imageparameters = {'imagem', 'image'},
defaultimages = args.defaultimage,
defaultimagelink = 'Ajuda:Guia de edição/Como usar imagens',
sizeparameter = 'imagem tamanho',
uprightparameter = 'upright',
defaultupright = args.upright,
defaultsize = args.size or args.tamanho,
maintenancecat = args.cat or '!Artigos sem imagens',
captionparameter = {'legenda', 'imagem_legenda', 'legenda_imagem' },
altparameter = args.altparameter or 'alternative image',
defaultalt = args.alt,
defaultimagealt = args.defaultimagealt,
wikidata = args.wikidata or {property = 'P18', 'P242'},
numval = 1,
}
end
function p.logo(upright)
return {
type = 'images',
imageparameters = {'logotipo'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'legenda_logotipo',
property = 'P154',
defaultupright = upright or '0.6',
uprightparameter = 'upright logotipo',
sizeparameter = 'tamanho_logotipo',
numval = 1,
}
end
function p.brazao(upright)
return {
type = 'images',
imageparameters = {'brazão'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'legenda_brazão',
property = {'P94', 'P158'},
defaultupright = upright or '0.3',
uprightparameter = 'upright brazão',
sizeparameter = 'tamanho brazão',
numval = 1,
}
end
function p.flag(upright)
return {
type = 'images',
imageparameters = {'imagem bandeira '},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'legenda bandeira',
property = 'P41',
defaultupright = upright or '1',
uprightparameter = 'upright bandeira',
sizeparameter = 'tamanho bandeira',
numval = 1,
}
end
function p.sign(upright)
return {
type = 'images',
imageparameters = {'placa rodoviária'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'legenda placa rodoviária',
property = 'P14',
defaultupright = upright or '0.4',
uprightparameter = 'upright placa rodoviária',
sizeparameter = 'tamanho placa rodoviária',
numval = 1,
}
end
function p.bathymetricmap(upright)
return {
type = 'images',
imageparameters = {'mapa batimétrico', 'mapa', 'imagem_mapa'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = {'legenda mapa batimétrico', 'legenda_mapa', 'legenda mapa', 'mapa_legenda'},
property = 'P207',
defaultupright = upright, -- or '1',
uprightparameter = 'upright mapa',
sizeparameter = {'tamanho mapa', 'tamanho_mapa'},
numval = 1,
}
end
-- Ligações externas
function p.website(localparam) -- texto livre [http://example.org exemplo.org] ou url apenas localparam é o parâmetro usado historicamente no modelo do site (legado)
return {
type = 'mixed',
label = 'Website',
plurallabel = 'Websites',
wikidata = function()
local values, num = wikidata.formatAndCat {
entity = localdata.item,
displayformat = 'wraplinks',
conjtype = '<br />',
property = 'P856',
isinlang = 'pt',
rank = 'valid',
excludespecial = true, -- excludespecial porque pode haver "sem valor" marcado para o português, mas há um site em inglês
returnnumberofvalues = true,
}
if not values then
values, num = wikidata.formatAndCat {
entity = localdata.item,
displayformat = 'wraplinks',
conjtype = '<br />',
property = 'P856',
showlang = true,
excludespecial = true,
returnnumberofvalues = true,
}
end
return values, num
end,
value =
function()
local siteurl = localdata[localparam] or localdata['website'] or localdata['web_site'] or localdata['website oficial']
local sitename = localdata['nome website']
return require("Módulo:Weblink").makelink(siteurl, sitename)
end,
}
end
-- Som, pronunciação
function p.selectSound(prop)
-- prioridade em português
if wikidata.getClaims{entity = localdata, property = prop, qualifier = {'P407'}, qualifiervalue = {'Q5146'} } then
return {property = prop, qualifier = {'P407'}, qualifiervalue = {'Q5146'} }
end
return {property = prop}
end
function p.prononciation()
return {
type = 'images',
style = {['padding-top'] = '25px'},
defaultcaption = 'Pronunciação',
captionparameter = 'legenda pronunciação',
value = 'pronunciação',
defaultsize = '280',
wikidata = p.selectSound('P443'),
numval = 1,
}
end
-- Funções de geolocalização
function p.country(default)
local coordfunctions = coordfunctions or require 'Módulo:Infobox/Funções/Geolocalização'
return coordfunctions.country(default)
end
function p.geoloc(params)
local coordfunctions = coordfunctions or require 'Módulo:Infobox/Funções/Geolocalização'
return coordfunctions.geoloc(params)
end
function p.coordenadas(params)
local coordfunctions = coordfunctions or require 'Módulo:Infobox/Funções/Geolocalização'
return coordfunctions.coordenadas(params)
end
function p.locationmap(params)
local coordfunctions = coordfunctions or require 'Módulo:Infobox/Funções/Geolocalização'
return coordfunctions.locationmap(params)
end
return p