Módulo:Classificação
Aspeto
Este módulo pode ter sua documentação deficiente. Por favor, documente-o ou melhore suas explicações caso o saiba usar ou tenha conhecimentos para tal. |
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 infocaixas.
Uso
Outra documentação:
local p = {}
local formattingData = require "Módulo:Classificação/Dados" --logotipos especiais e logotipos
local wikidata = require "Módulo:Infobox/Wikidata"
local linguistic = require "Módulo:Linguística"
local function groupStatements(statements) -- agrupa instruções com o mesmo mainid
local newlist = {}
for i, j in pairs(statements) do -- se esse id já é usado por outro elemento, para mover para um módulo + geral?
local mainid = wikidata.getMainId(j)
if not mainid then
-- sem id, é um "valor especial"
elseif not newlist[mainid] then
newlist[mainid] = {j}
else
table.insert(newlist[mainid], j)
end
end
return newlist
end
local function formatMainStr(id) -- exibe o nome do status de proteção com possivelmente um logotipo
local str, logo
if formattingData[id] then
str = formattingData[id][1]
logo = formattingData[id][2]
else
str = wikidata.formatEntity(id)
end
if logo then
str = '[[File:' .. logo .. '|x18px|alt=|link=]] ' .. str
end
return str
end
local function formatStatus(id, data)
local mainstr = formatMainStr(id) --
local details = {} -- informações adicionais armazenadas nos qualificadores
for i, j in pairs(data) do
local pdate = wikidata.getFormattedQualifiers(j, {'P580'}, {precision = 'year'}) -- data de classificação
local part = wikidata.getFormattedQualifiers(j, {'P518'}, {link = '-'}) -- partie protégée
local str = linguistic.conj({part, pdate}, ' en ')
table.insert(details, str)
end
details = linguistic.conj(details, 'comma')
details = linguistic.inparentheses(details)
if details then
return mainstr .. ' <small>' .. details .. '</small>'
end
return mainstr
end
function p.formattedList(item, params)
-- criar uma lista do status patrimonial do elemento
params = params or {}
params.excludespecial = true
params.property = 'P1435'
local claims = wikidata.getClaims(params)
if not claims then
return nil
end
local statuses = groupStatements(claims)
local stringtable = {} -- lista de cadeias para retornar
for id, data in pairs(statuses) do
table.insert(stringtable, formatStatus(id, data))
end
local val = linguistic.conj(stringtable, "new line") .. wikidata.addTrackingCat('P1435')
return wikidata.addLinkBack(val, item, 'P1435')
end
return p