Difference between revisions of "Module:Lighthouse tracking"

From blackwiki
Jump to navigation Jump to search
blackwiki>Frietjes
m (12 revisions imported)
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
local p = {}
 
local p = {}
 
function p.tracking(frame)
 
function p.tracking(frame)
 +
local res = ''
 +
local isNRHP = false
 +
local hasNRHPbox = false
 +
local heritage = frame.args.heritage or ''
 +
if heritage == '' then
 +
elseif (heritage:match('National Register of Historic Places') or
 +
heritage:match('NRHP') ) then
 +
res = res .. '[[Category:Pages using infobox lighthouse with NRHP heritage]]'
 +
isNRHP = true
 +
else
 +
heritage = mw.ustring.gsub(heritage,'^%[%[', '')
 +
res = res .. '[[Category:Pages using infobox lighthouse with non-NRHP heritage|' .. mw.uri.encode(heritage) .. ']]'
 +
end
 +
 
for k, v in pairs( frame:getParent().args ) do
 
for k, v in pairs( frame:getParent().args ) do
 
if k and k == 'module' then
 
if k and k == 'module' then
 +
if v and v:match('<tr') then
 +
if v:match('National Register of Historic Places') or v:match('NRHP')
 +
or v:match('U.S. Historic district')
 +
or v:match('U.S. National Register of Historic Places') then
 +
res = res .. '[[Category:Pages using infobox lighthouse with NRHP embedded]]'
 +
hasNRHPbox = true
 +
else
 +
res = res .. '[[Category:Pages using infobox lighthouse with non-NRHP embedded]]'
 +
end
 +
if v:match('<div style="position') then
 +
local pushpin_map = frame:getParent().args.pushpin_map
 +
if pushpin_map and pushpin_map ~= '' then
 +
res = res .. '[[Category:Pages using infobox lighthouse with two location maps]]'
 +
end
 +
end
 +
end
 
elseif type(k) == 'string' then
 
elseif type(k) == 'string' then
 
if v and v:match('<tr') then
 
if v and v:match('<tr') then
return '[[Category:Pages using infobox lighthouse with NRHP embedded outside the module parameter]]'
+
res = res .. '[[Category:Pages using infobox lighthouse with NRHP embedded outside the module parameter]]'
 
end
 
end
 
end
 
end
 
end
 
end
return ''
+
if hasNRHPbox == false and isNRHP == true then
 +
res = res .. '[[Category:Pages using infobox lighthouse with NRHP heritage|‽]]'
 +
end
 +
if hasNRHPbox == true and isNRHP == false then
 +
res = res .. '[[Category:Pages using infobox lighthouse with NRHP heritage|¶]]'
 +
end
 +
return res
 
end
 
end
 
return p
 
return p

Latest revision as of 06:17, 27 September 2020

This modules produces the tracking categories for Template:Infobox lighthouse


local p = {}
function p.tracking(frame)
	local res = ''
	local isNRHP = false
	local hasNRHPbox = false
	local heritage = frame.args.heritage or ''
	if heritage == '' then
	elseif (heritage:match('National Register of Historic Places') or
		heritage:match('NRHP') ) then
		res = res .. '[[Category:Pages using infobox lighthouse with NRHP heritage]]'
		isNRHP = true
	else
		heritage = mw.ustring.gsub(heritage,'^%[%[', '')
		res = res .. '[[Category:Pages using infobox lighthouse with non-NRHP heritage|' .. mw.uri.encode(heritage) .. ']]'
	end
	
	for k, v in pairs( frame:getParent().args ) do
		if k and k == 'module' then
			if v and v:match('<tr') then
				if v:match('National Register of Historic Places') or v:match('NRHP') 
					or v:match('U.S. Historic district') 
					or v:match('U.S. National Register of Historic Places') then
					res = res .. '[[Category:Pages using infobox lighthouse with NRHP embedded]]'
					hasNRHPbox = true
				else
					res = res .. '[[Category:Pages using infobox lighthouse with non-NRHP embedded]]'
				end
				if v:match('<div style="position') then
					local pushpin_map = frame:getParent().args.pushpin_map
					if pushpin_map and pushpin_map ~= '' then
						res = res .. '[[Category:Pages using infobox lighthouse with two location maps]]'
					end
				end
			end
		elseif type(k) == 'string' then
			if v and v:match('<tr') then
				res = res .. '[[Category:Pages using infobox lighthouse with NRHP embedded outside the module parameter]]'
			end
		end
	end
	if hasNRHPbox == false and isNRHP == true then
		res = res .. '[[Category:Pages using infobox lighthouse with NRHP heritage|‽]]'
	end
	if hasNRHPbox == true and isNRHP == false then
		res = res .. '[[Category:Pages using infobox lighthouse with NRHP heritage|¶]]'
	end
	return res
end
return p