Jump to content

Module:Team appearances list

ពីវិគីភីឌា

This module implements {{Team appearances list}}. Check there for usage documentation.

Modules

Module:Team appearances list is invoked by {{Team appearances list}} to display a horizontal list showing the years a specified team participated in a specified competition. Each year of attendance is wikilinked to a corresponding article, while years the team did not compete (absences) are shown as disabled.

The names of the competition and team must be specified. Optionally, information for a competition can be defined in Module:Team appearances list/data, and team information can be included:

  • begin_year – The first year to be shown.
  • end_year – The last year to be shown.
  • Years the team did not attend the competition.

If begin_year or end_year are defined for a team, they set default values that can be overridden with parameters in the template.

If a team is defined for a particular competition, any absent years in the templace call are ignored (instead, the absences defined in the data module are used).

Module:Team appearances list/show is used for testing. It shows the results for all competition/team pairs defined in the data module. The results are displayed at Module talk:Team appearances list/show.

Changes should be performed in the sandbox modules, using the following for testing:

Errors

Parameters provided by the template are validated using the following rules.

Always:
    competition   required : non-empty string
    team          required : non-empty string

If competition is defined in data module:
    begin_year    optional : number from 1800 to 2100 inclusive
    end_year      optional : as above (and end_year >= begin_year)
else:
    begin_year    required : as above
    end_year      optional : as above
    interval      required : number from 1 to 30 inclusive

An invalid parameter causes an error to be displayed and places the page in the hidden category Category:Pages with script errors.


-- This module implements [[Template:Team appearances list]].

local p = {}

local function make_link(country, competition, year)
    return string.format('[[%s at the %s %d|%d]]', country, competition, year, year)
end

local function make_options(args)
    -- Validate and extract options
    local options = {}
    options.competition = args.competition or error('Parameter competition is missing')
    options.team = args.team or error('Parameter team is missing')
    options.year = tonumber(args.year) or error('Parameter year is not a number')
    return options
end

function p.main(frame)
    local args = frame:getParent().args
    local options = make_options(args)
    return make_link(options.team, options.competition, options.year)
end

return p