Aller au contenu

Module:Bases

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 6 avril 2019 à 03:48 et modifiée en dernier par 0x010C (discuter | contributions) (Création à partir du meilleur de chacun des actuels modules bases quelquechose). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

 Documentation[voir] [modifier] [historique] [purger]

Utilisation

Ce module permet de renseigner la documentation des modèles thématiques du Projet:Bases.

Pour renseigner la documentation du modèle en insérant ou en remplaçant le contenu de la section Utilisation par (exemple donné pour le modèle {{Bases littérature}})
{{#invoke:Bases|documentation|name=littérature|headername=à la littérature|namebis=la littérature}}
<!-- L'édition du module se fait à la page [[Module:Bases/littérature]] en particulier pour l'édition des colonnes Libellé et URL. Pour renseigner la langue cliquez sur le propriété correspondante, éditez le paramètre ''format de l'URL'' et ajoutez le qualifier ''langue de l'œuvre, du nom ou du terme'' avec la ou les langues voulues.-->
Les paramètres name et headername doivent être identiques à ceux présents dans le modèle,

le paramètre namebis doit compléter la phrase bases de données en lien avec xxx

Le paramètre complet=faux enlève l'affichage du nombre de pages dans chaque catégorie, l'appel à Pagesincat étant très coûteux, ce paramètre est recommandé pour les bases importantes en taille afin de permettre leur affichage.

Exemples

Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.

local p = {}
local wikidata = require "Module:Wikidata"

function p.main(frame)
	-- Récupération des paramètres, soit ceux passés par le modèle,
	-- soit ceux passés au modèle
	local args = frame.args
	if frame.getParent then
		args = frame:getParent().args
	end
	
	-- Chargement des données de la base souhaitée
	local bases = require "Module:Bases/" .. args.name

	-- Récupération des propriétés wikidata de l'entité sélectionné
	local entity = mw.wikibase.getEntityObject(id)
	if not entity then
		return "[[Catégorie:Article utilisant le modèle Bases " .. args.name .. " inactif]]"
	end
	
	-- Pour chaque base dans notre liste, on vérifie si notre entité la possède
	-- si c'est le cas, on formate et ajoute un lien vers elle dans une liste
	local vals = {}
	for i, base in pairs(bases) do
		local val = wikidata.formatStatements{entity = entity, text = base[1], property = base[2], urlpattern = base[3], numval = 1, addcat = true, qualifier = 'P407', qualifiervalue = 'Q150'} or wikidata.formatStatements{entity = entity, text = base[1], property = base[2], urlpattern = base[3], numval = 1, addcat = true}
		if val then 
			table.insert(vals, val)
		end
	end
	
	-- On catégorise s'i l'entiité ne possède aucune des bases listés
	if #vals == 0 then
		return "[[Catégorie:Article utilisant le modèle Bases " ..  args.name .. " inactif]]"
	end
	
	-- Concaténation des liens et formatage final
	local header = ''
	if #vals > 1 then
		header = "Ressources relatives " .. args.header .. " : "
	else
		header = "Ressource relative " .. args.header .. " : "
	end
	return wikidata.addLinkBack(header .. table.concat( vals, '&nbsp;• ' ), entity, "identifiers" ) -- lien vers la section approriété de Wikidata
end

return p