Module:TagList

From Eco - English Wiki
Revision as of 10:26, 25 June 2024 by StalEF (talk | contribs) (StalEF moved page Module:TagsList to Module:TagList without leaving a redirect)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This module provides the back end functionality of the Template:TagsList.

If the template is passed, this module creates a list using details from the following Modules:

Credit[edit source]

Original SkillList was created by Fyre (FishAus) then edited by Scotty (ZeelNightwolf) and used as a base for TagsList.


-- Credit: Original SkillList was created by Fyre (FishAus) then edited by Scotty (ZeelNightwolf) and used as a base for tagsList.

local p = {}

local Utils = require('Module:Utils')
local L = require('Module:Localization')

-- Main entry point for the Module
function p.main(frame)
  -- get args from the Template
  local args = Utils.normaliseArgs(frame)
  
  if args.list == nil or args.list == '' then
    return '\'list\' must be specified.'
  end

  -- assign variables for list
  local list = args.list

  -- load lists
  local itemData = mw.loadData("Module:ItemData")
  local tagsList = ''
  
  --Check Passes
  if list ~= 'tags' then
    return tagsList .. ' Incorrect use of pass. '
  end

  local a = {}
  --Tags List
  if list == 'tags' then
    tagsList = tagsList .. '<div style=\"column-count:3;-moz-column-count:3;-webkit-column-count:3\">\n'
    
    for k, v in pairs(itemData.tags) do
      if itemData.tags[k] ~= nil then
        table.insert(a, k)
      end
    end
    table.sort(a)
    for i, n in ipairs(a) do
      local link = L.t('%s Tag'):format(n)
      tagsList = tagsList .. '* [[' .. link .. '|' .. n .. ']]\n'
    end
    tagsList = tagsList .. '[[Category:Tags]]</div>'
  end

  return tagsList
end

return p