Module:Parti politique français
Usage
[modifier le code]{{#invoke:Module:Parti politique français|fetch|<party>|<value>}}
Paramètres
[modifier le code]Paramètre | Description |
---|---|
1 | Le nom du parti politique. Si un parti n'est pas trouvé, placez une demande sur la page de discussion. |
error | Optionnel, ce paramètre renverra la valeur |error= fournie si le modèle ne contient pas le parti ou la couleur demandée.
|
Mettre à jour le module
[modifier le code]La liste des partis politiques sont contenus dans Module:Parti politique français/data.
Dans le sous-module sont deux groupes : local alternate
et local full
. Le groupe “alternate” est pour les noms alternatifs d'un parti.
Valeurs de tableau
[modifier le code]local full = {
....
["Les Républicains"] = {abbrev = "LR", color = "#0066CC", shortname = "",},
...
}
Il y a trois valeurs stockées pour chaque parti :
- L'abréviation (
abbrev
). - La couleur du parti (
color
), qui peut être un triplet hexadécimal ou un nom de couleur de base. - Un nom plus court pour le parti (
shortname
, peu utilisé sur Wikipédia en français).
Si une valeur de nom n'est pas stockée pour un parti, le module tentera de renvoyer l'autre variante « raccourcie » avant de renvoyer directement le nom complet donné en entrée. Par exemple, si abbrev
est stocké mais shortname
ne l'est pas, quelle que soit la valeur demandée il renverra la valeur abbrev
.
Demander un ajout ou un changement
[modifier le code]Les demandes devraient être faites sur la page de discussion dans une nouvelle section. Copiez la ligne suivante et remplissez em les champs pertinants au parti. Un nom de parti (nom complet, celui de l'article s'il existe) et au moins une autre information est nécessaire. Voir l'information ci-dessus pour chaque valeur.
["parti"] = {abbrev = "", color = "", shortname = "",},
Messages d'erreur
[modifier le code]Error message | Resolution |
---|---|
Lua error: bad argument #1 to 'sub' (string expected, got table). | Une entrée voulue pour la section “local full” a été placée dans la section “local alternate”. Déplacez-la dans la section “local full”. |
Lua error in package.lua at line 80: module 'Module:Parti politique français/' not found. | Un parti est ajouté à une liste alternative sans valeur. |
Value not in template. Please request that it be added. (article search) | Le parti en question a une entrée sans valeur dans la section “local full” (cela peut être causé par des entrées dupliquées dans “local full” qui, si présentes, doivent être fusionnées). |
(no error message, but party color is white/blank) | Ajoutez une couleur pour le parti à son entrée dans la section “local full”. dans Module:Parti politique français/data. |
parameter 1 should be a party name (article search) | Un modèle essaye de donner un paramètre manquand au module. Contournez en testant les paramètres du modèle. |
parameter 2 should be the output type (article search) |
Data pages
[modifier le code]La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. 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 p = {}
local default_color = '#F8F9FA'
local categories = {
party_not_in_list = '[[Category:Pages using Political party with unknown party]]',
shortname_not_in_list = '[[Category:Pages using Political party with missing shortname]]',
color_not_in_list = '[[Category:Pages using Political party with missing color]]',
}
local function create_error(error_message)
return string.format('<strong class="error">%s</strong>', error_message)
end
local function stripToNil(text)
-- If text is a string, return its trimmed content, or nil if empty.
-- Otherwise return text (which may, for example, be nil).
if type(text) == 'string' then
text = text:match('(%S.-)%s*$')
local delink = require('Module:Delink')._delink
text = delink({text, wikilinks = "target"})
end
return text
end
-- Example of having all the data - color and names - in one table. Requires one page to be edited instead of two when adding a new party.
function p._fetch(args)
if not args[1] then
return create_error("parameter 1 should be a party name.")
end
if not args[2] then
return create_error("parameter 2 should be the output type.")
end
local party = stripToNil(args[1])
local out_type = stripToNil(args[2])
if out_type == 'colour' then
out_type = 'color'
end
-- Load data from submodule
local data = mw.loadData('Module:Parti politique français/data')
local data_all = data.full
local party_alt = data.alternate[party]
local party_info
if party_alt then
if data_all[party_alt] then
party_info = data_all[party_alt]
else
data = mw.loadData('Module:Parti politique français/data')
party_info = data.full[party_alt]
end
else
party_info = data_all[party]
end
-- Check if database value exists
-- * Not even in database - return given error or input
-- * No color - return error
-- * No shortname/abbrev - return first non-blank of abbrev->shortname->input
if not party_info then
if out_type == 'color' then
return args.error or default_color
else
return args.error or party
end
end
local return_value = party_info[out_type]
if return_value == "" then
if out_type == 'color' then
return args.error or create_error("Value not in template. Please request that it be added.")
elseif out_type == 'abbrev' then
if party_info.shortname ~= "" then
return party_info.shortname
else
return party
end
elseif out_type == 'shortname' then
if party_info.abbrev ~= "" then
return party_info.abbrev
else
return party
end
else
return party
end
end
if out_type == 'color' and string.find(return_value, '#') then
return_value = string.gsub(return_value, '#', '#')
end
return return_value
end
function p.fetch(frame)
-- Initialise and populate variables
local getArgs = require("Module:Arguments").getArgs
local args = getArgs(frame)
return p._fetch(args)
end
return p