Moduł:Navbox: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
| [wersja nieprzejrzana] | [wersja przejrzana] |
d Защищена страница «Модуль:Navbox»: шаблон/модуль с большим количеством включений ([Редактирование=Разрешено только администраторам] (бесср |
naprawa navbox'a |
||
| (Nie pokazano 3 wersji utworzonych przez jednego użytkownika) | |||
| Linia 3: | Linia 3: | ||
local args = require( 'Module:ProcessArgs' ).merge( true ) | local args = require( 'Module:ProcessArgs' ).merge( true ) | ||
local navbox = {} | local navbox = {} | ||
local title = args.title or '' | |||
local class = args.class or 'collapsible' | |||
local bodyStyle = args.bodystyle or '' | |||
if bodyStyle ~= '' then | if bodyStyle ~= '' then | ||
bodyStyle = 'style="' .. bodyStyle .. '"' | bodyStyle = 'style="' .. bodyStyle .. '"' | ||
end | end | ||
local titleStyle = args.titlestyle or '' | |||
if titleStyle ~= '' then | if titleStyle ~= '' then | ||
titleStyle = 'style="' .. titleStyle .. '"' | titleStyle = 'style="' .. titleStyle .. '"' | ||
end | end | ||
local aboveStyle = args.abovestyle or '' | |||
if | if aboveStyle ~= '' then | ||
local | aboveStyle = 'style="' .. aboveStyle .. '"' | ||
end | |||
local groupStyle = args.groupstyle or '' | |||
if groupStyle ~= '' then | |||
groupStyle = 'style="' .. groupStyle .. '"' | |||
end | |||
local listStyle = args.liststyle or '' | |||
if listStyle ~= '' then | |||
listStyle = 'style="' .. listStyle .. '"' | |||
end | |||
local belowStyle = args.belowstyle or '' | |||
if belowStyle ~= '' then | |||
belowStyle = 'style="' .. belowStyle .. '"' | |||
end | |||
local childStyle = args.childstyle or '' | |||
if childStyle ~= '' then | |||
childStyle = 'style="' .. childStyle .. '"' | |||
end | |||
local navbar = args[1] or '' | |||
local barStyle = args.barstyle or '' | |||
local barFont = args.barfont or '' | |||
local name = args.name or '' | |||
if navbar ~= '' then | |||
local mini = '' | |||
if navbar:match( 'navbar%-mini' ) then | |||
mini = '1' | |||
end | end | ||
table.insert( navbox, '! class="navbox-top" colspan="2" ' .. titleStyle .. ' | ' .. navbar .. '<span class="navbox-title">' . | navbar = '<div class="navbox-navbar">' .. f:preprocess( '{{navbar|' .. name .. '|mini=' .. mini .. '|style=' .. barStyle .. '|fontstyle=' .. barFont .. '}}' ) .. '</div>' | ||
end | |||
local below = args.below or '' | |||
local above = args.above or '' | |||
if title ~= '' then | |||
table.insert( navbox, ' {| class="navbox hlist ' .. class .. '" ' .. bodyStyle ) | |||
table.insert( navbox, '! class="navbox-top" colspan="2" ' .. titleStyle .. ' | ' .. navbar .. '<span class="navbox-title">' .. title .. '</span>' ) | |||
else | else | ||
table.insert( navbox, ' {| class="navbox-child"' ) | table.insert( navbox, ' {| class="navbox-child" ' .. childStyle) | ||
end | |||
if above ~= '' then | |||
table.insert( navbox, '|-\n| class="navbox-above" colspan="2" ' .. aboveStyle .. '| ' .. above:gsub( '^([*#:{])', '\n%1' ) ) | |||
end | end | ||
local | local listNums = {} | ||
for k, v in pairs( args ) do | for k, v in pairs( args ) do | ||
if type( k ) == 'string' then | if type( k ) == 'string' then | ||
local | local listNum = k:match( 'list(%d+)' ) or k:match( 'лист(%d+)' ) | ||
if | if listNum and v then | ||
table.insert( | table.insert( listNums, tonumber( listNum ) ) | ||
end | end | ||
end | end | ||
end | end | ||
table.sort( | |||
table.sort( listNums ) | |||
for _, v in ipairs( listNums ) do | |||
for _, v in ipairs( | local list = args['list' .. v] or args['лист' .. v] | ||
local list = args['list' .. v] | local groupl = args['group' .. v] or args['группа' .. v] or '' | ||
if list then | if list ~= '' and groupl ~= '' then | ||
table.insert( navbox, '|-\n! class="navbox-group | table.insert( navbox, '|-\n! class="navbox-group" ' .. groupStyle .. ' | ' .. groupl ) | ||
table.insert( navbox, '| class="navbox-list" ' .. listStyle .. '| ' .. list:gsub( '^([*#:{])', '\n%1' ) ) | |||
else if list ~= '' then | |||
table.insert( navbox, '|-\n| class="navbox-list" colspan="2" ' .. listStyle .. '| ' .. list:gsub( '^([*#:{])', '\n%1' ) ) | |||
end | |||
end | end | ||
end | end | ||
if below ~= '' then | |||
table.insert( navbox, '|-\n| class="navbox-below" colspan="2" ' .. belowStyle .. '| ' .. below:gsub( '^([*#:{])', '\n%1' ) ) | |||
end | |||
table.insert( navbox, '|}' ) | table.insert( navbox, '|}' ) | ||
Aktualna wersja na dzień 17:27, 9 sty 2025
W tym module nie ma dokumentacji. Jeśli wiesz jak używać tego modułu, proszę, podaj odpowiednie informacje.
local p = {}
function p.box( f )
local args = require( 'Module:ProcessArgs' ).merge( true )
local navbox = {}
local title = args.title or ''
local class = args.class or 'collapsible'
local bodyStyle = args.bodystyle or ''
if bodyStyle ~= '' then
bodyStyle = 'style="' .. bodyStyle .. '"'
end
local titleStyle = args.titlestyle or ''
if titleStyle ~= '' then
titleStyle = 'style="' .. titleStyle .. '"'
end
local aboveStyle = args.abovestyle or ''
if aboveStyle ~= '' then
aboveStyle = 'style="' .. aboveStyle .. '"'
end
local groupStyle = args.groupstyle or ''
if groupStyle ~= '' then
groupStyle = 'style="' .. groupStyle .. '"'
end
local listStyle = args.liststyle or ''
if listStyle ~= '' then
listStyle = 'style="' .. listStyle .. '"'
end
local belowStyle = args.belowstyle or ''
if belowStyle ~= '' then
belowStyle = 'style="' .. belowStyle .. '"'
end
local childStyle = args.childstyle or ''
if childStyle ~= '' then
childStyle = 'style="' .. childStyle .. '"'
end
local navbar = args[1] or ''
local barStyle = args.barstyle or ''
local barFont = args.barfont or ''
local name = args.name or ''
if navbar ~= '' then
local mini = ''
if navbar:match( 'navbar%-mini' ) then
mini = '1'
end
navbar = '<div class="navbox-navbar">' .. f:preprocess( '{{navbar|' .. name .. '|mini=' .. mini .. '|style=' .. barStyle .. '|fontstyle=' .. barFont .. '}}' ) .. '</div>'
end
local below = args.below or ''
local above = args.above or ''
if title ~= '' then
table.insert( navbox, ' {| class="navbox hlist ' .. class .. '" ' .. bodyStyle )
table.insert( navbox, '! class="navbox-top" colspan="2" ' .. titleStyle .. ' | ' .. navbar .. '<span class="navbox-title">' .. title .. '</span>' )
else
table.insert( navbox, ' {| class="navbox-child" ' .. childStyle)
end
if above ~= '' then
table.insert( navbox, '|-\n| class="navbox-above" colspan="2" ' .. aboveStyle .. '| ' .. above:gsub( '^([*#:{])', '\n%1' ) )
end
local listNums = {}
for k, v in pairs( args ) do
if type( k ) == 'string' then
local listNum = k:match( 'list(%d+)' ) or k:match( 'лист(%d+)' )
if listNum and v then
table.insert( listNums, tonumber( listNum ) )
end
end
end
table.sort( listNums )
for _, v in ipairs( listNums ) do
local list = args['list' .. v] or args['лист' .. v]
local groupl = args['group' .. v] or args['группа' .. v] or ''
if list ~= '' and groupl ~= '' then
table.insert( navbox, '|-\n! class="navbox-group" ' .. groupStyle .. ' | ' .. groupl )
table.insert( navbox, '| class="navbox-list" ' .. listStyle .. '| ' .. list:gsub( '^([*#:{])', '\n%1' ) )
else if list ~= '' then
table.insert( navbox, '|-\n| class="navbox-list" colspan="2" ' .. listStyle .. '| ' .. list:gsub( '^([*#:{])', '\n%1' ) )
end
end
end
if below ~= '' then
table.insert( navbox, '|-\n| class="navbox-below" colspan="2" ' .. belowStyle .. '| ' .. below:gsub( '^([*#:{])', '\n%1' ) )
end
table.insert( navbox, '|}' )
navbox = table.concat( navbox, '\n' ):gsub( ' style=""', '' )
return navbox
end
return p