มอดูล:Flag
หน้าตา
| มอดูลนี้ถูกจัดอันดับเป็นระดับเบตา ซึ่งหมายถึงสามารถใช้งานในวงกว้างได้แล้วในระดับหนึ่ง แต่ยังใหม่และควรใช้ความระมัดระวังในการใช้งานเพื่อให้ตรงตามความต้องการและจุดประสงค์ |
| มอดูลนี้ขึ้นอยู่กับมอดูลอื่น ๆ ดังต่อไปนี้ |
Lua-native alternative to popular flag templates. Can be used to reduce post-expand include size of pages with lots of templates, since it avoids calling multilevel templates.
Usage
[แก้]- {{flag}} → {{#invoke:flag|main}}
- {{flagcountry}} → {{#invoke:flag|country}}
- {{flagdeco}} → {{#invoke:flag|deco}}
- {{flagicon}} → {{#invoke:flag|icon}}
- {{flag+link}} → {{#invoke:flag|+link}}
Examples
[แก้]| Template | Module | ||||
|---|---|---|---|---|---|
| Code | Output | PEIS | Code | Output | PEIS |
{{flag|China}} |
443b | {{#invoke:flag|main|China}} |
ข้อผิดพลาดสคริปต์: ฟังก์ชัน "main" ไม่มีอยู่ | 128b | |
{{flagcountry|China}} |
577b | {{#invoke:flag|country|China}} |
128b | ||
{{flagdeco|China}} |
452b | {{#invoke:flag|deco|China}} |
107b | ||
{{flagicon|China}} |
548b | {{#invoke:flag|icon|China}} |
117b | ||
{{flag+link|History of|China}} |
663b | {{#invoke:flag|+link|History of|China}} |
139b | ||
local margs = require('มอดูล:Arguments')
local function _main(frame, name, mode)
local categories = {
['Flagicon'] = '[[หมวดหมู่:Flagicons ขาดแม่แบบข้อมูลประเทศ]]',
['Flag decoration'] = '[[หมวดหมู่:Flag decoration ขาดแม่แบบข้อมูลประเทศ]]',
}
local yesno = require('มอดูล:Yesno')
--Get input arguments
local args = margs.getArgs(frame, {
frameOnly = ((frame.args.frameonly or '') ~= ''), valueFunc =
function(key,value)
if value then
value = mw.text.trim(value)
--Change empty string to nil for all args except 'image' and 'border'
if key=="image" or key=="border" or value~="" then
return value
end
end
return nil
end
} )
local preftext, sufftext = "", ""
if name == 'Flag+link' then
args.pref = args[1]
elseif name == 'Flagathlete' then
args.preftext = args[1]
args[2] = args.code or args[2] or ""
args.variant = args.variant or args[3]
elseif name == 'Flagmedalist' then
preftext = (args[1] or "") .. "<br/>"
args[2] = args.code or args[2] or ""
args.variant = args.variant or args[3]
elseif name == 'Flaglink' then
args.suff = args[2]
args[2] = args[1] or ""
args.variant = args.variant or args[3]
else
sports = {fb = 'fb', ['fb-rt'] = 'fb', fbicon = 'fb', ru = 'ru'}
if sports[name] then
args.avar = sports[name]
if name == 'fb' and yesno(args.align) == true then
args.align='c'
end
elseif name == "Flagteam" and (args.code or args[1]) then
sufftext = ' <span style="font-size:90%;">('..(args.code or args[1])..')</span>'
end
args.variant = args.variant or args[2]
args[2] = args[1] or ""
end
args[1] = mode .. (args.opts or '')
args.missingcategory = categories[name]
args.noredlink = args.noredlink or 'notext'
if args.placeholder and yesno(args.placeholder) ~= true then
args[1] = args[1] .. 'o'
end
if mw.title.getCurrentTitle().namespace == 0 then
local unknown = '[[Category:หน้าที่ใช้ ' .. mw.ustring.lower(name) ..
' ที่มีพารามิเตอร์ที่ไม่รู้จัก|_VALUE_' .. frame:getParent():getTitle() .. ']]'
else
local unknown = ''
end
check = ''
if name == 'Flagicon' then
local opts = {
unknown=unknown,
preview='หน้านี้ใช้ [[แม่แบบ:' .. name .. ']] ที่มีพารามิเตอร์ที่ไม่รู้จัก "_VALUE_"',
ignoreblank='y',
'1','2','variant','image','size','sz','border','align','al','width',
'w','alt','ilink','noredlink','missingcategory','name','clink','link',
'pref','suff','plink','the','section','altvar','avar','age','nalign',
'nal','text','nodata','opts','placeholder','getParent','frameonly'
}
check = require('มอดูล:Check for unknown parameters')._check(opts,args)
end
return preftext .. require('มอดูล:Flagg').luaMain(frame,args) .. sufftext .. check
end
local p = {
[''] = function (frame) return _main(frame, 'Flag', 'unc' ) end,
decoration = function (frame) return _main(frame, 'Flag decoration', 'uxx' ) end,
icon = function (frame) return _main(frame, 'Flagicon', 'cxxl' ) end,
link = function (frame) return _main(frame, 'Flaglink', 'unpe' ) end,
['+link'] = function (frame) return _main(frame, 'Flag+link', 'unpefo') end,
country = function (frame) return _main(frame, 'Flagcountry', 'unce' ) end,
team = function (frame) return _main(frame, 'Flagteam', 'unce' ) end,
athlete = function (frame) return _main(frame, 'Flagathlete', 'unape' ) end,
medalist = function (frame) return _main(frame, 'Flagmedalist', 'unce' ) end,
fb = function (frame) return _main(frame, 'fb', 'unpe' ) end,
['fb-rt'] = function (frame) return _main(frame, 'fb-rt', 'unpre' ) end,
fbicon = function (frame) return _main(frame, 'fbicon', 'pxxl' ) end,
ru = function (frame) return _main(frame, 'ru', 'unpe' ) end,
IOC = function (frame) return require('มอดูล:Country_alias').flagIOC(frame:newChild{ title = 'แม่แบบ:FlagIOC' }) end,
IOC2 = function (frame) return require('มอดูล:Country_alias').flagXYZ(frame:newChild{ title = 'แม่แบบ:FlagIOC2', args = {name = margs.getArgs(frame).name or '', type = 'name'} }) end,
IOCathlete = function (frame) return require('มอดูล:Country_alias').flagXYZ(frame:newChild{ title = 'แม่แบบ:FlagIOCathlete', args = {type = 'athlete-O'} }) end,
}
p['deco'] = p.decoration
p['IOC2'] = p.IOC2
p['IOCathlete'] = p.IOCathlete
return p