Modül:Dolaşım katlanabilir gruplar
Gezinti kısmına atla
Arama kısmına atla
Bu modül için bir belgeleme oluşturabilirsiniz: Modül:Dolaşım katlanabilir gruplar/belge
Betik hatası: Lua hatası: Dahili hata: Mesajın kodu çözülemedi.
-- This module implements {{Navbox with collapsible groups}} local q = {} local Navbox = require('Modül:Dolaşım') -- helper functions local function concatstrings(s) local r = table.concat(s, '') if r:match('^%s*$') then r = nil end return r end local function concatstyles(s) local r = table.concat(s, ';') while r:match(';%s*;') do r = mw.ustring.gsub(r, ';%s*;', ';') end if r:match('^%s*;%s*$') then r = nil end return r end function q._navbox(pargs) -- table for args passed to navbox local targs = {} -- process args local passthrough = { ['ad']=true,['dolçub']=true,['durum']=true,['kenar']=true, ['gövdesınıfı']=true,['grupsınıfı']=true,['listesınıfı']=true, ['biçim']=true,['gövdebiçimi']=true,['temelbiçim']=true, ['başlık']=true,['başlıksınıfı']=true,['başlıkbiçimi']=true, ['üst']=true,['üstsınıf']=true,['üstbiçim']=true, ['alt']=true,['altsınıf']=true,['altbiçim']=true, ['resim']=true,['resimsınıfı']=true,['resimbiçimi']=true, ['resimsol']=true,['resimsolbiçimi']=true } for k,v in pairs(pargs) do if k and type(k) == 'string' then if passthrough[k] then targs[k] = v elseif k:match('^liste[0-9][0-9]*$') then local n = mw.ustring.gsub(k, '^[a-z]*([0-9]*)$', '%1') if targs['liste' .. n] == nil and pargs['grup' .. n] == nil then targs['liste' .. n] = concatstrings( {pargs['liste' .. n] or ''}) end elseif (k:match('^grup[0-9][0-9]*$') or k:match('^seç[0-9][0-9]*$') ) then local n = mw.ustring.gsub(k, '^[a-z]*([0-9]*)$', '%1') if targs['liste' .. n] == nil then local titlestyle = concatstyles( {pargs['grupbiçimi'] or '',pargs['seçbaşlıkbiçimi'] or '', pargs['grup' .. n .. 'biçimi'] or '', pargs['seç' .. n ..'başlıkbiçimi'] or ''}) local liststyle = concatstyles( {pargs['listebiçimi'] or '', pargs['liste' .. n .. 'biçimi'] or ''}) local title = concatstrings( {pargs['grup' .. n] or '', pargs['seç' .. n] or ''}) local list = concatstrings( {pargs['liste' .. n] or ''}) local state = (pargs['kısaltma' .. n] and pargs['kısaltma' .. n] == pargs['seç']) and 'uncollapsed' or pargs['durum' .. n] or 'collapsed' targs['liste' .. n] = Navbox._navbox( {'child', ["dolçub"] = 'sade', durum = state, ["temelbiçim"] = pargs['temelbiçim'], ["başlık"] = title, ["başlıkbiçimi"] = titlestyle, ["liste1"] = list, ["listebiçimi"] = liststyle, ["listesınıfı"] = pargs['liste' .. n .. 'sınıfı'], resim = pargs['resim' .. n], resimsol = pargs['resimsol' .. n], listedolgusu = pargs['listedolgusu']}) end end end end -- ordering of style and bodystyle targs['biçim'] = concatstyles({targs['biçim'] or '', targs['gövdebiçimi'] or ''}) targs['gövdebiçimi'] = nil -- child or subgroup if targs['kenar'] == nil then targs['kenar'] = pargs[1] end return Navbox._navbox(targs) end function q.navbox(frame) local pargs = require('Modül:Bağımsız değişkenler').getArgs(frame, {wrappers = {'Şablon:Dolaşım katlanabilir gruplar'}}) -- Read the arguments in the order they'll be output in, to make references number in the right order. local _ _ = pargs["başlık"] _ = pargs["üst"] for i = 1, 20 do _ = pargs["grup" .. tostring(i)] _ = pargs["liste" .. tostring(i)] end _ = pargs.alt return q._navbox(pargs) end return q