Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Usage  





2 Parameters  





3 Updating the module  



3.1  Alternate party names  





3.2  Table values  







4 Requesting an addition or a change  





5 Error messages  





6 Data pages  














Module:Political party






Alemannisch
العربية
Azərbaycanca

Беларуская
Беларуская (тарашкевіца)

Bosanski
Буряад
Cebuano
Cymraeg
Deutsch
فارسی
Føroyskt


Hausa
Հայերեն
ि
Bahasa Indonesia
Íslenska
Kurdî
ि
Македонски

Malti


مازِرونی
Bahasa Melayu
Монгол



Norsk bokmål
ି


Polski
Português

Shqip

Simple English
سنڌي
Slovenčina
Slovenščina
کوردی
ி
 


Türkçe
Українська
اردو
Tiếng Vit

 

Edit links
 









Module
Talk
 

















Read
View source
View history
 








Tools
   


Actions  



Read
View source
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 





Permanently protected module

From Wikipedia, the free encyclopedia
 


Usage

{{#invoke:Political party|fetch|<party>|<value>}}

Parameters

Parameter Description
1 The political party's name. If a party is not found, place a request at the talk page.
error Optional, this parameter will return the provided |error= value if the module does not contain the requested party or color.

Updating the module

The political parties contained in this module are split into alphabetised lists based on the first character of the name (for example, "Labour Party (UK)" would be under /L). The /1 subpage is for any party that does not start with the letters A to Z of the Latin alphabet (including numbers and accented characters).

Within each data submodule are two local groups: local alternate and local full.

Alternate party names

The alternate group is for alternate names of a party. The following is an example of alternate names for the Labour Party (UK):

local alternate = {
    ....
 ["Labour and Co-operative"] = "Labour Party (UK)",
 ["Labour Co-operative"] = "Labour Party (UK)",
    ...
}

The first entry in square brackets is the alternate name, and the second entry only in quotes is the name found in the full group, seen below. Note that the alternate name of a party should be stored in its corresponding letter-based subpage; "Alabama Democratic Party" is listed in /A even though it is an alternate name for "Democratic Party (US)" (which is stored in /D).

Table values

local full = {
    ....
 ["Labour Party (UK)"] = {abbrev = "Lab", color = "#E4003B", shortname = "Labour",},
    ...
}

There are three values stored for each party:

The values added to these parameters need not be unique from other parties in this module, unlike the primary name of a party.

If a name value is not stored for a party, the module will attempt to return the other "short" name variant before returning the input. Thus, if abbrev is stored but shortname is not, regardless of which value is asked for it will return the abbrev value.

Requesting an addition or a change

Requests should be made at the talk page in a new section. Copy the following line and fill in only the fields relevant to the party. A party name is required as is at least one other piece of information. See above for information regarding each value.

Error messages

Module error messages and resolutions
Error message Resolution
Lua error: bad argument #1 to 'sub' (string expected, got table). An entry intended for the "local full" section has been placed into the "local alternate" section. Move it to the "local full" section
Lua error in package.lua at line 80: module 'Module:Political party/' not found. Party added to alternate list with empty value.
Value not in template. Please request that it be added. (article search) The party in question has an entry with no color in the "local full" section. (This can be caused by duplicate entries in "local full" that, if present, should be merged.)
(no error message, but party color is white/blank) Add a color for the party to its entry in the "local full" section in the relevant Module:Political party/ lettered data page (see links below).
parameter 1 should be a party name (article search) A template is trying to feed a missing parameter to the module. Work around this by testing for the parameter in the template.
parameter 2 should be the output type (article search)

Data pages

  • Political party/A
  • Political party/B
  • Political party/C
  • Political party/D
  • Political party/E
  • Political party/F
  • Political party/G
  • Political party/H
  • Political party/I
  • Political party/J
  • Political party/K
  • Political party/L
  • Political party/M
  • Political party/N
  • Political party/O
  • Political party/P
  • Political party/Q
  • Political party/R
  • Political party/S
  • Political party/T
  • Political party/U
  • Political party/V
  • Political party/W
  • Political party/X
  • Political party/Y
  • Political party/Z
  • local p = {}
    
    local default_color = '&#35;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 getFirstLetter(party)
     local index = mw.ustring.sub(party, 1, 1)
     -- Set index for non-A-Z starts
     if string.match(index, '%A') then
      return '1'
     end
     return string.upper(index)
    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
     local index = getFirstLetter(party)
     
     -- Load data from submodule
     local data = mw.loadData('Module:Political party/' .. index)
     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
       index = getFirstLetter(party_alt)
       data = mw.loadData('Module:Political party/' .. index)
       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, '#', '&#35;')
     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
    

    Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:Political_party&oldid=1153649409"

    Category: 
    Modules for general use
    Hidden category: 
    Wikipedia template-protected modules
     



    This page was last edited on 7 May 2023, at 14:19 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki