local p = {} local siniflar = {} siniflar.a = { "Vito Genovese", "HastaLaVi2", "Sezgin İbiş", "ToprakM", "Evrifaessa", "Vikipolimer", diger = {"ay", "arayüz yöneticisi", "arayüz yöneticileri"} } siniflar.b = { "Mskyrider", "Elmacenderesi", "Yabancı", "Vito Genovese", "Superyetkin", "Vikiçizer", diger = {"bürokrat", "bürokratlar"} } siniflar.d = { "Elmacenderesi", "Uncitoyen", diger = {"denetçi", "denetçiler"} } siniflar.g = { "Elmacenderesi", "Eldarion", "Taysin", diger = {"gözetmen", "gözetmenler"} } siniflar.h = { "Citrat", "Fagus", "Vito Genovese", "Mskyrider", "Eldarion", "Elmacenderesi", "Cat", "Khutuck", "Yabancı", "Gökhan", "Vikiçizer", "Ahzaryamed", "Superyetkin", "Sabri76", "Reality006", "Akhilleis", "Théoden", "Mukaddime", "Uncitoyen", "Zaitsév", "HakanIST", "ToprakM", "Vincent Vega", "Vikipolimer","Seksen iki yüz kırk beş", diger = {"hizmetli", "hizmetliler"} } siniflar.t = { "Alperen", "Mavrikant", "Kumul", "Galaksidekiotostopcu", "HastaLaVi2", "Sadrettin", "Sezgin İbiş", "Goktr001", "Evrifaessa", diger = {"teknisyen", "teknisyenler"} } for _,sinif in pairs(siniflar) do if sinif.diger then for _,d in ipairs(sinif.diger) do siniflar[d] = sinif end end end local function makeError(msg) msg ='Şablon:Seslen hatası: ' .. msg return mw.text.tag('strong', {['sınıf']='error'}, msg) end function p.seslen(frame) local origArgs = frame:getParent.args local args = {} local maxArg = 1 local usernames = 0 if origArgs.grup then if siniflar[origArgs.grup] then for k,g in ipairs(siniflar[origArgs.grup]) do if k > maxArg then maxArg = k end table.insert(args, g) usernames = usernames + 1 end end end for k, v in pairs(origArgs) do if type(k) 'number' then if mw.ustring.match(v,'%S') then if k > maxArg then maxArg k end usernames usernames + 1 local title mw.title.new(v) if not title then return makeError('Desteklenmeyen karakter girişi yapıldı.') end args[k] title.rootText end elseif v and k:sub(0,5) 'etiket' then args[k] '​' else args[k] v end end if usernames > (tonumber(frame.args.enfazla) or 50) then return makeError(string.format( '%s kişiden fazlası girilemez.', tostring(frame.args.enfazla or 50) )) else if usernames < 1 then if frame.args['örnek'] then args[1] frame.args['örnek'] else return makeError('Kullanıcı adı belirtilmedi.') end end args['etiket1'] args['etiket1'] or args['etiket'] local isfirst true local outStr args['önek'] or '@' for i 1, maxArg do if args then if isfirst then isfirst false else if ( (usernames > 2) or ((usernames 2) and (args['c'] ',')) ) then outStr outStr..', ' end if i maxArg then outStr = outStr..' '..(args['c'] or ) .. ' ' end end outStr = string.format( '%s%s', outStr, args, args['etiket'..tostring(i)] or args ) end end outStr = outStr..(args['p'] or '') return mw.text.tag('span', {['sınıf']='template-ping'}, outStr) end end return p