Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Modül:Ice hockey box

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
-- implements template:IceHockeybox local p = {} local errorcats = local function isnotempty(s) return s and s:match( '^%s*(.-)%s*$' ) ~= end local function mysplit(s) -- Change tags to slashes s = mw.ustring.gsub(s or , '<[\/%s]*[Bb][Rr][^<>]*>', ' / ') s = mw.ustring.gsub(s or , '[%s]* /[%s]*', ' / ') s = mw.ustring.gsub(s or , '[%s]*/ [%s]*', ' / ') -- Split into a table s = mw.text.split(s .. ' / ', ' / ') -- Remove empty rows local t = {} for k=1,#s do if isnotempty(s[k]) then table.insert(t, s[k]) end end return t end local function scoringtable(g1, g2, p) local root = -- If there is no progression then do a very simple format if (not isnotempty(p)) and (isnotempty(g1) or isnotempty(g2)) then root = mw.html.create('table') root :attr('cellspacing', '0') :css('width', '100%') local row = root:tag('tr'):css('text-align','top') row:tag('td') :css('text-align','right') :css('width', '39%') :wikitext(g1 or ) row:tag('td') :css('text-align','center') :css('width', '22%') :tag('i'):wikitext('Goals') row:tag('td') :css('text-align','left') :css('width', '39%') :wikitext(g2 or ) return tostring(root) end -- Split into tables local gt1 = mysplit(g1) local gt2 = mysplit(g2) local pt = mysplit(p) -- Align goals with scores in progression local score1, score2 = 0, 0 for k = 1,#pt do local s1 = tonumber(mw.ustring.gsub(pt[k] or , '^[%s]*([0-9][0-9]*)[^0-9][^0-9]*([0-9][0-9]*)[%s]*$', '%1') or '-1') or -1 local s2 = tonumber(mw.ustring.gsub(pt[k] or , '^[%s]*([0-9][0-9]*)[^0-9][^0-9]*([0-9][0-9]*)[%s]*$', '%2') or '-1') or -1 if s1 (score1 + 1) and s2 score2 then score1 = s1 table.insert(gt2, k, ) elseif s2 (score2 + 1) and s1 score1 then score2 = s2 table.insert(gt1, k, ) else errorcats = errorcats .. errorcats = errorcats .. 'Error: Goals/Progression mismatch: S1 = ' .. s1 .. ' S2 = ' .. s2 .. ' GT1 = ' .. (gt1[k] or ) .. ' GT2 = ' .. (gt2[k] or ) .. end end if not (#gt1 #pt) or not(#gt2 #pt) then errorcats = errorcats .. errorcats = errorcats .. 'Error: Goals/Progression mismatch: N1 = ' .. #gt1 .. ' N2 = ' .. #gt2 .. ' PN = ' .. #pt .. end -- Now build the score table for k=1,#pt do if k == 1 then root = mw.html.create('table') root :attr('cellspacing', '0') :css('width', '100%') end local row = root:tag('tr'):css('text-align','top') row:tag('td') :css('text-align','right') :css('width', '39%') :wikitext(gt1[k] or ) row:tag('td') :css('text-align','center') :css('width', '22%') :wikitext(pt[k] or ) row:tag('td') :css('text-align','left') :css('width', '39%') :wikitext(gt2[k] or ) end return tostring(root) end function p.box( frame ) local args = frame:getParent.args local res = local id = args['id'] or id = mw.ustring.gsub(id,'^"(.-)"$', '%1') local root = mw.html.create('table') root :attr('cellspacing', '0') :attr('id', id ) :css('width', '100%') :css('background-color', args['bg'] or '#eeeeee') :addClass('vevent') local row = root:tag('tr'):addClass('summary') -- Date and time local cell = row:tag('td') :css('width', '15%') :css('text-align', 'center') :css('font-size', '85%') cell:wikitext(args['date'] or ) cell:wikitext(isnotempty(args['time']) and .. args['time'] or ) -- Team 1 cell = row:tag('td') :css('width', '25%') :css('text-align', 'right') :addClass('vcard attendee') cell:tag('span'):addClass('fn org'):wikitext(args['team1'] or ) -- Score cell = row:tag('td') :css('width', '15%') :css('text-align', 'center') if isnotempty(args['score']) then cell:tag('b'):wikitext(args['score']) else cell:tag('abbr'):attr('title', 'versus'):css('text-decoration', 'none'):wikitext('v') end if isnotempty(args['periods']) then cell:wikitext cell:tag('small'):wikitext(args['periods']) end -- Team 2 cell = row:tag('td') :css('width', '25%') :css('text-align', 'left') :addClass('vcard attendee') cell:tag('span'):addClass('fn org'):wikitext(args['team2'] or ) -- Stadium and attendance cell = row:tag('td') :css('font-size', '85%') if isnotempty(args['stadium']) then cell:tag('span'):addClass('location'):wikitext(args['stadium']) end if isnotempty(args['attendance']) then cell:wikitext cell:tag('i'):wikitext('Attendance:') cell:wikitext(' ' .. args['attendance']) end res = res .. tostring(root) if isnotempty(args['score']) then root = mw.html.create('table') root :addClass('collapsible collapsed') :attr('cellspacing', '0') :css('width', '100%') :css('background-color', args['bg'] or '#eeeeee') cell = root:tag('tr'):tag('th') cell:attr('colspan', '5') :css('style', 'text-align', 'center') :css('font-size', '85%') if isnotempty(args['reference']) then cell:tag('b'):wikitext('[' .. args['reference'] .. ' Game reference]') end -- Empty spacing row = root:tag('tr'):css('font-size', '85%') cell = row:tag('td') :attr('rowspan', '7') :css('width', '15%') :css('vertical-align', 'top') -- Goalies cell = row:tag('td') :css('width', '25%') :css('vertical-align', 'top') :css('text-align', 'right') :wikitext(args['goalie1'] or ) cell = row:tag('td') :css('width', '15%') :css('vertical-align', 'top') :css('text-align', 'center') if isnotempty(args['goalie1']) or isnotempty(args['goalie2']) then cell:tag('i'):wikitext('Goalies') end cell = row:tag('td') :css('width', '25%') :css('vertical-align', 'top') :css('text-align', 'left') :wikitext(args['goalie2'] or ) -- Officials and linesmen cell = row:tag('td') :attr('rowspan', '7') :css('vertical-align', 'top') if isnotempty(args['official']) then if isnotempty(args['official2']) then cell:tag('i'):wikitext('Referees:') cell:wikitext( .. args['official'] .. .. args['official2']) else cell:tag('i'):wikitext('Referee:') cell:wikitext( .. args['official']) end end if isnotempty(args['linesman']) then cell:wikitext if isnotempty(args['linesman2']) then cell:tag('i'):wikitext('Linesmen:') cell:wikitext( .. args['linesman'] .. .. args['linesman2']) else cell:tag('i'):wikitext('Linesman:') cell:wikitext( .. args['linesman']) end end -- Goals and progression row = root:tag('tr'):css('font-size', '85%') cell = row:tag('td') :attr('colspan', '3') :css('width', '65%') :wikitext( scoringtable(args['goals1'] or , args['goals2'] or , args['progression'] or ) ) if isnotempty(args['pnote']) then row = root:tag('tr'):css('font-size', '85%') row:tag('td') :attr('colspan', '3') :css('text-align','center') :css('width', '65%') :wikitext(args['pnote']) end -- Shoot out if isnotempty(args['soshots1']) or isnotempty(args['soshots2']) then soshots1 = table.concat(mysplit(args['soshots1'] or ), ) soshots2 = table.concat(mysplit(args['soshots2'] or ), ) row = root:tag('tr'):css('font-size', '85%') row:tag('td') :css('width', '25%') :css('vertical-align', 'top') :css('text-align', 'right') :wikitext(soshots1 or ) row:tag('td') :css('width', '15%') :css('vertical-align', 'top') :css('text-align', 'center') :tag('i'):wikitext('Shootout') row:tag('td') :css('width', '25%') :css('vertical-align', 'top') :css('text-align', 'left') :wikitext(soshots2 or ) end if isnotempty(args['sonote']) then row = root:tag('tr'):css('font-size', '85%') row:tag('td') :attr('colspan', '3') :css('text-align', 'center') :css('width', '65%') :wikitext(args['sonote']) end -- Second leg overtime if isnotempty(args['otgoals1']) or isnotempty(args['otgoals2']) or isnotempty(args['otprogression']) then row = root:tag('tr'):css('font-size', '85%') cell = row:tag('td') :attr('colspan', '3') :css('width', '65%') :wikitext( scoringtable(args['otgoals1'] or , args['otgoals2'] or , args['otprogression'] or ) ) end if isnotempty(args['otnote']) then row = root:tag('tr'):css('font-size', '85%') row:tag('td') :attr('colspan', '3') :css('text-align','center') :css('width', '65%') :wikitext(args['otnote']) end -- Penalties row = root:tag('tr'):css('font-size', '85%') cell = row:tag('td') :css('width', '25%') :css('vertical-align', 'top') :css('text-align', 'right') if isnotempty(args['penalties1']) then cell:tag('i'):wikitext(args['penalties1'] .. ' min') end cell = row:tag('td') :css('width', '15%') :css('vertical-align', 'top') :css('text-align', 'center') if isnotempty(args['penalties1']) or isnotempty(args['penalties2']) then cell:tag('i'):wikitext('Penalties') end cell = row:tag('td') :css('width', '25%') :css('vertical-align', 'top') :css('text-align', 'left') if isnotempty(args['penalties2']) then cell:tag('i'):wikitext(args['penalties2'] .. ' min') end -- Shots row = root:tag('tr'):css('font-size', '85%') cell = row:tag('td') :css('width', '25%') :css('vertical-align', 'top') :css('text-align', 'right') if isnotempty(args['shots1']) then cell:tag('i'):wikitext(args['shots1']) end cell = row:tag('td') :css('width', '15%') :css('vertical-align', 'top') :css('text-align', 'center') if isnotempty(args['shots1']) or isnotempty(args['shots2']) then cell:tag('i'):wikitext('Shots') end cell = row:tag('td') :css('width', '25%') :css('vertical-align', 'top') :css('text-align', 'left') if isnotempty(args['shots2']) then cell:tag('i'):wikitext(args['shots2']) end res = res .. tostring(root) end if isnotempty(args['note']) then root = mw.html.create('table') root :attr('cellspacing', '0') :css('width', '100%') :css('background-color', args['bg'] or '#eeeeee') cell = root:tag('tr'):tag('td') cell :css('text-align', 'left') :css('font-size', '100%') :tag('i'):wikitext(args['note']) res = res .. tostring(root) .. end -- tracking if (args['sogoals1'] or args['sogoals2']) then errorcats = errorcats .. end -- make errors visible in preview mode if errorcats ~= then if frame:preprocess( "" ) == "" then errorcats = else errorcats = end end return errorcats .. res end return p
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Izgara yada normal mod

Temanızda forum listeleme yapısını ızgara yapısında yada normal yapıda listemek için kullanabilirsiniz.

Forum arkaplan resimleri

Forum arkaplanlarına eklenmiş olan resimlerinin kontrolü senin elinde, resimleri aç/kapat

Sidebar blogunu kapat/aç

Forumun kalabalığında kurtulmak için sidebar (kenar çubuğunu) açıp/kapatarak gereksiz kalabalıklardan kurtula bilirsiniz.

Yapışkan sidebar kapat/aç

Yapışkan sidebar ile sidebar alanını daha hızlı ve verimli kullanabilirsiniz.

Radius aç/kapat

Blok köşelerinde bulunan kıvrımları kapat/aç bu şekilde tarzını yansıt.

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Geri