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:Bölüm tablosu

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
-- Bu modül ve şablonlarını yürütür. local HTMLcolor = mw.loadData('Modül:Renk karşıtlığı/renkler') -------------------------------------------------------------------------------- -- EpisodeTable class -- The main class. -------------------------------------------------------------------------------- local contrast_ratio = require('Modül:Renk karşıtlığı')._ratio local EpisodeTable = {} function EpisodeTable.cell(background, width, text, reference) local cell = mw.html.create('th') -- Cell cell:attr('scope','col') :css('background',background or '#CCCCFF') :css('width',width ~= and width .. '%' or nil) :wikitext(text) -- Reference if reference and reference ~= then cell:wikitext("&#8202;" .. EpisodeTable.reference(reference, background)) end return cell end function EpisodeTable.reference(reference, background) local link1_cr = contrast_ratio{'#0645AD', background or '#CCCCFF', ['error'] = 0} local link2_cr = contrast_ratio{'#0B0080', background or '#CCCCFF', ['error'] = 0} local refspan = mw.html.create('span') :wikitext(reference) if link1_cr < 7 or link2_cr < 7 then refspan :css('background-color','white') :css('padding','1px') :css('display','inline-block') :css('line-height','50%') end return tostring(refspan) end function EpisodeTable.abbr(text,title) local abbr = mw.html.create('abbr') :attr('title',title) :wikitext(text) return tostring(abbr) end function EpisodeTable.part(frame,args) local row = mw.html.create('tr') local black_cr = contrast_ratio{args.r, 'black', ['error'] = 0} local white_cr = contrast_ratio{'white', args.r, ['error'] = 0} local displaytext = (args["k"] or ) .. (not args["kyok"] and '. kısım' or ) local plainText = require('Modül:Düz metin')._main local displayTextAnchor = plainText(displaytext) row:tag('td') :attr('colspan', 13) :attr('id', displayTextAnchor) :css('text-align', 'center') :css('background-color', args.r) :css('color', black_cr > white_cr and 'black' or 'white') :wikitext("" .. displaytext .. "" .. (args.ka and "&#8202;" .. EpisodeTable.reference(args.ka, args.r) or )) return tostring(row) end function EpisodeTable.new(args) args = args or {} local categories = local background = (args.arkaplan and args.arkaplan ~= and args.arkaplan ~= '#') and args.arkaplan or nil -- Add # to background if necessary if background ~= nil and HTMLcolor[background] nil then background '#'..(mw.ustring.match(background, '^[%s#]*([a-fA-F0-9]*)[%s]*$') or ) end -- Default widths noted by local consensus local defaultwidths {}; defaultwidths.numara1 5; defaultwidths.numara2 5; defaultwidths.series 5; defaultwidths["yapımkodu"] 7; defaultwidths.seyirci 10; -- Create episode table local root mw.html.create('table') root :addClass('wikitable') :addClass('plainrowheaders') :addClass('wikiepisodetable') :css('width', args["toplamgenişlik"] and string.gsub(args["toplamgenişlik"],'%%',) .. '%' or '100%') -- Caption if args["tablobaşlığı"] then root:tag('caption'):wikitext(args["tablobaşlığı"]) end -- Colour contrast; add to category only if it's in the mainspace local title mw.title.getCurrentTitle local black_cr contrast_ratio{background, 'black', ['error'] 0} local white_cr contrast_ratio{'white', background, ['error'] 0} if title.namespace 0 and (args.arkaplan and args.arkaplan ~= and args.arkaplan ~= '#') and black_cr < 7 and white_cr < 7 then categories = categories .. 'Kategori:Geçersiz renk bileşimi içeren bölüm tablosu şablonu kullanılan maddeler' end -- Main row local mainRow = root:tag('tr') mainRow :css('color', background and (black_cr > white_cr and 'black' or 'white') or 'black') :css('text-align', 'center') -- Cells do local used_season = false local country = args["ülke"] ~= and args["ülke"] ~= nil local viewers = (country and args["ülke"] or ) .. ' ' .. (country and 'seyircisi' or 'Seyirci') .. ((not args["seyircitürü"] or args["seyircitürü"] ~= ) and '(' .. (args["seyircitürü"] or 'milyon') .. ')' or ) local cellNames = { {'numara1',EpisodeTable.abbr('No','Bölüm sırası') .. ((args.sezon or args.series or args["numara2"] or args.forceoverall) and 'genel' or )}, {'numara2',EpisodeTable.abbr('No','Bölüm sırası') .. 'sezon'}, {'başlık','Bölüm adı'}, {'ilave1',}, {'yönetmen','Yönetmen'}, {'yazar','Senarist'}, {'ilave2',}, {'ilave3',}, {'yayıntarihi','Yayın tarihi'}, {'alttarih',}, {'yapımkodu','Yapım kodu'}, {'seyirci', viewers}, {'ilave4',} } for k,v in pairs(cellNames) do local thisCell = args[v[1]] if thisCell and (v[1] ~= 'series' or (v[1] 'series' and used_season false)) then if v[1] 'sezon' then used_season true end --if (k < 3 and thisCell ) then thisCell = '5' end if (thisCell == and defaultwidths[v[1]]) then thisCell = defaultwidths[v[1]] end local thisCellB = args[v[1] .. 'B'] local thisCellR = args[v[1] .. 'R'] local thisCellK = args[v[1] .. 'K'] mainRow:node(EpisodeTable.cell(background, thisCell, thisCellB or v[2], (thisCellR or thisCellK))) end end -- Episodes root:node(args["bölümler"]) end return (args.dontclose and mw.ustring.gsub(tostring(root), "", "") or tostring(root)) .. categories end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p = {} function p.main(frame) local args = require('Modül:Bağımsız değişkenler').getArgs(frame, { removeBlanks = false, wrappers = 'Şablon:Bölüm tablosu' }) return EpisodeTable.new(args) end function p.part(frame) local args = require('Modül:Bağımsız değişkenler').getArgs(frame, { removeBlanks = false, wrappers = 'Şablon:Bölüm tablosu/kısım' }) return EpisodeTable.part(frame,args) end function p.ref(frame) local args = require('Modül:Bağımsız değişkenler').getArgs(frame, { removeBlanks = false, }) return EpisodeTable.reference(args.ka,args.b) 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