Redigerer
Modul:Sports results/Chess
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
-- Module to build results cross-tables for standings in Chess -- See documentation for details require('strict') local p = {} -- Other functions local function get_short_name(s, t, n, ss) -- return short name if defined if s and s ~= '' then return s end -- deflag if necessary if ss and n then if ss == 'noflag' or ss == 'nocountry' then n = mw.ustring.gsub(n, '%[%[[Ff][Ii][Ll][Ee]:[^%[%]]*%]%]', '') n = mw.ustring.gsub(n, '<span class="flagicon">[^<>]*</span>', '') if ss == 'nocountry' then n = mw.ustring.gsub(n, '<abbr[^<>]*>[^<>]*</abbr>', '') n = mw.ustring.gsub(n, ' <span[^<>]*>[^<>]*</span>$', '') end elseif ss == 'flag' then n = mw.ustring.gsub(n, '(<span class="flagicon">%s*%[%[[Ff][Ii][Ll][Ee]:[^%[%]]*link=)[^%|%[%]]*(%]%][^<>]*</span>)%s*%[%[([^%[%]%|]*)%|[^%[%]]*%]%]', '%1%3%2') n = mw.ustring.gsub(n, '.*(<span class="flagicon">%s*%[%[[Ff][Ii][Ll][Ee]:[^%[%]]*%]%][^<>]*</span>).*', '%1') n = mw.ustring.gsub(n, ' (</span>)', '%1') end end -- replace link text in name with team abbr if possible if n and t and n:match('(%[%[[^%[%]]*%]%])') then n = mw.ustring.gsub(n, '(%[%[[^%|%]]*%|)[^%|%]]*(%]%])', '%1' .. t .. '%2') n = mw.ustring.gsub(n, '(%[%[[^%|%]]*)(%]%])', '%1|' .. t .. '%2') return n end -- nothing worked, so just return the unlinked team abbr return t or '' end function p.header(tt,Args,p_sub,N_teams,team_list,legs,prefix) local ii, team_code_ii, short_name prefix = prefix or '' legs = tonumber(Args[prefix .. 'legs']) or 1 -- Set match column width local col_width = Args['match_col_width'] or '28' -- Determine if default short style is position for short name local yesno = require('Module:Yesno') local pos_short = yesno(Args['use_pos_short'] or 'no') if N_teams>2 then -- Set the column span col_width = col_width .. ' colspan=' .. legs .. ' style="border-left:2px solid #aaa;"' -- Get some default values in case it doesn't start at 1 local top_pos = tonumber(Args['highest_pos']) or 1 for ii=top_pos,N_teams do team_code_ii = team_list[ii] short_name = get_short_name(Args['short_'..team_code_ii], pos_short and ii or team_code_ii, Args['name_'..team_code_ii], Args['short_style'] or '') tt = p_sub.colhead(tt,col_width,short_name) if legs > 1 then tt.count = tt.count + legs - 1 end end else for ii=1,legs do local game_header = Args[prefix..'game'..ii..'_header'] or ii tt = p_sub.colhead(tt,col_width,game_header) end end local tb_numplayers = tonumber(Args['tb_numplayers']) or 0 if prefix == '' and tb_numplayers >= 2 then -- Add empty column header tt.count = tt.count+1 table.insert(tt.tab_text,'! scope="row" class="unsortable" style="background-color:white;border-top:white;border-bottom:white;border-right:white;line-width:3pt;"| \n') tt = p.header(tt,Args,p_sub,tb_numplayers,team_list,legs,'tb') end return tt end function p.row(tt,Args,N_teams,team_list,ii,ii_show,legs,prefix) -- Note ii is the row number being shown local jj, fw, bg, result, bg_col, team_code_jj prefix = prefix or '' legs = tonumber(Args[prefix .. 'legs']) or 1 local team_code_ii = team_list[ii] -- Determine if backgrounds will be colored local yesno = require('Module:Yesno') local colorbg = yesno(Args['colorbg'] or 'yes') -- Get some default values in case it doesn't start at 1 local top_pos = tonumber(Args['highest_pos']) or 1 local bgcolrow_str = Args[prefix .. 'bgcolrow_' .. team_code_ii] or '' if bgcolrow_str ~= '' then for pp=1,(top_pos-1) do bgcolrow_str = mw.ustring.gsub(bgcolrow_str, '^([^,]*),?', '') or '' -- Trim bgcol data prior to top_pos end end for jj=top_pos,N_teams do local bl = 'border-left:2px solid #aaa;' if ii == jj and N_teams>2 then -- Solid cell fw = 'font-weight:' .. (ii==ii_show and 'bold' or 'normal') .. ';' bg = 'background:transparent;' -- Background color for solid cell local solid_cell = Args['solid_cell'] or '' if solid_cell ~= 'gray' and solid_cell ~= 'grey' and solid_cell ~= 'lightgray' and solid_cell ~= 'lightgrey' and solid_cell ~= 'silver' then solid_cell = mw.ustring.match(solid_cell,'^#%x%x%x+') or '' end if solid_cell ~= '' then table.insert(tt,'| colspan ="'..legs..'" style="'..fw..bl..'background:'..solid_cell..';" |\n') else table.insert(tt,'| colspan ="'..legs..'" style="'..fw..bl..bg..'" | —\n') end elseif ii ~= jj then -- Content cells team_code_jj = team_list[jj] if bgcolrow_str ~= '' then Args[prefix .. 'bgcol_' .. team_code_ii..'_'..team_code_jj] = mw.ustring.match(bgcolrow_str, '^([^,]*),?') end local bgcol_str = Args[prefix .. 'bgcol_'..team_code_ii..'_'..team_code_jj] or '' for l=1,legs do -- Get match data local m = (legs == 1) and 'match_' or 'match' .. l .. '_' m = prefix .. m result = Args[m..team_code_ii..'_'..team_code_jj] or ' ' -- Set bolding and background fw = 'font-weight:' .. ((ii==ii_show or jj == ii_show) and 'bold' or 'normal') .. ';' if l > 1 or N_teams<=2 then bl = '' end bg = 'background:transparent;' -- Background coloring if colorbg then local bg_col = mw.ustring.match(bgcol_str, '^([^%+]*)%+?') or '' bgcol_str = mw.ustring.gsub(bgcol_str, '^([^%+]*)%+?', '') or '' -- Remove bg_col from bgcol_str bg_col = mw.ustring.gsub(bg_col,'^%s*','') -- Trim starting whitespace bg_col = mw.ustring.gsub(bg_col,'%s*$','') -- Trim ending whitespace if bg_col == '' then bg_col = (l % 2 == 0 and 'B') or 'W' else bg_col = mw.ustring.upper(bg_col) end if bg_col == 'B' then bg = 'background:black; color:white'; end end table.insert(tt,'| style="white-space:nowrap;'..fw..bl..bg..'" |'..result..'\n') end end bgcolrow_str = mw.ustring.gsub(bgcolrow_str, '^([^,]*),?', '') or '' end local tb_numplayers = tonumber(Args['tb_numplayers']) or 0 if prefix == '' and tb_numplayers >= 2 then -- Add empty cell table.insert(tt,'| style="background-color:white;border-top:white;border-bottom:white;border-right:white;"| \n') if ii <= tb_numplayers then tt = p.row(tt,Args,tb_numplayers,team_list,ii,ii_show,legs,'tb') else local numtbgames = (tb_numplayers == 2) and legs or (tb_numplayers * legs) for gg=1,numtbgames do table.insert(tt,'| style="background-color:white;border-left:white;border-top:white;border-bottom:white;border-right:white;"| \n') end end end return tt end return p
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Forhåndsvis en side som bruker denne malen
Mal som brukes på denne siden:
Modul:Sports results/Chess/dok
(
rediger
)
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Modul
Diskusjon
English
Visninger
Les
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon