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:Haftalık spor tablosu

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
-- This module implements local p = {} -- Internationalisation local labels = { teamround = 'Takım ╲ Hafta', takimhafta = 'Takım ╲ Hafta', source = 'Kaynak:', notes = 'Notlar:', matches = 'maç(lar)', updatedto = '<date> tarihinde oynanan <matches>a göre güncellenmiştir.', firstplayed = 'İlk <matches> <date>\ tarihinde oynanacak.', futuredate = '?', complete = 'complete', future = 'future' } local templatestyles = 'Modül:Haftalık spor tablosu/biçim.css' local args = nil local colorlist = {} local textlist = {} local color_map = { green1='#BBF3BB', green2='#CCF9CC', green3='#DDFCDD', green4='#EEFFEE', blue1='#BBF3FF', blue2='#CCF9FF', blue3='#DDFCFF', blue4='#EEFFFF', yellow1='#FFFFBB', yellow2='#FFFFCC', yellow3='#FFFFDD', yellow4='#FFFFEE', red1='#FFBBBB', red2='#FFCCCC', red3='#FFDDDD', red4='#FFEEEE', black1='#BBBBBB', black2='#CCCCCC', black3='#DDDDDD', black4='#EEEEEE', ['1st']='#FFD700', ['2nd']='#C0C0C0', ['3rd']='#CC9966' } local legend_symbols = { G='G', B='B', M='M', E='E', D='D', EG='EG', EY='EY', EB='EB', DG='DG', DB='DB', DY='DY', HG='HG', HY='HY', Y='Y' } local function isnotempty(s) return s and s:match( '^%s*(.-)%s*$' ) ~= end local function zeropad(n) if n>=0 and n < 10 then return '00' .. n end if n>=0 and n < 100 then return '0' .. n end return .. n end local function pad_key(k) -- Zero pad, fix ranges and dashes if k then k = k .. ' ' k = mw.ustring.gsub(k, '–', '-') k = mw.ustring.gsub(k, '_([%d][^%d])', '_0%1') k = mw.ustring.gsub(k, '%-([%d][^%d])', '-0%1') k = mw.ustring.gsub(k, '_([%d][%d][^%d])', '_0%1') k = mw.ustring.gsub(k, '%-([%d][%d][^%d])', '-0%1') k = mw.ustring.gsub(k, '([^%d])%-([%d])', '%1000-%2') k = mw.ustring.gsub(k, '([%d])%-%s*$', '%1-999') k = mw.ustring.gsub(k, '^%s*(.-)%s*$', '%1') end return k end local function matches_date(text, m, d) return mw.ustring.gsub(mw.ustring.gsub(text .. , '<matches>', m), '<date>', d) end local function get_color(p) local c = colorlist[p] or colorlist[zeropad(tonumber(p) or -1)] if c then return color_map[c] or c end p = tonumber(p or '0') or 0 if p <= 0 then return nil end -- ranges in order of specificity local offset1, offset2 = 999, 999 for k,v in pairs( colorlist ) do local r1 = tostring(k):match( '^%s*([%d]+)%-[%d]+%s*$' ) local r2 = tostring(k):match( '^%s*[%d]+%-([%d]+)%s*$' ) if r1 and r2 then r1 = tonumber(r1) r2 = tonumber(r2) if (r1 <= p) and (r2 >= p) then if (c == nil) or ((p - r1) <= offset1 and (r2 - p) <= offset2) then c = color_map[v] or v offset1 = p - r1 offset2 = r2 - p end end end end return c end function p.table(frame) local getArgs = require('Module:Arguments').getArgs local yesno = require('Module:Yesno') args = getArgs(frame, {wrappers = {'Template:Sports rbr table'}}) local rounds = tonumber(args['rounds'] or '0') or 0 local firstround = tonumber(args['firstround'] or 1) or 1 local sortable = yesno(args['sortable'] or 'no') local updated = args['updated'] or args['update'] or args['güncelleme'] local source = args['source'] local notes = args['notes'] local addlegend = false local legendpos = (args['legendpos'] or 'tr'):lower local header, footer = , -- Lowercase two labels -- labels['complete'] = string.lower(labels['complete']) labels['future'] = string.lower(labels['future']) -- Adjust rounds rounds = rounds - (firstround - 1) -- Require a source -- source = source or frame:expandTemplate{ title = 'citation needed', args = { reason='No source parameter defined', date=os.date('%B %Y') } } -- Process team, pos, and color args local team_list = {} local maxrounds = 0 for k, v in pairs( args ) do -- Preprocess ranges if tostring(k):match( '^%s*text_?(.-)%s*$' ) then k = pad_key(k) end if tostring(k):match( '^%s*colou?r_?(.-)%s*$' ) then k = pad_key(k) end -- Create the list of teams and count rounds local i = tonumber( tostring(k):match( '^%s*team([%d]+)%s*$' ) or tostring(k):match( '^%s*label([%d]+)%s*$' ) or '0' ) if ( i > 0 and isnotempty(v) ) then table.insert( team_list, i) local p = args['pos' .. i] or args['res' .. i] or if args['name_' .. v] then local t = args['team' .. i] or args['label' .. i] or p = args['pos_' .. t] or args['res_' .. t] or end local pos = mw.text.split(p, '%s*[/~]%s*') maxrounds = (#pos > maxrounds) and #pos or maxrounds end -- Create the list of colors local s = tostring(k):match( '^%s*colou?r_?(.-)%s*$' ) if ( s and isnotempty(v) ) then colorlist = v:lower end -- Check if we are adding a legend s = tostring(k):match( '^%s*text_?(.-)%s*$' ) if ( s and isnotempty(v) ) then textlist = v addlegend = true end end maxrounds = (rounds > maxrounds) and rounds or maxrounds addlegend = yesno(args['legend'] or (addlegend and 'yes' or 'no')) -- sort the teams table.sort(team_list) local fs = 95 if ((maxrounds - firstround) > 37 ) then fs = fs - 2*(maxrounds - firstround - 37) end -- Build the table local root = mw.html.create('table') root:addClass('wikitable') root:addClass(sortable and 'sortable' or nil) root:addClass('sportsrbrtable') root:css('font-size', fs .. '%') if args['title'] then root:tag('caption'):wikitext(args['title']) end -- Heading row local row = root:tag('tr') row:tag('th') :attr('rowspan', args['sortable'] and 2 or nil) :wikitext(args['header'] or args['baslik'] or labels['teamround'] or labels['takimhafta']) for r=1,maxrounds do row:tag('th') :addClass(args['sortable'] and 'sportsrbrtable-rnd-sort' or 'sportsrbrtable-rnd') :attr('scope', 'col') :wikitext(args['round' .. (r + (firstround - 1)) .. '_label'] or (r + (firstround - 1))) end if args['sortable'] then row = root:tag('tr') for r=1,maxrounds do row:tag('th') :addClass('sportsrbrtable-rnd-toggle') end end -- Team positions for k=1,#team_list do local i = team_list[k] local t = args['team' .. i] or args['label' .. i] or local p = args['pos' .. i] or args['res' .. i] or if args['name_' .. t] then p = args['pos_' .. t] or args['res_' .. t] or t = args['name_' .. t] end row = root:tag('tr') row:tag('th'):addClass('sportsrbrtable-team'):attr('scope', 'row'):wikitext(t) local pos = mw.text.split(p, '%s*[/~]%s*') for r=1,maxrounds do s = args['team' .. i .. '_round' .. r .. '_' .. 'color'] or args['team' .. i .. '_round' .. r .. '_' .. 'colour'] row:tag('td') :css('background-color', (s and colorlist) or s or get_color(pos[r])) :wikitext(legend_symbols[pos[r]] or pos[r]) end end -- build the legend if addlegend then -- Sort the keys for the legend legendkeys = {} for k,v in pairs( textlist ) do table.insert(legendkeys, k) end table.sort(legendkeys) if args['legendorder'] then legendkeys = mw.text.split(args['legendorder'] .. '/' .. table.concat(legendkeys, '/'), '%s*[/~]%s*') end local lroot = mw.html.create('table') if legendpos 'tl' or legendpos 'bl' then lroot:addClass('wikitable') lroot:css('font-size', '88%') else lroot:addClass('infobox') lroot:addClass('bordered') -- lroot:css('width', 'auto') end for k,v in pairs( legendkeys ) do if v and textlist[v] then local c = colorlist[v] or local row = (legendpos 'tl' or legendpos 'bl') and lroot or lroot:tag('tr') local l = row:tag('th'):css('background-color', color_map[c] or c) if legend_symbols[v] then l:css('font-weight', 'normal') :css('padding', '1px 3px') :wikitext(legend_symbols[v]) else l:css('width', '10px') end row:tag('td') :css('padding', '1px 3px') :wikitext(textlist[v]) textlist[v] = nil end end if (legendpos 'bl' or legendpos 'br') then footer = footer .. tostring(lroot) else header = header .. tostring(lroot) end end -- simplify updated complete case local lupdated updated and string.lower(updated) or if lupdated labels['complete'] or lupdated 'complete' then lupdated end -- build the footer if notes or source or lupdated ~ then footer footer .. frame:expandTemplate{ title 'refbegin' } if lupdated ~ then local mtext args['matches_text'] or labels['matches'] if lupdated labels['future'] or lupdated 'future' then footer footer .. matches_date(labels['firstplayed'] .. ' ', mtext, args['start_date'] or labels['futuredate']) else footer footer .. matches_date(labels['updatedto'] .. ' ', mtext, updated) end end if source then footer footer .. labels['source'] .. ' ' .. source end if notes then if lupdated ~ or source then footer footer .. end footer footer .. labels['notes'] .. ' ' .. notes end footer footer .. frame:expandTemplate{ title 'refend' } end -- add clear right for the legend if necessary footer footer .. ((addlegend and (legendpos 'bl' or legendpos == 'br')) and or ) return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. header .. (args['toptext'] or '') .. tostring(root) .. footer 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