Toggle menu
Toggle preferences menu
Toggle personal menu
Nejste přihlášen(a)
Your IP address will be publicly visible if you make any edits.

Modul:Navpills: Porovnání verzí

Z Bradavice Online Wiki
založena nová stránka s textem „local mArguments --initialize lazily local p = {} -- Returns a table containing the numbers of the arguments that exist -- for the specified prefix. For example, if the prefix was 'data', and -- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}. local function getArgNums(prefix, args) local nums = {} for k, v in pairs(args) do local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num…“
značka: Znovu založeno
 
Bez shrnutí editace
značka: revertováno
Řádek 1: Řádek 1:
local mArguments --initialize lazily
local mArguments -- initialize lazily
local p = {}
local p = {}


-- Returns a table containing the numbers of the arguments that exist
-- Returns a table containing the numbers of the arguments that exist
Řádek 7: Řádek 6:
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local function getArgNums(prefix, args)
local function getArgNums(prefix, args)
local nums = {}
    local nums = {}
for k, v in pairs(args) do
    for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
        local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
        if num then table.insert(nums, tonumber(num)) end
end
    end
table.sort(nums)
    table.sort(nums)
return nums
    return nums
end
end


-- Implements {{Navpills}} from the frame
function p.navpills(frame)
    mArguments = require('Module:Arguments')
    return p._navpills(mArguments.getArgs(frame))
end


--Implements {{Navpills}} from the frame
function p._navpills(args)
function p.navpills( frame )
    if not args then
mArguments = require( 'Module:Arguments' )
        return 'Missing arguments'
return p._navpills( mArguments.getArgs( frame ) )
    end
end
 
    -- Globální volby (volitelné):
    -- overlay = 'on'  → zapne černý overlay
    -- overlay = 'off' → vypne (default)
    local overlayOn = (tostring(args.overlay or 'off') == 'on')
 
    local html = mw.html.create('div')
        :addClass('template-navpills')
        :attr('role', 'navigation')


function p._navpills( args )
    for i, _ in ipairs(getArgNums('page', args)) do
if not args then
        local num = tostring(i)
return 'Missing arguments'
        local page = args['page' .. num]
end
        if page then
            local text = args['text' .. num] or page
            local image = args['image' .. num]


local html = mw.html.create( 'div' ):addClass( 'template-navpills' ):attr( 'role', 'navigation' )
            local navpill = mw.html.create('div'):addClass('template-navpill')
for i, _ in ipairs( getArgNums( 'page', args ) ) do
if not args[ 'page' .. i ] then return end
local num = tostring( i )
local navpill = mw.html.create('div'):addClass('template-navpill')


if args[ 'image' .. i ] then
            if image and image ~= '' then
navpill:tag('div'):addClass('template-navpill-background')
                navpill:addClass('has-bg')
:wikitext( string.format( '[[File:%s|x48px|link=]]', args[ 'image' .. num ] ) )
                if not overlayOn then
end
                    navpill:addClass('no-overlay')
                end
                navpill:tag('div')
                    :addClass('template-navpill-background')
                    -- přidáme class na <img>, ať ho umíme cílit
                    :wikitext(string.format('[[File:%s|x48px|class=template-navpill-img|link=]]', image))
            end


navpill:wikitext( string.format( '[[%s|%s]]', args[ 'page' .. num ], args[ 'text' .. num ] or args[ 'page' .. num ] ) )
            -- samotný odkaz
html:node(navpill)
            navpill:wikitext(string.format('[[%s|%s]]', page, text))
end
            html:node(navpill)
        end
    end


return mw.getCurrentFrame():extensionTag{
    -- Vložíme TemplateStyles s naší CSS
name = 'templatestyles', args = { src = 'Module:Navpills/styles.css' }
    return mw.getCurrentFrame():extensionTag{
} .. tostring( html )
        name = 'templatestyles',
        args = { src = 'Module:Navpills/styles.css' }
    } .. tostring(html)
end
end


return p
return p

Verze z 13. 10. 2025, 22:20

Dokumentaci tohoto modulu lze vytvořit na stránce Modul:Navpills/Dokumentace

local mArguments -- initialize lazily
local p = {}

-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local function getArgNums(prefix, args)
    local nums = {}
    for k, v in pairs(args) do
        local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
        if num then table.insert(nums, tonumber(num)) end
    end
    table.sort(nums)
    return nums
end

-- Implements {{Navpills}} from the frame
function p.navpills(frame)
    mArguments = require('Module:Arguments')
    return p._navpills(mArguments.getArgs(frame))
end

function p._navpills(args)
    if not args then
        return 'Missing arguments'
    end

    -- Globální volby (volitelné):
    -- overlay = 'on'  → zapne černý overlay
    -- overlay = 'off' → vypne (default)
    local overlayOn = (tostring(args.overlay or 'off') == 'on')

    local html = mw.html.create('div')
        :addClass('template-navpills')
        :attr('role', 'navigation')

    for i, _ in ipairs(getArgNums('page', args)) do
        local num = tostring(i)
        local page = args['page' .. num]
        if page then
            local text = args['text' .. num] or page
            local image = args['image' .. num]

            local navpill = mw.html.create('div'):addClass('template-navpill')

            if image and image ~= '' then
                navpill:addClass('has-bg')
                if not overlayOn then
                    navpill:addClass('no-overlay')
                end
                navpill:tag('div')
                    :addClass('template-navpill-background')
                    -- přidáme class na <img>, ať ho umíme cílit
                    :wikitext(string.format('[[File:%s|x48px|class=template-navpill-img|link=]]', image))
            end

            -- samotný odkaz
            navpill:wikitext(string.format('[[%s|%s]]', page, text))
            html:node(navpill)
        end
    end

    -- Vložíme TemplateStyles s naší CSS
    return mw.getCurrentFrame():extensionTag{
        name = 'templatestyles',
        args = { src = 'Module:Navpills/styles.css' }
    } .. tostring(html)
end

return p