Modhul : Navbar

Sekang Wikipedia, Ensiklopedia Bebas sing nganggo Basa Banyumasan: dhialek Banyumas, Purbalingga, Tegal lan Purwokerto.

Dhokumentasi modhul iki bisa digawe ing Modhul:Navbar/doc

local
 p
 =
 {}


local
 getArgs

local
 ul


function
 p
.
addItem
 (
mini
,
 full
,
 link
,
 descrip
,
 args
,
 url
)

	local
 l

	if
 url
 then

		l
 =
 {
'['
,
 ''
,
 ']'
}

	else

		l
 =
 {
'[['
,
 '|'
,
 ']]'
}

	end

	ul
:
tag
(
'li'
)

		:
addClass
(
'nv-'
..
full
)

		:
wikitext
(
l
[
1
]
 ..
 link
 ..
 l
[
2
])

		:
tag
(
args
.
mini
 and
 'abbr'
 or
 'span'
)

			:
attr
(
'title'
,
 descrip
..
' templat ini'
)

			:
cssText
(
args
.
fontstyle
)

			:
wikitext
(
args
.
mini
 and
 mini
 or
 full
)

			:
done
()

		:
wikitext
(
l
[
3
])

end


function
 p
.
brackets
 (
position
,
 c
,
 args
,
 div
)

	if
 args
.
brackets
 then

		div

			:
tag
(
'span'
)

				:
css
(
'margin-'
..
position
,
 '-0.125em'
)

				:
cssText
(
args
.
fontstyle
)

				:
wikitext
(
c
)

	end

end


function
 p
.
_navbar
(
args
)

	local
 show
 =
 {
true
,
 true
,
 true
,
 false
,
 false
,
 false
}

	local
 titleArg
 =
 1

	
	if
 args
.
collapsible
 then

		titleArg
 =
 2

		if
 not
 args
.
plain
 then
 args
.
mini
 =
 1
 end

		if
 args
.
fontcolor
 then

			args
.
fontstyle
 =
 'color:'
 ..
 args
.
fontcolor
 ..
 ';'

		end

		args
.
style
 =
 'float:left; text-align:left'

	end

	
	if
 args
.
template
 then

		titleArg
 =
 'template'

		show
 =
 {
true
,
 false
,
 false
,
 false
,
 false
,
 false
}

		local
 index
 =
 {
t
 =
 2
,
 d
 =
 2
,
 e
 =
 3
,
 h
 =
 4
,
 m
 =
 5
,
 w
 =
 6
,
 talk
 =
 2
,
 edit
 =
 3
,
 hist
 =
 4
,
 move
 =
 5
,
 watch
 =
 6
}

		for
 k
,
v
 in
 ipairs
(
require
 (
'Module:TableTools'
).
compressSparseArray
(
args
))
 do

			local
 num
 =
 index
[
v
]

			if
 num
 then
 show
[
num
]
 =
 true
 end

		end

	end

	
	if
 args
.
noedit
 then
 show
[
3
]
 =
 false
 end

	
	local
 titleText
 =
 args
[
titleArg
]
 or
 (
':'
 ..
 mw
.
getCurrentFrame
():
getParent
():
getTitle
())

	local
 title
 =
 mw
.
title
.
new
(
mw
.
text
.
trim
(
titleText
),
 'Template'
)

	if
 not
 title
 then

		error
(
'Judul tidak valid '
 ..
 titleText
)

	end

	local
 talkpage
 =
 title
.
talkPageTitle
 and
 title
.
talkPageTitle
.
fullText
 or
 ''

	
	local
 div
 =
 mw
.
html
.
create
():
tag
(
'div'
)

	div

		:
addClass
(
'plainlinks'
)

		:
addClass
(
'hlist'
)

		:
addClass
(
'navbar'
)

		:
cssText
(
args
.
style
)


	if
 args
.
mini
 then
 div
:
addClass
(
'mini'
)
 end


	if
 not
 (
args
.
mini
 or
 args
.
plain
)
 then

		div

			:
tag
(
'span'
)

				:
css
(
'word-spacing'
,
 0
)

				:
cssText
(
args
.
fontstyle
)

				:
wikitext
(
args
.
text
 or
 'Kotak ini:'
)

				:
wikitext
(
' '
)

	end

	
	p
.
brackets
(
'right'
,
 '[ '
,
 args
,
 div
)

	
	ul
 =
 div
:
tag
(
'ul'
)

	if
 show
[
1
]
 then
 p
.
addItem
(
'l'
,
 'lihat'
,
 title
.
fullText
,
 'Lihat'
,
 args
)
 end

	if
 show
[
2
]
 then
 p
.
addItem
(
'b'
,
 'bicara'
,
 talkpage
,
 'Diskusikan'
,
 args
)
 end

	if
 show
[
3
]
 then
 p
.
addItem
(
's'
,
 'sunting'
,
 title
:
fullUrl
(
'action=edit'
),
 'Sunting'
,
 args
,
 true
)
 end

	if
 show
[
4
]
 then
 p
.
addItem
(
'v'
,
 'versi'
,
 title
:
fullUrl
(
'action=history'
),
 'Sejarah'
,
 args
,
 true
)
 end

	if
 show
[
5
]
 then

		local
 move
 =
 mw
.
title
.
new
 (
'Special:Movepage'
)

		p
.
addItem
(
'm'
,
 'move'
,
 move
:
fullUrl
(
'target='
..
title
.
fullText
),
 'Pindahkan'
,
 args
,
 true
)
 end

	if
 show
[
6
]
 then
 p
.
addItem
(
'w'
,
 'watch'
,
 title
:
fullUrl
(
'action=watch'
),
 'Pantau'
,
 args
,
 true
)
 end

	
	p
.
brackets
(
'left'
,
 ' ]'
,
 args
,
 div
)

	
	if
 args
.
collapsible
 then

		div

			:
done
()

		:
tag
(
'div'
)

			:
css
(
'font-size'
,
 '114%'
)

			:
css
(
'margin'
,
 args
.
mini
 and
 '0 4em'
 or
 '0 7em'
)

			:
cssText
(
args
.
fontstyle
)

			:
wikitext
(
args
[
1
])

	end


	return
 tostring
(
div
:
done
())

end


function
 p
.
navbar
(
frame
)

	if
 not
 getArgs
 then

		getArgs
 =
 require
(
'Module:Arguments'
).
getArgs

	end

	return
 p
.
_navbar
(
getArgs
(
frame
))

end


return
 p