« Module:Infobox/Configs/Plugin » : différence entre les versions
De Nefald
Autres actions
m Ajout : "Modération" (type + catégorie de plugins) |
m catégorie multiple (process) |
||
| 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 51 : | Ligne 51 : | ||
} | } | ||
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 93 : | Ligne 109 : | ||
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 110 : | Ligne 123 : | ||
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 211 : | Ligne 221 : | ||
-- 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 235 : | Ligne 245 : | ||
} | } | ||
-- | -- 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 | ||