{{#invoke:Political party|fetch|<party>|<value>}}
Los partidos políticos incluidos en este módulo se dividen en listas ordenadas alfabéticamente según el primer carácter del nombre (por ejemplo, "Partido Laborista (Reino Unido)" aparecería bajo /L ). La subpágina /1 es para cualquier partido que no comience con las letras A a Z del alfabeto latino (incluidos los números y los caracteres acentuados).
Dentro de cada submódulo de datos hay dos grupos locales: local alternate
y local full
.
El grupo alternativo es para nombres alternativos de un partido. El siguiente es un ejemplo de nombres alternativos para el Partido Laborista (Reino Unido) :
alternativo local = { .... [ "Partido Laborista y Cooperativo" ] = "Partido Laborista (Reino Unido)" , [ "Partido Laborista Cooperativo" ] = "Partido Laborista (Reino Unido)" , ... }
La primera entrada entre corchetes es el nombre alternativo, y la segunda entrada, solo entre comillas, es el nombre que se encuentra en el full
grupo, que se ve a continuación. Tenga en cuenta que el nombre alternativo de un partido debe almacenarse en su subpágina basada en letras correspondiente; "Alabama Democratic Party" aparece en /A aunque es un nombre alternativo para "Democratic Party (US)" (que se almacena en /D ).
local completo = { .... [ "Partido Laborista (Reino Unido)" ] = { abbrev = "Lab" , color = "#E4003B" , shortname = "Labour" ,}, ... }
Hay tres valores almacenados para cada parte:
abbrev
).color
), que puede ser un triplete hexadecimal o un nombre de color básico o, si el grupo no tiene un color asociado, "predeterminado".shortname
).Los valores agregados a estos parámetros no necesitan ser únicos respecto de las otras partes en este módulo, a diferencia del nombre principal de una parte.
Si no se almacena un valor de nombre para una de las partes, el módulo intentará devolver la otra variante de nombre "corto" antes de devolver la entrada. Por lo tanto, si abbrev
se almacena pero shortname
no se almacena, independientemente del valor que se solicite, devolverá el abbrev
valor.
Las solicitudes deben realizarse en la página de discusión, en una nueva sección. Copie la siguiente línea y complete solo los campos correspondientes a la parte. Se requiere un nombre de la parte, así como al menos otro dato. Consulte más arriba para obtener información sobre cada valor.
["party"] = {abbrev = "", color = "", shortname = "",},
local p = {} local default_color = '#F8F9FA' local categorys = { party_not_in_list = '[[Categoría:Páginas que usan Partido político con partido desconocido]]' , shortname_not_in_list = '[[Categoría:Páginas que usan Partido político con nombre corto faltante]]' , color_not_in_list = '[[Categoría:Páginas que usan Partido político con color faltante]]' , } local function create_error ( error_message ) return string.format ( '<strong class = "error" > %s</strong>' , error_message ) end local function getFirstLetter ( party ) local index = mw.ustring . sub ( party , 1 , 1 ) -- Establecer índice para inicios que no sean de la A a la Z if string.match ( index , '%A' ) then return '1' end return string.upper ( index ) end local function stripToNil ( text ) -- Si text es una cadena, devuelve su contenido recortado, o nil si está vacío. -- De lo contrario, devuelve text (que puede ser nil, por ejemplo). 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 -- Ejemplo de tener todos los datos (color y nombres) en una tabla. Requiere que se edite una página en lugar de dos al agregar una nueva fiesta. function p . _fetch ( args ) if not args [ 1 ] then return create_error ( "el parámetro 1 debe ser el nombre de una fiesta." ) fin si no args [ 2 ] entonces devuelve create_error ( "el parámetro 2 debe ser el tipo de salida." ) fin local party = stripToNil ( args [ 1 ]) local out_type = stripToNil ( args [ 2 ]) si out_type == 'color' entonces out_type = 'color' fin local index = getFirstLetter ( party ) -- Cargar datos desde el submódulo local data = mw . loadData ( 'Módulo:Partido político/' .. index ) local data_all = data . full local party_alt = data . alternative [ party ] local party_info si party_alt entonces si data_all [ party_alt ] entonces party_info = data_all [ party_alt ] de lo contrario index = getFirstLetter ( party_alt ) data = mw . loadData ( 'Módulo:Partido político/' .. index ) party_info = data . completo [ party_alt ] fin de lo contrario party_info = data_all [ party ] fin -- Verificar si existe un valor en la base de datos -- * Ni siquiera en la base de datos - devuelve el error o la entrada dada -- * Sin color - devuelve un error -- * Sin nombre corto/abreviatura - devuelve el primer valor no en blanco de abreviatura->nombre corto->entrada si no party_info entonces si out_type == ' color' entonces devuelve args.error o color predeterminado de lo contrario devuelve args.error o party fin fin local return_value = party_info [ out_type ] si valor_de_retorno == "" entonces si tipo_de_retorno == 'color' entonces devuelve args . error o create_error ( "El valor no está en la plantilla. Solicite que se agregue." ) elseif tipo_de_retorno == 'abbrev' entonces si información_de_fiesta . nombre_corto ~= "" entonces devuelve información_de_fiesta . nombre_corto de lo contrario devuelve fiesta fin elseif tipo_de_retorno == 'nombre_corto' entonces si información_de_fiesta . abbrev ~= "" entonces devuelve información_de_fiesta . abbrev de lo contrario devuelve fiesta fin de lo contrario devuelve fiesta fin fin si tipo_de_retorno == 'color' entonces si cadena.find ( valor_de_retorno , '#' ) entonces valor_de_retorno = cadena.gsub ( valor_de_retorno , '#' , '#' ) de lo contrario si cadena.lower ( valor_de_retorno ) == 'predeterminado' entonces devuelve color_predeterminado fin fin devuelve valor_de_retorno fin función p . fetch ( frame ) - Inicializar y rellenar variables local getArgs = require ( "Module:Arguments" ). getArgs local args = getArgs ( frame ) return p . _fetch ( args ) end return p