« Module:Infobox/Configs/Plugin » : différence entre les versions
De Nefald
Autres actions
m website |
m terraforming |
||
| (6 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 33 : | Ligne 33 : | ||
-- Configuration locale des types | -- Configuration locale des types | ||
local typeValues = { | local typeValues = { | ||
['api'] = 'API', | |||
['économie'] = 'Économie', | ['économie'] = 'Économie', | ||
['pvp'] = 'PvP', | ['pvp'] = 'PvP', | ||
| Ligne 39 : | Ligne 39 : | ||
['administration'] = 'Administration', | ['administration'] = 'Administration', | ||
['protection'] = 'Protection', | ['protection'] = 'Protection', | ||
['premium'] = 'Premium', | |||
['cosmétique'] = 'Cosmétique', | ['cosmétique'] = 'Cosmétique', | ||
['communication'] = 'Communication', | ['communication'] = 'Communication', | ||
['construction'] = 'Construction', | |||
['utilitaire'] = 'Utilitaire', | ['utilitaire'] = 'Utilitaire', | ||
['mini-jeu'] = 'Mini-jeu', | ['mini-jeu'] = 'Mini-jeu', | ||
['modération'] = 'Modération', | |||
['monde'] = 'Monde', | ['monde'] = 'Monde', | ||
['inventaire'] = 'Inventaire', | ['inventaire'] = 'Inventaire', | ||
['terraforming'] = 'Terraforming', | |||
['transport'] = 'Transport', | ['transport'] = 'Transport', | ||
['magie'] = 'Magie', | ['magie'] = 'Magie', | ||
| Ligne 50 : | Ligne 54 : | ||
} | } | ||
local cleanValue = mw.text.trim(mw.ustring.lower( | -- Séparer par virgule et traiter chaque type | ||
local types = mw.text.split(value, ',') | |||
local displayTypes = {} | |||
local hasError = false | |||
local errorMsg = '' | |||
for _, typeItem in ipairs(types) do | |||
local cleanValue = mw.text.trim(mw.ustring.lower(typeItem)) | |||
if typeValues[cleanValue] then | |||
table.insert(displayTypes, typeValues[cleanValue]) | |||
else | |||
hasError = true | |||
errorMsg = errorMsg .. '<span style="color: red; font-weight: bold;">Type invalide: "' .. typeItem .. '"</span> ' | |||
end | |||
end | |||
if | if hasError then | ||
return | return errorMsg .. '[[Catégorie:Pages avec erreurs]]' | ||
end | end | ||
-- Joindre les types avec ", " pour l'affichage | |||
return table.concat(displayTypes, ', ') | |||
end | end | ||
}, | }, | ||
| Ligne 92 : | Ligne 112 : | ||
process = function(value, args, frame) | process = function(value, args, frame) | ||
if value and value ~= '' then | if value and value ~= '' then | ||
if value:match('^%[.+%]$') then | if value:match('^%[.+%]$') then | ||
return frame:preprocess(value) | return frame:preprocess(value) | ||
elseif value:match('^https?://') then | elseif value:match('^https?://') then | ||
return frame:preprocess('[' .. value .. ' Documentation]') | return frame:preprocess('[' .. value .. ' Documentation]') | ||
else | else | ||
return '[[' .. value .. ']]' | return '[[' .. value .. ']]' | ||
end | end | ||
| Ligne 109 : | Ligne 126 : | ||
process = function(value, args, frame) | process = function(value, args, frame) | ||
if value and value ~= '' then | if value and value ~= '' then | ||
if value:match('^%[.+%]$') then | if value:match('^%[.+%]$') then | ||
return frame:preprocess(value) | return frame:preprocess(value) | ||
elseif value:match('^https?://') then | elseif value:match('^https?://') then | ||
return frame:preprocess('[' .. value .. ' Site web]') | return frame:preprocess('[' .. value .. ' Site web]') | ||
else | else | ||
return '[[' .. value .. ']]' | return '[[' .. value .. ']]' | ||
end | end | ||
| Ligne 210 : | Ligne 224 : | ||
-- Configuration des catégories par type | -- Configuration des catégories par type | ||
local typeCategories = { | local typeCategories = { | ||
['api'] = 'Plugin d\'API', | |||
['économie'] = 'Plugin d\'économie', | ['économie'] = 'Plugin d\'économie', | ||
['pvp'] = 'Plugin de PvP', | ['pvp'] = 'Plugin de PvP', | ||
| Ligne 215 : | Ligne 230 : | ||
['administration'] = 'Plugin d\'administration', | ['administration'] = 'Plugin d\'administration', | ||
['protection'] = 'Plugin de protection', | ['protection'] = 'Plugin de protection', | ||
['cosmétique'] = 'Plugin | ['cosmétique'] = 'Plugin cosmétique', | ||
['communication'] = 'Plugin de communication', | ['communication'] = 'Plugin de communication', | ||
['utilitaire'] = 'Plugin | ['construction'] = 'Plugin de construction', | ||
['utilitaire'] = 'Plugin utilitaire', | |||
['mini-jeu'] = 'Plugin de mini-jeux', | ['mini-jeu'] = 'Plugin de mini-jeux', | ||
['modération'] = 'Plugin de modération', | |||
['premium'] = 'Plugin premium', | |||
['monde'] = 'Plugin de monde', | ['monde'] = 'Plugin de monde', | ||
['inventaire'] = 'Plugin d\'inventaire', | ['inventaire'] = 'Plugin d\'inventaire', | ||
['terraforming'] = 'Plugin de terraforming', | |||
['transport'] = 'Plugin de transport', | ['transport'] = 'Plugin de transport', | ||
['magie'] = 'Plugin de magie', | ['magie'] = 'Plugin de magie', | ||
| Ligne 232 : | Ligne 251 : | ||
} | } | ||
-- | -- Catégories basées sur le(s) type(s) | ||
if args.type then | if args.type then | ||
local cleanType = mw.text.trim(mw.ustring.lower( | -- Séparer par virgule et traiter chaque type | ||
local types = mw.text.split(args.type, ',') | |||
for _, typeItem in ipairs(types) do | |||
local cleanType = mw.text.trim(mw.ustring.lower(typeItem)) | |||
if typeCategories[cleanType] then | |||
table.insert(cats, typeCategories[cleanType]) | |||
end | |||
end | end | ||
end | end | ||