Aller au contenu

Module:Essai

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 12 janvier 2016 à 22:59 et modifiée en dernier par Hexasoft (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[créer] [purger]
--[[
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.essai(frame)
	local ret = ""
	-- test sur Bob Dylan
	ret = "Pour [[Bob Dylan]] : <br/>"
	local est_humain = p.presence_propriete("P31", "Q5", "Q392")
	if (est_humain) then
		ret = ret .. "c'est un être humain<br/>"
	else
		ret = ret .. "ce n'est pas un être humain<br/>"
	end

	return ret
end




return p