From Wikipedia, the free encyclopedia
| This Lua module is used on
approximately 200,000 pages
.
To avoid major disruption and server load, any changes should be tested in the module's
/sandbox
or
/testcases
subpages, or in your own
module sandbox
. The tested changes can be added to this page in a single edit. Consider discussing changes on the
talk page
before implementing them.
|
| This module depends on the following other modules:
|
Implements
{{
for
}}
.
local
mArguments
--initialize lazily
local
mHatlist
=
require
(
'Module:Hatnote list'
)
local
mHatnote
=
require
(
'Module:Hatnote'
)
local
yesNo
=
require
(
'Module:Yesno'
)
local
p
=
{}
--Implements {{For}} from the frame
--uses capitalized "For" to avoid collision with Lua reserved word "for"
function
p
.
For
(
frame
)
mArguments
=
require
(
'Module:Arguments'
)
return
p
.
_For
(
mArguments
.
getArgs
(
frame
))
end
--Implements {{For}} but takes a manual arguments table
function
p
.
_For
(
args
)
local
use
=
args
[
1
]
if
(
not
use
)
then
return
mHatnote
.
makeWikitextError
(
'no context parameter provided. Use {{other uses}} for "other uses" hatnotes.'
,
'Template:For#Errors'
,
args
.
category
)
end
local
pages
=
{}
function
two
(
a
,
b
)
return
a
,
b
,
1
end
--lets us run ipairs from 2
for
k
,
v
in
two
(
ipairs
(
args
))
do
table.insert
(
pages
,
v
)
end
local
title
=
mw
.
title
.
getCurrentTitle
()
local
skipCat
=
title
.
isTalkPage
or
title
.
namespace
==
2
--don't categorise talk pages and userspace
local
oddCat
=
skipCat
and
''
or
'[[Category:Hatnote templates using unusual parameters]]'
local
category
=
yesNo
(
args
.
category
)
return
mHatnote
.
_hatnote
(
mHatlist
.
forSeeTableToString
({{
use
=
use
,
pages
=
pages
}}),
{
selfref
=
args
.
selfref
}
)
..
(
(
use
==
'other uses'
)
and
((
category
==
true
)
or
(
category
==
nil
))
and
oddCat
or
''
)
end
return
p