Modul:Fejléc
Ugrás a navigációhoz
Ugrás a kereséshez
A modult a Modul:Fejléc/doc lapon tudod dokumentálni
local p = {}
local getArgs = require( 'Modul:Arguments' ).getArgs
local function makeLink( str )
if mw.title.new( str ) then -- valid title
return string.format( '[[Szerző:%s|%s]]', str, str )
else
return str
end
end
local function makeTable( args )
local function getAuthors( parentNode )
local i = ''
if args.aut_np then
i = args.aut_np
elseif args.aut then
i = string.format( 'szerző: %s', makeLink( args.aut ) )
end
if args.trans then
if args.trans == '?' or mw.ustring.lower( args.trans ) == 'ismeretlen' then
i = ( i ~= '' and i .. ', ' or '' ) .. 'ismeretlen fordító'
--[=[ ilyen még nincs
elseif mw.ustring.lower( args.trans ) == 'wikiforrás' then
i = ( i ~= '' and i .. ', ' or '' ) .. 'fordította a [[Wikiforrás:Fordítások|Wikiforrás]]'
if not mw.title.getCurrentTitle().isSubpage then
i = i .. '[[Kategória:Wikiforrás-fordítások]]'
end
]=]
else
i = ( i ~= '' and i .. ', ' or '' ) .. string.format( 'fordító: %s', makeLink( args.trans ) )
end
end
if i ~= '' then
parentNode:tag( 'br' )
parentNode:tag( 'i' ):wikitext( i )
end
end
local header = mw.html.create( 'table' )
:attr( 'id', 'fejsablon' )
:addClass( 'fejsablon' )
:tag( 'tr' )
local prev = header:tag( 'td' ):addClass( 'fejsablon_elozo' )
if args.prev then
prev:tag( 'span' )
:attr( 'id', 'fejsablonelozo' )
:wikitext( '← ' .. args.prev )
end
local title = header:tag( 'td' ):addClass( 'fejsablon_cim' )
title:tag( 'b' ):wikitext( args.tit or 'Címtelen' )
getAuthors( title )
if args.sect then
title:tag( 'br' )
title:wikitext( args.sect )
end
local next = header:tag( 'td' ):addClass( 'fejsablon_kovetkezo' )
if args.next then
next:tag( 'span' )
:attr( 'id', 'fejsablonkovetkezo' )
:wikitext( args.next .. ' →' )
end
return tostring( header:done() )
end
local function makeDiv( content )
if content then
content = mw.html.create( 'div' ):wikitext( content )
return tostring( content:addClass( 'fejsablon_megjegyzes' ):tag( 'div' ):css( 'clear', 'both' ):allDone() )
else
return ''
end
end
local function getCategories( args )
local cats = {}
local function mainCats()
if args.nocat then
return
end
local title = mw.title.getCurrentTitle()
if title.namespace ~= 0 then
return
end
if title.isSubpage then
local root = title.rootPageTitle
if root.exists then
table.insert( cats, root.text )
end
else
if args.aut and not args.aut_np and mw.title.new( args.aut ) then
table.insert( cats, args.aut )
end
if args.trans and mw.title.new( args.trans ) then
table.insert( cats, args.trans .. ' fordításai' )
end
end
end
local function trackingCats()
if args.aut_np then
table.insert( cats, 'A lapnélküli szerző paramétert használó lapok' )
end
if (args.aut and not mw.title.new( args.aut ) ) or (args.trans and not mw.title.new( args.trans ) ) then
table.insert( cats, 'Linkfelismerést használó lapok' )
end
end
if args.defsort then
-- state stored, returns empty string; no need to add this to the table
mw.getCurrentFrame():preprocess( string.format( '{{DEFAULTSORT:%s}}', args.defsort ) )
end
mainCats()
trackingCats()
local ret = {}
for _, v in pairs( cats ) do
table.insert( ret, string.format( '[[Kategória:%s]]', v ) )
end
ret = table.concat( ret, '\n' )
if ret ~= '' then
return '\n' .. ret
else
return ''
end
end
function p.main( frame )
local args = getArgs( frame )
local args2 = {
aut = args[ 'szerző' ],
aut_np = args[ 'lapnélküli_szerző' ] or args[ 'lap nélküli szerző' ],
trans = args[ 'fordító' ],
tit = args[ 'cím' ],
sect = args[ 'szakasz' ],
prev = args[ 'előző' ],
next = args[ 'következő' ],
note = args[ 'megjegyzés' ],
defsort = args[ 'kulcs' ],
nocat = not not (args[ 'nekategorizálj' ] or args[ 'minta' ])
}
return makeTable( args2 ) .. makeDiv( args2.note ) .. getCategories( args2 )
end
return p