Module:Tableau qualificateurs
Apparence
[voir] [modifier] [historique] [purger]
Module contenant le code de Modèle:Tableau qualificateurs.
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 (modifier).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local wikidata = require 'Module:Wikidata'
local recup = require 'Module:Wikidata/Récup'
local p = {}
function claimsToArray(claims, options)
local headers = {}
local rows = {{}}
local newCol = 1
for i, claim in pairs(claims) do
rows[i + 1] = {}
if headers[claim.mainsnak.property] == nil then
headers[claim.mainsnak.property] = newCol
newCol = newCol + 1
end
rows[i + 1][headers[claim.mainsnak.property]] = wikidata.formatSnak(claim.mainsnak, {})
if claim.qualifiers ~= nil then
for _, qs in pairs(claim.qualifiers) do
for _, qualifier in pairs(qs) do
if options[qualifier.property] ~= nil then
qualifier.property = options[qualifier.property]
end
if headers[qualifier.property] == nil then
headers[qualifier.property] = newCol
newCol = newCol + 1
end
rows[i + 1][headers[qualifier.property]] = wikidata.formatSnak(qualifier, {})
end
end
end
end
for property, i in pairs(headers) do
rows[1][i] = mw.wikibase.label(property)
end
return rows
end
function formatArray(rows)
local str = '{| class="wikitable sortable"'
for i,row in pairs(rows) do
str = str .. '\n|-'
for j,_ in pairs(rows[1]) do
if row[j] == nil then
str = str .. '\n|'
else
if i == 1 or j == 1 then
str = str .. '\n!'
else
str = str .. '\n|'
end
str = str .. ' ' .. row[j]
end
end
end
return str .. '\n|}\n'
end
function p.tableau(frame)
local args = frame:getParent().args
local claims = recup.getClaims(args)
local rows = claimsToArray(claims, args)
return formatArray(rows)
end
return p