Aller au contenu

Module:Infobox/Fromage

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 25 février 2015 à 22:39 et modifiée en dernier par Poulpy (discuter | contributions). 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 Fromage.


local cheese = require "Module:Infobox/Fonctions"
local wikidata = require "Module:Wikidata"

return {
	maincolor = '#FFFF77',
	parts = {
		{
			type	= 'title',
			value	= 'nom'
		},
		cheese.mainimage(),
		{
			type	= 'table',
			rows	= {
				{
					type		= 'mixed',
					label		= 'Pays d\'origine',
					value		= 'pays',
					property	= 'P495'
				},
				{
					type		= 'mixed',
					label		= 'Région',
					value		= 'lieu',
					property	= 'P1071'
				},
				{
					type		= 'mixed',
					label		= 'Lait',
					value		= 'lait',
					wikidata	= function(item)
						-- S'il faut lire wikidata pour la valeur du lait :
						-- 1) récupération des valeurs de la propriété P186 ("matériau")
						-- 2) pour chacune de ces valeurs, récupération des qualificateurs P518 ("s'applique à")
						-- 3) si l'un de ces qualificateurs est Q8495 ("lait"), prendre en compte la valeur qu'il qualifie
						-- 4) mettre en forme les valeurs sélectionnées
						local milk_list = {}
						local claims = wikidata.getClaims({item = item, property = 'P186'})
						if claims then
							for claim_key, claim_value in pairs(claims) do
								if not claim_value.qualifiers then break end
        						if (claim_value.qualifiers['P518']) then
        							for qualifier_key, qualifier_value in pairs(claim_value.qualifiers['P518']) do
        								if qualifier_value.datavalue.value['numeric-id'] == 8495 then
        									table.insert(milk_list, wikidata.formatStatement(claim_value))
        								end
    								end
   								end
							end
							return mw.text.listToText(milk_list)
						else
							return false
						end
					end
				},
				{
					type		= 'mixed',
					label		= 'Pâte',
					value		= 'pâte'
				},
				{
					type		= 'mixed',
					label		= 'Appellation',
					value		= 'aoc',
					wikidata 	= function(item)
						-- S'il faut aller chercher sur wikidata les appellations :
						-- 1) récupération des valeurs de la propriété P1389 ("certificat de produit")
						-- 2) pour chacune de ces valeurs, récupération des qualificateurs P580 ("date de début") s'ils existent
						-- 3) mettre en forme les valeurs et les qualificateurs sélectionnées
						local aoc_list = {}
						local claims = wikidata.getClaims({item = item, property = 'P1389'})
						if claims then
							for claim_key, claim_value in pairs(claims) do
								local aoc_string = wikidata.formatStatement(claim_value) 
								if (claim_value.qualifiers and claim_value.qualifiers['P580']) then
        							for qualifier_key, qualifier_value in pairs(claim_value.qualifiers['P580']) do
        								aoc_string = aoc_string .. " (" .. qualifier_value.datavalue.value['time'] .. ")"
        								break
        							end
   								end
								table.insert(aoc_list, aoc_string)
							end
							return mw.text.listToText(aoc_list, "<br />", "<br />")
						else
							return false
						end
					end
				}
			}
		}
	}
}