Difference between revisions 23983176 and 23983227 on svwiki

p = {}
 
function p.diagram(frame)
	local pFrame = frame:getParent()
	local args = pFrame.args
	local text = ''
	local namn = args.namn or frame.args.namn
	local max = -math.huge
	local note = args['ref'] or ''
	local noter = {}
	local fotnot = args.fotnot or ''
	if namn == nil or namn == ''then
		return 'Inget namn är angivet' -- namn måste anges
	end
	local fran = tonumber(args.fran) or 1800
	local fran2 = math.hug -- default startvärde är 1800
	local fran2 = math.huge -- dummy argument för att hitta lägsta och högsta värde
	local till2 = -math.huge
	local till = tonumber(args.till) or tonumber(os.date("%Y"))
	local step = 1 --default startvärde är CURRENTYEAR
	local step = 1 -- rätt ordning
	local areakolumn = nil -- variabel för att avgöra om en kolumn för area behövs
	local fkr = nil -- variabel för att avgöra om "före Kristus" behöver markeras
	if args.fkr then
		fkr = 'fkr'
	end
	if till < fran then
		step = -1
	end
	local reffarna = ''
	local notraknare = 1
	for i = fran, till, step do
		local pu = 'inv' .. i
		if tonumber(args[pu]) then
			local pv = 'area' .. i
			if args[pv] then
				areakolumn = ''
			end
			if tonumber(args[pu]) > max then
				max = tonumber(args[pu])
			end
			if i > till2 then
				till2 = i
			end
			if i < fran2 then
				fran2 = i
			end
			if i < 0 then
				fkr = 'fkr'
			end
			local pw = 'typ' .. i
			if args[pw] then
				reffarna = 'A'
				if args[pw] == 'småort' then
					args[pw] = 'som småort'
				end
				if args[pw] == 'tätort' then
					args[pw] = 'som tätort'
				end
				if noter[args[pw]] == nil then
					notraknare = notraknare + 1
					noter[args[pw]] = 'Not'..tostring(notraknare)
				end
			end
		end
	end
	if tonumber(args.max) then 
		max = tonumber(args.max)
	end
	text = 'Befolkningsutvecklingen i ' .. namn
	if fran2 ==local frantext = fran2 .. ''
	local tilltext = till2 .. ''
	if fkr then
		if fran2 < 0 then
			frantext = frantext .. ' f. kr.'
		else
			frantext = frantext .. ' e. kr.'
		end
		if till2 < 0 then
			tilltext = tilltext .. ' ' .. fran2f. kr.'
		else
			tilltext = tilltext .. ' e. kr.'
		end
	end
	if fran2 == till2 then
		text = text .. ' ' .. frantext  .. note						
	else
		text = text .. ' ' .. fran2text .. ' – ' .. till2text .. note
	end
	text = mw.text.tag('big', {}, text)
	text = mw.text.tag('th', {colspan="5"}, text)
	text = mw.text.tag('tr', {style="background:#DDD;"}, text)
	text = text .. mw.text.tag('tr', {}, mw.text.tag('td', {colspan="5", style="padding:4px"}, ''))
	local h1 = mw.text.tag('td', {style="padding:0 4px", valign="top"}, 'År')
(contracted; show full)	end

	text = mw.text.tag('table', {cellspacing="0", cellpadding="0", style="clear:none;float:none;border:silver solid 1px; font-size:90%; padding:0.4em;margin:0.4em;width:650px"}, text)
	
	return text 
end
 
return p