Module:Essai
Apparence
La documentation de ce module est générée par le modèle {{Documentation module}}.
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.
--[[
test de fonctionnalités. J'effacerai moi-même lorsque ce sera
terminé
--]]
local p = {}
local wd = require 'Module:Wikidata'
--[[ table des métiers (WD) que l'on veut gérer
cette table est indexée par le code WD de l'élément recherché, et
contient une table avec (à faire évoluer) :
'catégorie' (la catégorie à associer)
'infobox' (l'infobox dédiée)
'texte' (un libélé utilisable)
]]--
p.association = {
["Q483501"] = { ["catégorie"] = "Artiste", ["infobox"] = "Infobox Artiste", ["texte"] = "[[artiste]]" },
["Q1028181"] = { ["catégorie"] = "Peintre", ["infobox"] = "Infobox Peintre", ["texte"] = "[[peintre]]" },
["Q488205"] = { ["catégorie"] = "Auteur-compositeur-interprète", ["infobox"] = "Infobox Musique (artiste)", ["texte"] = "[[auteur-compositeur-interprète]]" }
}
--[[
fonction retournant une liste des éléments de la table 'p.association'
trouvés à partir de la propriété 'property' pour l'entité 'entity' (ou l'article
courant si 'entity' vaut 'nil')
si une propriété présente n'est pas référencée ???
]]--
function p.propriete_parente(property, value, entity)
return nil
end
--[[
fonction retournant true si la valeur 'value' est présente dans la liste des
propriétés 'property' pour l'entité 'entity' (ou l'article courant si 'entity'
vaut 'nil')
retourne false sinon
]]--
function p.presence_propriete(property, value, entity)
local args = { ["property"] = property, link = "-", displayformat = "raw" }
if (entity ~= nil) then
args["entity"] = entity
end
local res = wd.stringTable(args)
-- pas de résultat, cette propriété WD est absente je présume
if (res == nil) then
return false
end
-- on parcours les résultats pour voir si celle qu'on veut est là
for k, v in pairs(res) do
if (v == value) then
return true -- trouvé
end
end
return false -- pas trouvé
end
--[[
fonction qui retourne true si un élément wikidata existe pour l'article
courant (ou l'élément 'entity' si différent de 'nil') et false sinon
Note : le paramètre 'entity' n'a pas de sens, c'est juste pour du test. En
effet si on a une 'entity' c'est que ça existe…
]]--
function p.a_wikidata(entity)
if (entity ~= nil) then
if (mw.wikibase.getEntity() ~= nil) then
return true
else
return false
end
else
if (mw.wikibase.getEntity(entity) ~= nil) then
return true
else
return false
end
end
end
function p.traite(entity, nom)
local ret = "Pour " .. nom .. ":<br/>"
local t1 = p.a_wikidata(entity)
if (t1) then
ret = ret .. "possède une entrée WD<br/>"
local t2 = p.presence_propriete("P31", "Q5", "Q392")
if (t2) then
ret = ret .. "c'est un être humain<br/>"
-- suite : les métiers
else
ret = ret .. "ce n'est pas un être humain<br/>"
end
else
ret = ret .. "n'a pas d'entrée WD<br/>"
end
ret = ret .. "fin test pour " .. nom .. ".<br/>"
return ret
end
function p.essai(frame)
local ret = ""
-- test sur l'article en cours (page de discussion)
ret = ret .. p.traite(nil, "[[Discussion module:Essai") -- traite la page en cours
ret = ret .. p.traite("Q392", "[[Bob Dylan]]") -- traite Bob Dylan
return ret
end
return p