Module:Classement
Apparence
[voir] [modifier] [historique] [purger]
Utilisation
Fonction utilisable depuis un autre module Lua :
fonction formattedlist(item, params)
– prend pour argument l'identifiant Wikidata d'un monument (ou la table complète de son élément Wikidata déjà chargée) et liste les protections patrimoniales dont il fait l'objet. params désigne les paramètres habituels des fonction Wikidata voir Module:Wikidata/Documentation).
- Le comportement de cette fonction est proche de celui de Module:Wikidata.formatStatements{property ="P1425", showdate = true, precision = "year", showqualifiers = "P518"} mais des mises en forme supplémentaires sont effectuées pour éviter les répétitions et rendre le texte plus naturel.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
local formattingData = require "Module:Classement/Données" --libellés spéciaux et logos
local wikidata = require "Module:Wikidata"
local linguistic = require "Module:Linguistique"
local function groupStatements(statements) -- regroupe les statements avec même mainid
local newlist = {}
for i, j in pairs(statements) do -- si cet id est déjà utilisé par un autre élément, à déplacer vers un module + général ?
local mainid = wikidata.getMainId(j)
if not mainid then
-- pas d'id, c'est une "special value"
elseif not newlist[mainid] then
newlist[mainid] = {j}
else
table.insert(newlist[mainid], j)
end
end
return newlist
end
local function formatMainStr(id) -- affiche le nom du statut du protection avec éventuellement un logo
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 = {} -- informations complémentaires stockées dans les qualificatifs
for i, j in pairs(data) do
local pdate = wikidata.getFormattedQualifiers(j, {'P580'}, {precision = 'year'}) -- date de classement
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)
-- créé une liste des status patrimoniaux de l'élement
params = params or { entity = item }
params.excludespecial = true
params.property = 'P1435'
local claims = wikidata.getClaims(params)
if not claims then
return nil
end
local statuses = groupStatements(claims)
local stringtable = {} -- liste des chaînes à retourner
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