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 2 mars 2015 à 21:11 et modifiée en dernier par Zolo (discuter | contributions) (même comme ça on dirait, en fait). 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"
local dates = require "Module:Wikidata/Dates"

return {
	maincolor = '#FFFF77',
	parts = {
		{
			type	= 'title',
			value	= 'nom',
			wikidata = function(item)
				local label = item:getLabel('fr')
				return label:gsub("^%l", string.upper)
			end
		},
		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		= 'Fabricant',
					value		= 'fabricant',
					property	= 'P176'
				},
				{
					type		= 'mixed',
					label		= 'Lait',
					value		= 'lait',
					wikidata	= function(localdata, item)
						local val = wikidata._formatAndCat({item=item, property= 'P186', qualifiervalue = {'Q8495'}, qualifier = 'P518'})
						-- récupère la propriété P186 (matériau) seulement si elle a le qualificatif "s'applique à la partie : lait"
						if val then -- retire "lait de" du libellé, un peu lourd
							return mw.ustring.gsub(val, "\|lait de", "\|")
						end
						end
				},
				{
					type		= 'mixed',
					label		= 'Pâte',
					value		= 'pâte',
					wikidata    = function(item)
						-- Pour déterminer le type de pâte du fromage sur Wikidata, récupération des valeurs éventuelles
						-- de la propriété P279 ("sous-classe de") dont le label contiennent "pâte"
						local paste_list = {}
						local claims = wikidata.getClaims({item = item, property = 'P279'})
						if claims then
							for claim_key, claim_value in pairs(claims) do
								statement = wikidata.formatStatement(claim_value)
								if string.match(statement:lower(), "pâte") then
									statement = mw.ustring.gsub(statement, "\|fromage à pâte ", "\|")
									table.insert(paste_list, statement)
								end
							end
						end
						if #paste_list > 0 then
								return mw.text.listToText(paste_list, "<br />", "<br />")
						end
						return false
					end
				},
				{
					type		= 'mixed',
					label		= 'Appellation',
					value		= 'aoc',
					wikidata 	= wikidata.formatAndCat{item = item, property = 'P1389', showdate=true, conjtype = '<br />'}
						-- P1389 ("certificat de produit")

				}
			}
		}
	}
}