Module:TagDetails: Difference between revisions

From Eco - English Wiki
[checked revision][checked revision]
m Use util function, use template instead of html
m Minor bug fix
Line 1: Line 1:
-- Credit: User:Avaren
-- Credit: User:Avaren
local Utils = require('Module:Utils')


local p = {}
local p = {}


-- build tag list
-- build tag list
function p.tagList( frame )
function p.tagList(frame)
local utils = require( 'Module:Utils' )
  local args = Utils.normaliseArgs(frame)
local args = utils.normaliseArgs( frame )
 
  -- check that all necessary arguments are passed correctly
-- check that all necessary arguments are passed correctly
  if args.name == nil or args.name == '' then
if args.name == nil or args.name == '' then
    return '\'name\' must be specified.'
return '\'name\' must be specified.'
  end
end
 
  local tagName = args.name
local tagName = args.name
 
  local itemData = require("Module:ItemData")
local itemData = require("Module:ItemData")
 
  local tagList = itemData.tags
local tagList = itemData.tags
 
  local itemList = tagList[tagName]
local itemList = tagList[tagName]
 
  if (itemList == nil) then
if (itemList == nil) then
    return tagName .. " could not be found in Module:ItemData"
return tagName .. " could not be found in Module:ItemData"
  end
end
 
  local text = ""
local text = ""
 
  text = text .. frame:expandTemplate{
text = text .. frame:expandTemplate{
    title = 'IconFrame',
title = 'IconFrame',
    args = {
args = {
      file = string.gsub(tagName, ' ', '') .. '_Icon.png', link = tagName .. 'Tag',
file = string.gsub( tagName, ' ', '' ) .. '_Icon.png', link = tagName .. 'Tag',  
      text = '<h3>[[' .. tagName .. 'Tag]]</h3>', style = 'iconWhite'
text = '<h3>[[' .. tagName .. 'Tag]]</h3>', style = 'iconWhite'
    }
}
  }
}
   
  text = text .. '\n\n\nItems with the ' .. tagName .. ' Tag:\n'
text = text .. '\n\n\nItems with the ' .. tagName .. ' Tag:\n'
 
  for k, item in pairs(itemList) do
for k, item in pairs( itemList ) do
   
    text = text .. frame:expandTemplate{
text = text .. frame:expandTemplate{
      title = 'IconFrame',
title = 'IconFrame',
      args = {
args = {
        file = string.gsub(item, ' ', '') .. '_Icon.png', link = item,
file = string.gsub( item, ' ', '' ) .. '_Icon.png', link = item,  
        text = '<h3>[[' .. item .. ']]</h3>', style = 'iconBlue'
text = '<h3>[[' .. item .. ']]</h3>', style = 'iconBlue'
      }}
}
     
}
    end
   
end
    return text
  end
return text
 
end
  return p
 
return p

Revision as of 11:10, 21 February 2021

Documentation

This module is a part of the Template:TagDetails, and is used to generate cards that display information about Tags.

If the template is passed, this module is used with the following Modules:


-- Credit: User:Avaren

local Utils = require('Module:Utils')

local p = {}

-- build tag list
function p.tagList(frame)
  local args = Utils.normaliseArgs(frame)
  
  -- check that all necessary arguments are passed correctly
  if args.name == nil or args.name == '' then
    return '\'name\' must be specified.'
  end
  
  local tagName = args.name
  
  local itemData = require("Module:ItemData")
  
  local tagList = itemData.tags
  
  local itemList = tagList[tagName]
  
  if (itemList == nil) then
    return tagName .. " could not be found in Module:ItemData"
  end
  
  local text = ""
  
  text = text .. frame:expandTemplate{
    title = 'IconFrame',
    args = {
      file = string.gsub(tagName, ' ', '') .. '_Icon.png', link = tagName .. 'Tag',
      text = '<h3>[[' .. tagName .. 'Tag]]</h3>', style = 'iconWhite'
    }
  }
    
  text = text .. '\n\n\nItems with the ' .. tagName .. ' Tag:\n'
  
  for k, item in pairs(itemList) do
    
    text = text .. frame:expandTemplate{
      title = 'IconFrame',
      args = {
        file = string.gsub(item, ' ', '') .. '_Icon.png', link = item,
        text = '<h3>[[' .. item .. ']]</h3>', style = 'iconBlue'
      }}
      
    end
    
    return text
  end
  
  return p