Aller au contenu

Module:Infobox/Logiciel

Cette page est semi-protégée.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 24 novembre 2022 à 12:33 et modifiée en dernier par Metamorforme42 (discuter | contributions) (déplacement vers Module:Infobox/Fonctions/Logiciel). 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 Logiciel.

Ce module est destiné à remplacer l’infobox Logiciel. Il n’est pas encore fonctionnel et il ne faut pas l’utiliser dans l’espace principal.

Prochaines étapes

  1. déplacement des fonctions vers Module:Infobox/Fonctions/Logiciel
  2. documentation du module (cf. Projet:Infobox/Lua/Documentation)
  3. documentation du modèle
  4. tests de quelques semaines avec une deuxième annonce sur discussion projet:Informatique et sur la pdd de l’infobox
  5. demande de SP pour les deux pages de modules concernées
  6. remplacement du modèle, si pas d’opposition ni de bug majeur
  7. suppression de la catégorie de maintenance devenue inutile : Catégorie:Page utilisant l'infobox Logiciel avec une description mais pas d'image
  8. suppressions des sous-cats inutilisées de Catégorie:Logiciel par langage de programmation (toutes celles avec plus qu’un seul langage)

Paramètres pour l’infobox

Le module reprend tous les paramètres de Modèle:Infobox Logiciel. Les changements sont détaillés sur Discussion_modèle:Infobox_Logiciel#Passage_en_lua (en attendant que je fasse la documentation).

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

return {
	maincolor = '#DFEDFF',
	parts = {
		general.title('informatique'),
		-- Illustrations
		general.logo('Article à illustrer Logiciel'),
		general.mainimage('Article à illustrer Logiciel'),
		{
			type = 'table', title = 'Informations', rows = {
				-- Informations sur l’auteur
				logiciel.creator(),
				logiciel.developer(),
				{
					type = 'row',
					label = 'Début du [[Développement de logiciel|développement]]',
					value = 'début du développement',
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P571',
							linktopic = '-',
							 -- on peut séparer les dates de début du développement par OS/plateforme
							showqualifiers = {'P400','P306'},
							returnnumberofvalues = true,
						}
					end,
				},
				-- Informations de version
				logiciel.firstVersion(),
				logiciel.lastStableVersion(),
				logiciel.advancedVersion(),
				-- informations sur le projet
				{
					type = 'row',
					label = '[[Dépôt (informatique)|Dépôt]]',
					plurallabel = '[[Dépôt (informatique)|Dépôts]]',
					value = 'dépôt',
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P1324',
							atdate= "today", -- ça ne sert à rien d’afficher une adresse qui n’est plus la bonne
							returnnumberofvalues = true,
						}
					end,
				},
				{
					type = 'row',
					label = '[[Assurance qualité]]',
					value = 'assurance qualité',
					property = 'P2992'
				},
				{
					type = 'row',
					label = 'État du projet',
					value = 'état'
				},
				logiciel.programmingLanguage(false),
				{
					type = 'row',
					label = '[[Interface graphique|Interface]]',
					plurallabel = '[[Interface graphique|Interfaces]]',
					value = 'interface',
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P1414',
							atdate= "today",
							returnnumberofvalues = true,
						}
					end,
				},
				{
					type = 'row',
					label = '[[Langage de programmation|Supporte le langage]]',
					plurallabel = '[[Langage de programmation|Supporte les langages]]',
					value = 'langages supportés',
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P3985',
							atdate= "today",
							returnnumberofvalues = true,
						}
					end,
				},
				{
					type = 'row',
					label = "[[Système d'exploitation|Système d’exploitation]]",
					plurallabel  ="[[Système d'exploitation|Systèmes d’exploitation]]",
					value = {"système d'exploitation","systèmes d'exploitation"},
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P306',
							atdate= "today",
							returnnumberofvalues = true,
						}
					end,
				},
				{
					type = 'row',
					label = '[[Plate-forme (informatique)|Environnement]]',
					-- Note: la forme au pluriel "Environnements" est trop longue et empiète sur
					-- le contenu de la colonne de droite. Elle a donc été retirée.
					value = {'environnement','environnements'},
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P400',
							atdate= "today",
							returnnumberofvalues = true,
						}
					end,
				},
				{
					type = 'row',
					label = '[[Taille de fichier|Taille des données]]',
					value = 'taille des données',
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P3575',
							atdate= "today",
							returnnumberofvalues = true,
						}
					end,
				},
				{
					type = 'row',
					label = '[[Format de données|Formats]] lus',
					value = 'importe',
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P1072',
							atdate= "today",
							returnnumberofvalues = true,
						}
					end,
				},
				{
					type = 'row',
					label = '[[Format de données|Formats]] écrits',
					value = 'exporte',
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P1073',
							atdate= "today",
							returnnumberofvalues = true,
						}
					end,
				},
				logiciel.internationalisation(4),
				{
					type = 'row',
					label = '[[Fichier exécutable|Fichier exécutable]]',
					plurallabel  ='[[Fichier exécutable|Fichiers exécutables]]',
					value = {"exécutable","exécutables"}
				},
				logiciel.softwareType(),
				{
					type = 'row',
					label = '[[Politique de distribution]]',
					value = 'politique de prix'
				},
				{
					type = 'row',
					label = '[[Licence de logiciel|Licence]]',
					plurallabel  ='[[Licence de logiciel|Licences]]',
					value = {'licence','licences'},
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							conjtype = 'comma',
							property = 'P275',
							atdate = 'today',
							returnnumberofvalues = true,
							labelformat = function(qid)
								-- affichage de l’identifiant SPDX qui a l’avantage
								-- d’être court et explicite
								local label, isset = wikidata.formatStatements {
									entity = qid,
									numval = 1,
									property = 'P2479',
									returnnumberofvalues = true,
									atdate = 'today', -- les identifiants SPDX ont changé en avril 2015
								}
								-- fallback sur le label de la licence
								if isset == 0 then
									label = nil
								end
								return label
							end,
						}
					end,
				},
				{
					type = 'row',
					label = '[[Documentation logicielle|Documentation]]',
					value = 'documentation',
					wikidata = function()
						return wikidata.formatAndCat {
							entity = localdata.item,
							property = 'P2078',
							atdate= "today",
							returnnumberofvalues = true,
						}
					end,
				},
				general.website() -- site web
			},
		},
		{
			type = 'table',
			title = 'Chronologie des versions',
			rows = {
				{
					type = 'navbox',
					previousLabel = 'Version précédente',
					previousval = 'version précédente',
					previousproperty= 'P155',
					nextLabel = 'Version suivante',
					nextval = 'version suivante',
					nextproperty = 'P156',
					separated = true,
				},
			}
    	},
	}
}