মডিউল:জাতীয় দল
মডিউল নথি[তৈরি করুন]
আপনি চাইলে এই স্ক্রিবুন্তো মডিউলের জন্য একটি নথির পাতা তৈরি করতে পারেন (তৈরি করুন) সম্পাদনাকারীগণ খেলাঘর (তৈরি করুন | আয়না) এবং পরীক্ষা পাতায় (তৈরি করুন) এই মডিউল সংক্রান্ত পরীক্ষা-নিরীক্ষা করতে পারেন। দয়া করে /নথি উপপাতায় বিষয়শ্রেণী যোগ করুন। এই মডিউলের উপপাতাসমূহ। |
-- কোন টেমপ্লেট একাধিকবার ব্যবহার করা হলে
-- এই মডিউলটি [[টেমপ্লেট:জাতীয় দল]] এবং [[টেমপ্লেট:National squad no numbers]]-এ
-- [[:বিষয়শ্রেণী:যেসকল স্থানে টেমপ্লেট অন্তর্ভুক্তির আকার অতিক্রম করে গেছে সেই পাতাগুলো]] যুক্ত হওয়া এড়াতে ব্যবহৃত হয়
local p = {}
local prefixes = {
['male'] = 'পুরুষ ',
['পুরুষ'] = 'পুরুষ ',
['men'] = 'পুরুষ ',
['mens'] = 'পুরুষ ',
['men\'s'] = 'পুরুষ ',
['নারী'] = 'মহিলা ',
['মহিলা'] = 'মহিলা ',
['female'] = 'মহিলা ',
['women'] = 'মহিলা ',
['womens'] = 'মহিলা ',
['women\'s'] = 'মহিলা ',
[''] = ''
}
function p.main(frame)
local getArgs = require('মডিউল:Arguments').getArgs
local args = getArgs(frame, {parentFirst = true})
local country = args.country or '{{{country}}}'
local coach_label = args.coach_type or 'কোচ'
local comp = args.comp or '{{{comp}}}'
local sport = args.sport or 'ফুটবল'
local gender = prefixes[args.gender or ''] or ''
local titlestyle = 'background-color:' .. (args.bg or 'transparent') .. ';'
.. 'color:' .. (args.fg or 'inherit') .. ';'
.. 'border: 1px solid ' .. (args.bordercolor or '#aaa') .. ';'
local image = args.country ~= 'সমন্বিত দল' and frame:expandTemplate{
title = 'পতাকা আইকন',
args = {args.country or 'none', args.flagvar or '', size = '50px'}
} or frame:expandTemplate{
title = 'পতাকা আইকন চিত্র',
args = {'Olympic flag.svg', size = '50px'}
}
local ospan = '<span style="color:' .. (args.fg or 'inherit') .. '">'
local cspan = '</span>'
local title = string.format('[[%s|%s%s%s]] – [[%s|%s%s%s]]',
args['team link'] or (country .. ' জাতীয় ' .. gender .. sport .. ' দল'),
ospan, args.title or country .. ' দল', cspan,
args['comp link'] or comp, ospan, comp, cspan)
local haspos = false
-- ট্র্যাকিং এবং সতর্কতার প্রাকদর্শন
local knownargs = {['bg']=1, ['fg']=1, ['bordercolor']=1, ['coach']=1, ['coach_type']=1,
['comp']=1, ['comp link']=1, ['country']=1, ['flagvar']=1, ['gender']=1,
['list']=1, ['name']=1, ['nonumbers'] = 1, ['note']=1, ['sport']=1, ['team link']=1, ['title']=1}
local badargs = {}
local numlist = {}
for k, v in pairs(args) do
if knownargs[k] then
elseif type(k) == 'string' then
local n = tonumber(k:match('^p(%d+)$') or k:match('pos(%d+)') or '-1')
if k:match('^p%d+$') and n >= 0 and n <= 99 then
table.insert(numlist, k:match('^p(%d+)$'))
elseif args.nonumbers and (k:match('^pos%d+$') and n >= 0 and n <= 99) then
if v and v ~= '' then haspos = true end
elseif v and v ~= '' then
table.insert(badargs, k)
end
elseif v and v ~= '' then
table.insert(badargs, k)
end
end
table.sort(
numlist,
function (a, b)
return tonumber(a) < tonumber(b) or (tonumber(a) == tonumber(b) and #a > #b)
end
)
local pv = require('মডিউল:If preview')
local preview, tracking = '', ''
if #badargs > 0 then
for k, v in pairs(badargs) do
if v == '' then v = ' ' end
v = mw.ustring.gsub(v, '[^%w\-_ ]', '?')
preview = preview .. pv._warning({
'জাতীয় দল টেমপ্লেটে অজানা প্যারামিটার "' .. v .. '" ব্যবহার করা হচ্ছে।'
})
tracking = tracking .. '[[বিষয়শ্রেণী:অজানা প্যারামিটারসহ জাতীয় দল ব্যবহার করা পাতা|' .. v .. ']]'
end
end
if (args['title'] == nil and args['team link'] == nil and args.country == nil) or args.comp == nil then
tracking = tracking .. '[[বিষয়শ্রেণী:অজানা প্যারামিটারসহ জাতীয় দল ব্যবহার করা পাতা|!]]'
end
if not args['comp link'] then
tracking = tracking .. '[[বিষয়শ্রেণী:comp link ছাড়া জাতীয় দল ব্যবহার করা পাতা]]'
end
if not args['sport'] then
if not args['team link'] then
tracking = tracking .. '[[বিষয়শ্রেণী:ক্রীড়া বা দলের সংযোগ ছাড়া জাতীয় দল ব্যবহার করা পাতা]]'
end
end
if sport ~= 'ফুটবল' and sport ~= 'ফুটসাল' and sport ~= 'বাক্সেটবল' then
if not args['team link'] then
local sortkey = mw.ustring.gsub(sport, '[^A-Za-z]', ' ')
tracking = tracking .. '[[বিষয়শ্রেণী:দলের সংযোগ ছাড়া জাতীয় দল ব্যবহার করা পাতা|' .. sortkey .. ' ]]'
end
end
if prefixes[args.gender or ''] == nil then
tracking = tracking .. '[[বিষয়শ্রেণী:অসমর্থিত লিঙ্গসহ জাতীয় দল ব্যবহার করা পাতা]]'
end
if args.name == nil then
tracking = tracking .. '[[বিষয়শ্রেণী:নাম ছাড়া জাতীয় দল ব্যবহার করা পাতা]]'
end
-- if tracking ~= '' and mw.title.getCurrentTitle().namespace > 0 then tracking = '' end
local convert = require('মডিউল:সংখ্যা রূপান্তরকারী').convert
local list1 = args.list or ''
if list1 == '' then
for i,k in ipairs(numlist) do
if args['p' .. k] then
local n = args.nonumbers and (args['pos' .. k] or '') or tostring(k)
if n ~= '' or haspos == true then
list1 = list1 .. string.format(
'*%s <span class="vcard agent"><span class="fn">%s</span></span>\n',
convert('bn', tostring(n)), args['p' .. k])
else
list1 = list1 .. string.format(
'*<span class="vcard agent"><span class="fn">%s</span></span>\n', args['p' .. k])
end
end
end
if args.coach then
list1 = list1 .. string.format(
'*<span class="vcard agent">%s: <span class="fn">%s</span></span>',
coach_label, args.coach)
end
end
local list3 = args.note and ('' .. args.note .. '') or nil
return require('মডিউল:Navbox')._navbox({
name = args.name,
titlestyle = titlestyle,
listclass = 'hlist', bodyclass = 'vcard', titleclass = 'fn org',
image = image, title = title, list1 = list1, list3 = list3
}) .. tracking .. preview
end
return p