Notice: Firmware Links Under Maintenance We are currently undergoing maintenance on all firmware links. If any links are inaccessible, please email or contact Tech Support for the firmware. We appreciate your patience during the maintenance, thank you for your understanding.

Difference between revisions of "Module:For"

m (1 revision imported)
(Updated from sandbox: prints error if first parameter is empty (previously defaulted to "other uses"); exact-match "other uses" is still categorized)
Line 2: Line 2:
 
local mHatlist = require('Module:Hatnote list')
 
local mHatlist = require('Module:Hatnote list')
 
local mHatnote = require('Module:Hatnote')
 
local mHatnote = require('Module:Hatnote')
 +
local yesNo = require('Module:Yesno')
 
local p = {}
 
local p = {}
  
Line 13: Line 14:
 
--Implements {{For}} but takes a manual arguments table
 
--Implements {{For}} but takes a manual arguments table
 
function p._For (args)
 
function p._For (args)
local use = args[1] --cases with parameter 1 unspecified should probably be flagged
+
local use = args[1]
if use == 'other uses' then
+
if (not use) then
use = use .. '[[Category:Hatnote templates using unusual parameters]]'
+
return mHatnote.makeWikitextError(
 +
'no context parameter provided. Use {{other uses}} for "other uses" hatnotes.',
 +
'Template:For#Errors',
 +
args.category
 +
)
 
end
 
end
 
local pages = {}
 
local pages = {}
function two (a, b, c) return a, b, 1 end --lets us run ipairs from 2
+
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
 
for k, v in two(ipairs(args)) do table.insert(pages, v) end
 
return mHatnote._hatnote(
 
return mHatnote._hatnote(
 
mHatlist.forSeeTableToString({{use = use, pages = pages}}),
 
mHatlist.forSeeTableToString({{use = use, pages = pages}}),
 
{selfref = args.selfref}
 
{selfref = args.selfref}
)
+
) .. (
 +
(use == 'other uses') and yesNo(args.category) and
 +
'[[Category:Hatnote templates using unusual parameters]]' or ''
 +
)
 
end
 
end
  
 
return p
 
return p

Revision as of 16:25, 16 August 2018

Documentation for this module may be created at Module:For/doc

Script error: Lua error: Internal error: The interpreter exited with status 127.

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
	return mHatnote._hatnote(
		mHatlist.forSeeTableToString({{use = use, pages = pages}}),
		{selfref = args.selfref}
	) .. (
			(use == 'other uses') and yesNo(args.category) and
			'[[Category:Hatnote templates using unusual parameters]]' or ''
		)
end

return p