Módulo:Infobox/Motor
Aspeto
Este módulo está classificado como pré-alfa. Ele está incompleto, e pode ou não estar em desenvolvimento activo. Ele deve ser utilizado desde páginas do domínio artigos. Os módulos ficam em pre-alfa até o editor original (ou alguém que toma conta se ele for abandonado por algum tempo) está satisfeito com a estrutura básica. |
Descrição
Este Módulo tem funções auxiliares para criar uma infocaixa sobre motores.
Uso
Outra documentação:
local p = {}
local generic = require('Módulo:Infobox/Funções')
local linguistic = require('Módulo:Linguística')
local wikidata = require('Módulo:Infobox/Wikidata')
local function dimensions( localdata )
local dimensions = {
-- parâmetro, abreviação para exibir no cabeçalho, nome Wikidata, nome completo para exibir no cabeçalho, parar
{'diâmetro', '∅', 'P2386', 'Diâmetro'},
{'comprimento', 'L', 'P2043', 'Comprimento'},
{'largura', 'l', 'P2049', 'Largura'},
{'altura', 'H', 'P2048', 'Altura'},
}
local data, dims = {}, {}
local label = 'Dimensões'
local unit = localdata['unidade'] or 'mm'
local wikidataval = function(d)
return wikidata.formatStatements{
entity = localdata.item,
showunit = '-',
targetunit = unit,
addcat = true,
property = d
}
end
local propertyused = nil
for i, j in pairs(dimensions) do
local val = localdata[j[1]]
if localdata.item and j[3] and not val then
val = wikidataval(j[3])
if val then
propertyused = j[3]
end
end
if val then
table.insert(data, val)
table.insert(dims, i)
end
end
if #data == 0 then
return nil
end
if #data == 1 then
label = dimensions[dims[1]][4]
else
for i, j in pairs(dims) do dims[i] = dimensions[j][2] end
label = label .. linguistic.inparentheses(linguistic.conj(dims, ' × '))
end
local val = linguistic.conj(data, ' × ') .. ' ' .. unit
if propertyused then
val = wikidata.formatAndCat{entity = localdata.item, property = propertyused, value = val}
end
return {
type = 'mixed',
label = label,
value = function() return val end
}
end
return {
maincolor = '#00507F',
parts = {
generic.title('wiki', {color = 'white'}),
generic.mainimage('!Artigos de tecnologia sem imagens'),
{type = 'table', separator = true, rows = {
{type = "mixed",
label = "Tipo",
value = "tipo",
property = "P279"
},
{type = 'mixed',
label = 'Outros nomes',
value = 'outros nomes',
},
{type = 'mixed',
label = 'Construtor',
plurallabel = 'Construtores',
value = 'construtor',
wikidata = {property = 'P176', conjtype = '<br />'},
},
{type = 'mixed',
label = 'Anos de produção',
value = 'ano',
wikidata = function ( item ) return wikidata.mainDate(item) end,
},
{type = 'mixed',
label = 'Produção',
value = 'quantidade produzida',
property = 'P1092',
},
{type = 'mixed',
label = 'Aplicação',
plurallabel = 'Aplicações',
value = 'aplicações',
property = 'P366',
},
},
},
{type = 'table', title = 'Características técnicas', titlestyle={color='white'}, rows = {
{type = 'mixed',
label = 'Cilindro',
plurallabel = 'Cilindros',
value = 'cilindrada',
wikidata = {property = 'P2234', targetunit = 'cm3', rounding = '0'},
},
--{type = 'mixed',
--label = 'Número de cilindros',
--value = 'nombre cylindres',
--property = 'P1100',
--},
{type = 'mixed',
label = 'Disposição',
value = 'disposição cilindros',
property = 'P1002',
},
{type = 'mixed',
label = 'Ângulo dos cilindros',
value = 'ângulo cilindros',
},
{type = 'mixed',
label = 'Calibre',
value = 'calibre',
wikidata = {property = 'P2556', targetunit = 'mm', rounding = '2'},
},
{type = 'mixed',
label = 'Curso',
value = 'curso',
wikidata = {property = 'P2557', targetunit = 'mm', rounding = '2'},
},
{type = 'mixed',
label = 'Refrigeração',
value = {'refrigeração', 'refrigeramento'},
property = 'P588',
},
{type = 'mixed',
label = 'Combustível',
plurallabel = 'Combustíveis',
value = 'combustível',
property = 'P618',
},
{type = 'mixed',
label = 'Ignição',
value = 'ignição',
},
},
},
{type = 'table', title = 'Performances', titlestyle={color='white'}, rows = {
{type = 'mixed',
label = 'Capacidade max.',
plurallabel = 'Capacidades max.',
value = 'capacidade máxima',
wikidata = {property = 'P2109', showqualifiers = {'P2052', 'P2044'}, targetunit = 'kw', conjtype = '<br />'},
},
{type = 'mixed',
label = 'Binário max.',
plurallabel = 'Binários max.',
value = 'binário máximo',
wikidata = {property = 'P2230', showqualifiers = {'P2052'}, targetunit = 'N', conjtype = '<br />'},
},
{type = 'mixed',
label = 'Força de massa',
value = 'força de massa',
--wikidata = {}, -- peut se calculer en divisant la valeur P1100 par P2556
},
{type = 'mixed',
label = 'Taxa de compressão',
value = 'taxa de compressão',
wikidata = function ( item )
local claims = wikidata.getClaims{
entity = item,
property = 'P1247',
conjtype = '<br />',
}
if not claims then
return nil
end
return wikidata.formatAndCat{
entity = item,
property = 'P1247',
linktopic = ':55-',
} .. ':1'
end,
},
{type = 'mixed',
label = 'Consumo',
value = 'consumo'
},
},
},
{type = 'table', title = 'Dimensões', titlestyle={color='white'}, rows = {
dimensions,
{type = 'mixed',
label = 'Massa',
plurallabel = 'Massas',
value = 'massa',
wikidata = {property = 'P2067', targetunit = 'kg', rounding = '2'},
},
},
},
{type = 'navbox',
separated = true,
color = 'default',
previousparameter = 'motor anterior',
previouswikidata = {property = 'P155', excludespecial = true},
nextparameter = 'motor seguinte',
nextwikidata = {property = 'P156', excludespecial = true}
},
},
}