« Module:Infobox/Fromage » : différence entre les versions
Apparence
Contenu supprimé Contenu ajouté
ajoute une ligne fabricant pour les fromages industriels (Takamaka (fromage)), cache la ligne pâte lorsqu'il n'y a pas de données |
pâte : légère simplification du code + gestion plus robuste des majuscules ; pas de mise en majuscule automatique |
||
(25 versions intermédiaires par 5 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
local cheese = require "Module:Infobox/Fonctions" |
local cheese = require "Module:Infobox/Fonctions" |
||
local wikidata = require "Module:Wikidata" |
local wikidata = require "Module:Wikidata" |
||
local |
local linguistic = require "Module:Linguistique" |
||
return { |
return { |
||
maincolor = '#FFFF77', |
maincolor = '#FFFF77', |
||
parts = { |
parts = { |
||
⚫ | |||
⚫ | |||
cheese.mainimage('Article à illustrer Fromage'), |
|||
⚫ | |||
⚫ | |||
wikidata = function(item) |
|||
⚫ | |||
return label:gsub("^%l", string.upper) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
{ |
{ |
||
type = 'table', |
type = 'table', |
||
rows = { |
rows = { |
||
{ |
{ |
||
type = ' |
type = 'row', |
||
label = 'Pays |
label = 'Pays d’origine', |
||
value = 'pays', |
value = 'pays', |
||
property = 'P495' |
property = 'P495' |
||
}, |
}, |
||
{ |
{ |
||
type = ' |
type = 'row', |
||
label = 'Région', |
label = 'Région', |
||
value = 'lieu', |
value = 'lieu', |
||
Ligne 31 : | Ligne 24 : | ||
}, |
}, |
||
{ |
{ |
||
type = ' |
type = 'row', |
||
label = 'Fabricant', |
label = 'Fabricant', |
||
value = 'fabricant', |
value = 'fabricant', |
||
Ligne 37 : | Ligne 30 : | ||
}, |
}, |
||
{ |
{ |
||
type = ' |
type = 'row', |
||
label = 'Lait', |
label = 'Lait', |
||
value = 'lait', |
value = 'lait', |
||
wikidata = |
wikidata = { |
||
property = 'P186', -- récupère la propriété P186 (matériau) |
|||
local val = wikidata._formatAndCat({item=item, property= 'P186', qualifiervalue = {'Q8495'}, qualifier = 'P518'}) |
|||
qualifier = 'P518', -- seulement si elle a le qualificatif "s'applique à la partie" |
|||
qualifiervalue = {'Q8495'}, -- et que cette partie est le lait" |
|||
labelformat = function(id) -- enlève "lait" du libellé, un peu lourd |
|||
return mw.ustring.gsub(val, "\|lait de", "\|") |
|||
⚫ | |||
⚫ | |||
return linguistic.keepcomplement(label, "lait") |
|||
⚫ | |||
⚫ | |||
⚫ | |||
}, |
}, |
||
{ |
{ |
||
type = ' |
type = 'row', |
||
label = 'Pâte', |
label = 'Pâte', |
||
value = 'pâte', |
value = 'pâte', |
||
wikidata = |
wikidata = { |
||
property = 'P279', |
|||
-- Pour déterminer le type de pâte du fromage sur Wikidata, récupération des valeurs éventuelles |
|||
-- |
condition = function(claim) -- n'accepte que les valeurs de P279 ("sous-classe" de) qui contiennent le mot "pâte" |
||
local |
local str = wikidata.formatStatement(claim) |
||
⚫ | |||
local claims = wikidata.getClaims({item = item, property = 'P279'}) |
|||
return true |
|||
for claim_key, claim_value in pairs(claims) do |
|||
statement = wikidata.formatStatement(claim_value) |
|||
⚫ | |||
statement = mw.ustring.gsub(statement, "\|fromage à pâte", "\|pâte") |
|||
table.insert(paste_list, statement) |
|||
end |
|||
end |
end |
||
end |
end, |
||
labelformat2 = function(label) -- enlève "fromage à pâte de l'affichage |
|||
if #paste_list > 0 then |
|||
return mw.ustring.gsub(linguistic.lcfirst(label), "fromage à pâte ", "") |
|||
end |
end, |
||
ucfirst = '-' |
|||
} |
|||
}, |
}, |
||
{ |
{ |
||
type = ' |
type = 'row', |
||
label = 'Appellation', |
label = 'Appellation', |
||
value = 'aoc', |
value = 'aoc', |
||
wikidata = |
wikidata = {property = 'P1389', showdate = true, conjtype = '<br />', textformat = 'minimum'} |
||
-- P1389 ("certificat de produit") |
-- P1389 ("certificat de produit") |
||
⚫ | |||
⚫ | |||
⚫ | |||
label = 'Nommé en référence à', |
|||
value = 'nommé selon', |
|||
property = 'P138' |
|||
⚫ | |||
{ |
|||
type = 'row', |
|||
label = 'Volume commercialisé', |
|||
⚫ | |||
wikidata = {property = 'P1092', showdate = true, rank = 'best', conjtype = '<br />', textformat = 'minimum'} |
|||
}, |
|||
{ |
|||
type = 'row', |
|||
label = 'Aire de production', |
|||
value = 'superficie', |
|||
wikidata = {property = 'P2046', showdate = true, conjtype = '<br />', textformat = 'minimum'} |
|||
}, |
|||
{ |
|||
type = 'row', |
|||
label = 'Producteurs de lait', |
|||
value = 'producteurs', -- remplissage manuel en attendant que Wikidata le gère |
|||
}, |
|||
{ |
|||
type = 'row', |
|||
label = 'Transformateurs', |
|||
value = 'transformateurs', -- remplissage manuel en attendant que Wikidata le gère |
|||
}, |
|||
{ |
|||
type = 'row', |
|||
label = 'Affineurs', |
|||
value = 'affineurs', -- remplissage manuel en attendant que Wikidata le gère |
|||
} |
} |
||
} |
} |
Dernière version du 13 mars 2023 à 21:54
[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.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Modèle:Documentation module d'infobox. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local cheese = require "Module:Infobox/Fonctions"
local wikidata = require "Module:Wikidata"
local linguistic = require "Module:Linguistique"
return {
maincolor = '#FFFF77',
parts = {
cheese.title(),
cheese.mainimage('Article à illustrer Fromage'),
{
type = 'table',
rows = {
{
type = 'row',
label = 'Pays d’origine',
value = 'pays',
property = 'P495'
},
{
type = 'row',
label = 'Région',
value = 'lieu',
property = 'P1071'
},
{
type = 'row',
label = 'Fabricant',
value = 'fabricant',
property = 'P176'
},
{
type = 'row',
label = 'Lait',
value = 'lait',
wikidata = {
property = 'P186', -- récupère la propriété P186 (matériau)
qualifier = 'P518', -- seulement si elle a le qualificatif "s'applique à la partie"
qualifiervalue = {'Q8495'}, -- et que cette partie est le lait"
labelformat = function(id) -- enlève "lait" du libellé, un peu lourd
local label = mw.wikibase.label(id)
return linguistic.keepcomplement(label, "lait")
end
}
},
{
type = 'row',
label = 'Pâte',
value = 'pâte',
wikidata = {
property = 'P279',
condition = function(claim) -- n'accepte que les valeurs de P279 ("sous-classe" de) qui contiennent le mot "pâte"
local str = wikidata.formatStatement(claim)
if string.match(str:lower(), "pâte") then
return true
end
end,
labelformat2 = function(label) -- enlève "fromage à pâte de l'affichage
return mw.ustring.gsub(linguistic.lcfirst(label), "fromage à pâte ", "")
end,
ucfirst = '-'
}
},
{
type = 'row',
label = 'Appellation',
value = 'aoc',
wikidata = {property = 'P1389', showdate = true, conjtype = '<br />', textformat = 'minimum'}
-- P1389 ("certificat de produit")
},
{
type = 'row',
label = 'Nommé en référence à',
value = 'nommé selon',
property = 'P138'
},
{
type = 'row',
label = 'Volume commercialisé',
value = 'quantité',
wikidata = {property = 'P1092', showdate = true, rank = 'best', conjtype = '<br />', textformat = 'minimum'}
},
{
type = 'row',
label = 'Aire de production',
value = 'superficie',
wikidata = {property = 'P2046', showdate = true, conjtype = '<br />', textformat = 'minimum'}
},
{
type = 'row',
label = 'Producteurs de lait',
value = 'producteurs', -- remplissage manuel en attendant que Wikidata le gère
},
{
type = 'row',
label = 'Transformateurs',
value = 'transformateurs', -- remplissage manuel en attendant que Wikidata le gère
},
{
type = 'row',
label = 'Affineurs',
value = 'affineurs', -- remplissage manuel en attendant que Wikidata le gère
}
}
}
}
}