Aller au contenu

Module:Infobox/Algorithme

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 23 mai 2020 à 11:16 et modifiée en dernier par Suaudeau (discuter | contributions) (Affiche la date de publication quand elle est un qualifieur du nom de l'inventeur). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

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

Cette page définit un module d'infobox. Pour les conseils sur l'usage de ce module, voyez Modèle:Infobox Algorithme.


local general = require "Module:Infobox/Fonctions"
local localdata = require "Module:Infobox/Localdata"
local wikidata = require "Module:Wikidata"

local p = {}

-- Retourne l'image ou sinon la vidéo
function p.mainimage_ou_video()
	local wdimage = {entity = item, property = 'P18', showsource = true}
	local wdvideo = {entity = item, property = 'P10', showsource = true}
	local wdmedia = wdimage
	if (wikidata.formatStatements{property = "P18", displayformat = "raw", entity= localdata.item} == nil) then
		wdmedia = wdvideo
	end
	return 	{
		type = 'images',
		imageparameters =  {'image', 'photo', 'Photo'},
		defaultimagelink = 'Aide:Insérer une image',
		sizeparameter = 'taille image',
		uprightparameter = 'upright',
		maintenancecat = 'Article à illustrer',
		captionparameter = {'légende', 'légende image', 'Légende'},
		altparameter = 'alternative image',
		wikidata =  wdmedia,
		numval = 1,
	}
end

-- Donne la date de découverte ou la date de publication
function p.date()
	local wddatedecouverte = { entity = localdata.item, property = "P575", showsource = true}
	local wddatedepublication = { entity = localdata.item, property = "P577", showsource = true}
	if wddatedecouverte and wddatedepublication then -- ne pas afficher les deux si c'est la même valeur
		if (wikidata.formatStatements{property = "P575", displayformat = "raw", entity= localdata.item} == wikidata.formatStatements{property = "P577", displayformat = "raw", entity = localdata.item}) then
			wddatedepublication = nil
		end
	end
	return {type = 'multi', 
		rows = {
			-- Date de découverte : P575
			{type = 'row', label = "Date de découverte", value = "date",  wikidata = wddatedecouverte},
			-- Date de publication : P577
			{type = 'row', label = "Date de publication", value = "date de publication", blockers = 'date', wikidata = wddatedepublication},
		},
	}
end

-- Retourne la liste des découvreurs ou inventeurs et donne leur éventuelle date de publication respective
function p.decouvreurs_dates()
	return {
		type = 'row', 
		label = "Découvreur ou inventeur", 
		plurallabel = "Découvreurs ou inventeurs", 
		value = "découvreur", 
		wikidata = {
			entity = item, 
			property = 'P61', 
			showsource = true,
			showqualifiers = 'P577',
			showdate = true
		} 
	}
end

p.maincolor = "#ddd"
p.thirdcolor = "#000"
p.parts = {
	general.title("informatique"),
	general.logo(),
	p.mainimage_ou_video(),
	{type = 'table', rows = {
			p.decouvreurs_dates(),
			p.date(),
			{type = 'row', label = "Problème lié", plurallabel = "Problèmes liés", value = "problème", wikidata = {entity = item, property = 'P31', showsource = true}},
			{type = 'row', label = "Structure des données", plurallabel = "Structures des données",value = "structure des données", property = 'P2283'},
			{type = 'row', label = "Basé sur", value = "basé sur", wikidata = {entity = item, property = 'P144', showsource = true}},
			{type = 'row', label = "À l'origine de",value = "à l'origine de", wikidata = {entity = item, property = 'P4969', showsource = true}},
	}},
	{type = 'table', title = "[[Complexité en temps]]", rows = {
			{type = 'row', label = "Pire cas", value = "temps max", wikidata = {entity = item, property = 'P3752', showsource = true}},
			{type = 'row', label = "Moyenne", value = "temps moyen", wikidata = {entity = item, property = 'P3754', showsource = true}},
			{type = 'row', label = "Meilleur cas", value = "temps min", wikidata = {entity = item, property = 'P3753', showsource = true}},
	}},
	{type = 'table', title = "[[Complexité en espace]]", rows = {
			{type = 'row', label = "Pire cas", value = "espace max", wikidata = {entity = item, property = 'P3755', showsource = true}},
			{type = 'row', label = "Moyenne", value = "espace moyen", wikidata = {entity = item, property = 'P3757', showsource = true}},
			{type = 'row', label = "Meilleur cas", value = "espace min", wikidata = {entity = item, property = 'P3756', showsource = true}},
	}},

	general.website(),
}

return p