<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://www.wiki.kolejopedia.pl/index.php?action=history&amp;feed=atom&amp;title=Szablon%3AGenerator_g%C5%82%C3%B3wnych</id>
	<title>Szablon:Generator głównych - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://www.wiki.kolejopedia.pl/index.php?action=history&amp;feed=atom&amp;title=Szablon%3AGenerator_g%C5%82%C3%B3wnych"/>
	<link rel="alternate" type="text/html" href="http://www.wiki.kolejopedia.pl/index.php?title=Szablon:Generator_g%C5%82%C3%B3wnych&amp;action=history"/>
	<updated>2026-06-18T22:33:00Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.43.2</generator>
	<entry>
		<id>http://www.wiki.kolejopedia.pl/index.php?title=Szablon:Generator_g%C5%82%C3%B3wnych&amp;diff=209&amp;oldid=prev</id>
		<title>Admin Kolejopedia: Utworzono nową stronę &quot;local tools = require(&#039;Moduł:Narzędzia&#039;) local p = {}  function sanitizeOrElse(text, alt) 	if text ~= nil then 		return mw.text.nowiki(text) 	else 		return alt 	end end  function allowOnly(value, allowed, alt)  	local sanitized = mw.text.trim(sanitizeOrElse(value, alt)) 	for k, v in ipairs(allowed) do 		if v == sanitized then 			return sanitized 		end 	end 	return alt end  function makeShowStatus(value) 	local final = allowOnly(value, {&quot;desktoponly&quot;, &quot;mobileonly&quot;…&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.kolejopedia.pl/index.php?title=Szablon:Generator_g%C5%82%C3%B3wnych&amp;diff=209&amp;oldid=prev"/>
		<updated>2025-07-09T14:21:34Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;local tools = require(&amp;#039;Moduł:Narzędzia&amp;#039;) local p = {}  function sanitizeOrElse(text, alt) 	if text ~= nil then 		return mw.text.nowiki(text) 	else 		return alt 	end end  function allowOnly(value, allowed, alt)  	local sanitized = mw.text.trim(sanitizeOrElse(value, alt)) 	for k, v in ipairs(allowed) do 		if v == sanitized then 			return sanitized 		end 	end 	return alt end  function makeShowStatus(value) 	local final = allowOnly(value, {&amp;quot;desktoponly&amp;quot;, &amp;quot;mobileonly&amp;quot;…&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local tools = require(&amp;#039;Moduł:Narzędzia&amp;#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function sanitizeOrElse(text, alt)&lt;br /&gt;
	if text ~= nil then&lt;br /&gt;
		return mw.text.nowiki(text)&lt;br /&gt;
	else&lt;br /&gt;
		return alt&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function allowOnly(value, allowed, alt) &lt;br /&gt;
	local sanitized = mw.text.trim(sanitizeOrElse(value, alt))&lt;br /&gt;
	for k, v in ipairs(allowed) do&lt;br /&gt;
		if v == sanitized then&lt;br /&gt;
			return sanitized&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return alt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function makeShowStatus(value)&lt;br /&gt;
	local final = allowOnly(value, {&amp;quot;desktoponly&amp;quot;, &amp;quot;mobileonly&amp;quot;}, &amp;#039;&amp;#039;)&lt;br /&gt;
	if final == &amp;quot;desktoponly&amp;quot; then&lt;br /&gt;
		return {desktoponly=true, mobileonly=false, duplicateDesktoponly=false, duplicateMobileonly=false}&lt;br /&gt;
	elseif final == &amp;quot;mobileonly&amp;quot; then&lt;br /&gt;
		return {desktoponly=false, mobileonly=true, duplicateDesktoponly=false, duplicateMobileonly=false}&lt;br /&gt;
	else&lt;br /&gt;
		return {desktoponly=false, mobileonly=false, duplicateDesktoponly=false, duplicateMobileonly=false}&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function showStatusToString(stat)&lt;br /&gt;
	local val = &amp;quot;&amp;quot;&lt;br /&gt;
	if stat[&amp;quot;desktoponly&amp;quot;] or stat[&amp;quot;duplicateDesktoponly&amp;quot;] then&lt;br /&gt;
		val = val .. &amp;quot;desktoponly &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if stat[&amp;quot;mobileonly&amp;quot;] or stat[&amp;quot;duplicateMobileonly&amp;quot;] then&lt;br /&gt;
		val = val .. &amp;quot;mobileonly&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return mw.text.trim(val)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getShowStatusForPlatform(stat, platform)&lt;br /&gt;
	if platform == &amp;quot;desktop&amp;quot; then&lt;br /&gt;
		return stat.desktoponly or stat.duplicateDesktoponly&lt;br /&gt;
	elseif platform == &amp;quot;mobile&amp;quot; then&lt;br /&gt;
		return stat.mobileonly or stat.duplicateMobileonly&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function willEverBeUsed(cur)&lt;br /&gt;
	return not ((getShowStatusForPlatform(cur.showstatus, &amp;quot;desktop&amp;quot;) == getShowStatusForPlatform(cur.showstatus, &amp;quot;mobile&amp;quot;)) and (getShowStatusForPlatform(cur.showstatus, &amp;quot;desktop&amp;quot;) == true))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function makeElementTable(args, num)&lt;br /&gt;
	local cur = {}&lt;br /&gt;
	if args[&amp;#039;ptytułszablon&amp;#039; .. num] ~= nil then&lt;br /&gt;
		cur[&amp;#039;title&amp;#039;] = &amp;#039;{{&amp;#039; .. mw.text.nowiki(args[&amp;#039;ptytułszablon&amp;#039; .. num]) .. &amp;#039;}}&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		cur[&amp;#039;title&amp;#039;] = sanitizeOrElse(args[&amp;#039;ptytuł&amp;#039; .. num], &amp;#039;Nie podano tytułu&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	cur[&amp;#039;text&amp;#039;] = sanitizeOrElse(args[&amp;#039;panel&amp;#039; .. num], &amp;#039;&amp;#039;)&lt;br /&gt;
	cur[&amp;#039;num&amp;#039;] = num&lt;br /&gt;
	cur[&amp;#039;showstatus&amp;#039;] = makeShowStatus(args[&amp;quot;pwarunki&amp;quot; .. num])&lt;br /&gt;
	cur[&amp;#039;icon&amp;#039;] = sanitizeOrElse(args[&amp;#039;pikona&amp;#039; .. num], &amp;#039;&amp;#039;)&lt;br /&gt;
	cur[&amp;#039;iconlink&amp;#039;] = sanitizeOrElse(args[&amp;quot;pikonalink&amp;quot; .. num], &amp;#039;&amp;#039;)&lt;br /&gt;
	cur[&amp;#039;titlelink&amp;#039;] = sanitizeOrElse(args[&amp;quot;plink&amp;quot; .. num], &amp;#039;&amp;#039;)&lt;br /&gt;
	return cur&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- robi listę elementów wg kolumn, ignoruje - i puste&lt;br /&gt;
function makeElementList(args)&lt;br /&gt;
	-- kolumny&lt;br /&gt;
	local first = {}&lt;br /&gt;
	local second = {}&lt;br /&gt;
	local curLeft, curRight = 0, 0&lt;br /&gt;
	for i = 1, 50 do&lt;br /&gt;
		if args[&amp;#039;panel&amp;#039; .. i] ~= nil then&lt;br /&gt;
			if args[&amp;#039;panel&amp;#039; .. i] == &amp;#039;-&amp;#039; or args[&amp;#039;panel&amp;#039; .. i] == &amp;#039;&amp;#039; then else&lt;br /&gt;
				local cur = makeElementTable(args, i)&lt;br /&gt;
				if i % 2 == 1 then&lt;br /&gt;
					table.insert(first, cur)&lt;br /&gt;
					curLeft, curRight = 0, 0&lt;br /&gt;
				else&lt;br /&gt;
					cur.showstatus.duplicateDesktoponly = true&lt;br /&gt;
					if willEverBeUsed(cur) then&lt;br /&gt;
						table.insert(second, cur)&lt;br /&gt;
						curRight = curRight + 1&lt;br /&gt;
					end&lt;br /&gt;
					local cur2 = makeElementTable(args, i)&lt;br /&gt;
					cur2.showstatus.duplicateMobileonly = true&lt;br /&gt;
					if willEverBeUsed(cur2) then&lt;br /&gt;
						table.insert(first, cur2)&lt;br /&gt;
						curLeft = curLeft + 1&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else break end&lt;br /&gt;
	end&lt;br /&gt;
	if curRight &amp;gt; 0 then&lt;br /&gt;
		local maxSecond = table.maxn(second)&lt;br /&gt;
		for i = 0, (curRight - 1) do&lt;br /&gt;
			second[maxSecond-i].showstatus.duplicateDesktoponly = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if curLeft &amp;gt; 0 then&lt;br /&gt;
		local maxFirst = table.maxn(first)&lt;br /&gt;
		for i = 0, (curLeft - 1) do&lt;br /&gt;
			table.remove(first, maxFirst-i)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return first, second&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function makePanel(tab)&lt;br /&gt;
	local panelname = tab[&amp;quot;title&amp;quot;]&lt;br /&gt;
	local titlelink = tab[&amp;quot;titlelink&amp;quot;]&lt;br /&gt;
	local template = tab[&amp;quot;text&amp;quot;]&lt;br /&gt;
	local mobiledesktop = showStatusToString(tab[&amp;quot;showstatus&amp;quot;])&lt;br /&gt;
	local icon = tab[&amp;quot;icon&amp;quot;]&lt;br /&gt;
	local iconlink = tab[&amp;quot;iconlink&amp;quot;]&lt;br /&gt;
	local id = &amp;quot;panel-&amp;quot; .. tab[&amp;quot;num&amp;quot;] .. &amp;quot;-&amp;quot; .. mw.text.encode(panelname)&lt;br /&gt;
	local wikitext = &amp;quot;{{User:Polskacafe/panel|&amp;quot; .. panelname .. &amp;quot;|{{&amp;quot; .. template .. &amp;quot;}}|ikona=&amp;quot; .. icon .. &amp;quot;|link=&amp;quot; .. iconlink .. &amp;quot;|tytuł link=&amp;quot; .. titlelink .. &amp;quot;}}&amp;quot;&lt;br /&gt;
	local panel = mw.html.create(&amp;quot;div&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;glowna-panel&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;id&amp;quot;, id)&lt;br /&gt;
		:wikitext(wikitext)&lt;br /&gt;
	if (mobiledesktop ~= nil) then&lt;br /&gt;
		panel = panel:addClass(mobiledesktop)&lt;br /&gt;
	end&lt;br /&gt;
	return panel:done()&lt;br /&gt;
end&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
function makeColumn(elements)&lt;br /&gt;
	column = mw.html.create(&amp;quot;div&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;glowna-kolumna&amp;quot;)&lt;br /&gt;
	for k,v in ipairs(elements) do&lt;br /&gt;
		local elem = makePanel(v)&lt;br /&gt;
		column = column:node(elem)&lt;br /&gt;
	end&lt;br /&gt;
	return column:done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function makeAll(args)&lt;br /&gt;
	local first, second = makeElementList(args)&lt;br /&gt;
	local mainList = mw.html.create(&amp;quot;div&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;glowna-lista&amp;quot;)&lt;br /&gt;
		:node(makeColumn(first))&lt;br /&gt;
		:node(makeColumn(second))&lt;br /&gt;
		:done()&lt;br /&gt;
	return mainList&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.kolumny(frame)&lt;br /&gt;
	local args = tools.getArgs(frame) -- argumenty szablonu to jest&lt;br /&gt;
	local mainList = makeAll(args)&lt;br /&gt;
	return frame:preprocess(tostring(mainList))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin Kolejopedia</name></author>
	</entry>
</feed>