<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ta">
	<id>https://wiki2.tamilar.wiki/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AImageStackPopup</id>
	<title>Module:ImageStackPopup - திருத்த வரலாறு</title>
	<link rel="self" type="application/atom+xml" href="https://wiki2.tamilar.wiki/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AImageStackPopup"/>
	<link rel="alternate" type="text/html" href="https://wiki2.tamilar.wiki/w/index.php?title=Module:ImageStackPopup&amp;action=history"/>
	<updated>2026-06-02T08:37:28Z</updated>
	<subtitle>விக்கியில் இப்பக்கத்துக்கான திருத்த வரலாறு</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki2.tamilar.wiki/w/index.php?title=Module:ImageStackPopup&amp;diff=113323&amp;oldid=prev</id>
		<title>imported&gt;Sukanthi: &quot;-- Requires ImageStackPopup gadget local p = {}  function p.image( frame ) 	math.randomseed(tonumber(mw.getContentLanguage():formatDate( &quot;U&quot; ))*10000 + os.clock()*10000) 	local args = frame:getParent().args 	local popupConfig = {} 	local caption = &#039;&#039; 	popupConfig.loop = args.loop == &quot;yes&quot; 	if tonumber( args.start ) then 		popupConfig.start = tonumber( args.start )...&quot;-இப்பெயரில் புதிய பக்கம் உருவாக்கப்பட்டுள்ளது</title>
		<link rel="alternate" type="text/html" href="https://wiki2.tamilar.wiki/w/index.php?title=Module:ImageStackPopup&amp;diff=113323&amp;oldid=prev"/>
		<updated>2024-08-23T07:03:14Z</updated>

		<summary type="html">&lt;p&gt;&amp;quot;-- Requires ImageStackPopup gadget local p = {}  function p.image( frame ) 	math.randomseed(tonumber(mw.getContentLanguage():formatDate( &amp;quot;U&amp;quot; ))*10000 + os.clock()*10000) 	local args = frame:getParent().args 	local popupConfig = {} 	local caption = &amp;#039;&amp;#039; 	popupConfig.loop = args.loop == &amp;quot;yes&amp;quot; 	if tonumber( args.start ) then 		popupConfig.start = tonumber( args.start )...&amp;quot;-இப்பெயரில் புதிய பக்கம் உருவாக்கப்பட்டுள்ளது&lt;/p&gt;
&lt;p&gt;&lt;b&gt;புதிய பக்கம்&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Requires ImageStackPopup gadget&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.image( frame )&lt;br /&gt;
	math.randomseed(tonumber(mw.getContentLanguage():formatDate( &amp;quot;U&amp;quot; ))*10000 + os.clock()*10000)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local popupConfig = {}&lt;br /&gt;
	local caption = &amp;#039;&amp;#039;&lt;br /&gt;
	popupConfig.loop = args.loop == &amp;quot;yes&amp;quot;&lt;br /&gt;
	if tonumber( args.start ) then&lt;br /&gt;
		popupConfig.start = tonumber( args.start )&lt;br /&gt;
	else&lt;br /&gt;
		popupConfig.start = 1&lt;br /&gt;
	end&lt;br /&gt;
	if tonumber( args.width ) then&lt;br /&gt;
		popupConfig.width = tonumber( args.width )&lt;br /&gt;
	end&lt;br /&gt;
	if tonumber( args.height ) then&lt;br /&gt;
		popupConfig.height = tonumber( args.height )&lt;br /&gt;
	end&lt;br /&gt;
	popupConfig.list = args.list&lt;br /&gt;
	if args[&amp;#039;noregisterimages&amp;#039;] == nil then&lt;br /&gt;
		-- Register this as a dependency so that this page shows up as using all the images on the list page&lt;br /&gt;
		frame:expandTemplate{ title = &amp;#039;:&amp;#039; .. args.list }&lt;br /&gt;
	end&lt;br /&gt;
	-- If we don&amp;#039;t want to transclude for performance, maybe we could at least link&lt;br /&gt;
	-- however links need to actually be output on the page to register them.&lt;br /&gt;
	&lt;br /&gt;
	if args.caption then&lt;br /&gt;
		popupConfig.caption = &amp;quot;imagestackpopup-caption-&amp;quot; .. math.random()&lt;br /&gt;
		caption = tostring( mw.html.create( &amp;#039;div&amp;#039; )&lt;br /&gt;
			:attr( &amp;#039;id&amp;#039;, popupConfig.caption )&lt;br /&gt;
			:attr( &amp;#039;style&amp;#039;, &amp;#039;display: none&amp;#039; )&lt;br /&gt;
			:wikitext( args.caption )&lt;br /&gt;
			:done() )&lt;br /&gt;
	end&lt;br /&gt;
	if args.title then&lt;br /&gt;
		popupConfig.title = args.title&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring( mw.html.create( &amp;#039;div&amp;#039; )&lt;br /&gt;
		:attr( &amp;#039;class&amp;#039;, &amp;#039;ImageStackPopup&amp;#039; )&lt;br /&gt;
		:attr( &amp;#039;data-imagestackpopup-config&amp;#039;, mw.text.jsonEncode( { popupConfig } ) )&lt;br /&gt;
		:wikitext( args.file ) )&lt;br /&gt;
		.. caption .. &amp;#039;[[Category:ImageStackPopup.js]]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.gallery( frame )&lt;br /&gt;
	-- Seems like math.random is always seeded with 0 :(&lt;br /&gt;
	math.randomseed(tonumber(mw.getContentLanguage():formatDate( &amp;quot;U&amp;quot; ))*10000 + os.clock()*10000)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local reuseImageCaption = args.reuse_image_caption ~= nil&lt;br /&gt;
	local title = args[&amp;quot;popup-title&amp;quot;]&lt;br /&gt;
	local captionId = nil&lt;br /&gt;
	local captionText = &amp;#039;&amp;#039;&lt;br /&gt;
	local galleryContents = &amp;#039;&amp;#039;&lt;br /&gt;
	local optionsArray = {}&lt;br /&gt;
	local galleryArgs = {}&lt;br /&gt;
&lt;br /&gt;
	local galleryAttr = { &amp;quot;mode&amp;quot;, &amp;quot;widths&amp;quot;, &amp;quot;heights&amp;quot;, &amp;quot;perrow&amp;quot;, &amp;quot;caption&amp;quot;, &amp;quot;showfilename&amp;quot;, &amp;quot;showthumbnail&amp;quot;, &amp;quot;id&amp;quot;, &amp;quot;title&amp;quot;, &amp;quot;class&amp;quot;, &amp;quot;lang&amp;quot;, &amp;quot;dir&amp;quot; }&lt;br /&gt;
	for i, j in ipairs( galleryAttr ) do&lt;br /&gt;
		galleryArgs[j] = args[j]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args[&amp;#039;popup-caption&amp;#039;] then&lt;br /&gt;
		captionId = &amp;#039;imagestackpopup-caption-&amp;#039; .. math.random()&lt;br /&gt;
		captionText = tostring(&lt;br /&gt;
			mw.html.create( &amp;#039;div&amp;#039; )&lt;br /&gt;
				:attr( &amp;#039;style&amp;#039;, &amp;#039;display:none&amp;#039; )&lt;br /&gt;
				:attr( &amp;#039;id&amp;#039;, captionId )&lt;br /&gt;
				:wikitext( args[&amp;#039;popup-caption&amp;#039;] )&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for row in mw.text.gsplit( args.gallery, &amp;quot;\n&amp;quot;, true ) do&lt;br /&gt;
		local galleryRow = &amp;#039;&amp;#039;&lt;br /&gt;
		local popupOptions = { title = title, caption = captionId }&lt;br /&gt;
		for part in mw.text.gsplit( row, &amp;quot;!&amp;quot;, true ) do&lt;br /&gt;
			equalSplit = mw.text.split( part, &amp;#039;=&amp;#039;, true )&lt;br /&gt;
			if #equalSplit &amp;lt;= 1 then&lt;br /&gt;
				-- be sure this really is a caption.&lt;br /&gt;
				if galleryRow ~= &amp;#039;&amp;#039; and&lt;br /&gt;
					reuseImageCaption and&lt;br /&gt;
					#part &amp;gt; 8 and&lt;br /&gt;
					string.find( part, &amp;quot; &amp;quot;, 1, true )&lt;br /&gt;
				then&lt;br /&gt;
					local captionId = &amp;#039;imagestackpopup-caption-&amp;#039; .. math.random()&lt;br /&gt;
					local wrappedPart = tostring( mw.html.create( &amp;#039;span&amp;#039; )&lt;br /&gt;
						:attr( &amp;#039;id&amp;#039;, captionId )&lt;br /&gt;
						:wikitext( part )&lt;br /&gt;
					)&lt;br /&gt;
					popupOptions.caption = captionId&lt;br /&gt;
					galleryRow = galleryRow .. wrappedPart .. &amp;#039;|&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					galleryRow = galleryRow .. part .. &amp;#039;|&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				if equalSplit[1] == &amp;#039;popup-width&amp;#039; then&lt;br /&gt;
					popupOptions.width = tonumber(equalSplit[2])&lt;br /&gt;
				elseif equalSplit[1] == &amp;#039;popup-height&amp;#039; then&lt;br /&gt;
					popupOptions.height = tonumber(equalSplit[2])&lt;br /&gt;
				elseif equalSplit[1] == &amp;#039;popup-loop&amp;#039; then&lt;br /&gt;
					popupOptions.loop = equalSplit[2] ~= &amp;#039;&amp;#039;&lt;br /&gt;
				elseif equalSplit[1] == &amp;#039;popup-start&amp;#039; then&lt;br /&gt;
					popupOptions.start = tonumber(equalSplit[2])&lt;br /&gt;
				elseif equalSplit[1] == &amp;#039;popup-caption&amp;#039; then&lt;br /&gt;
					local captionIdForImg = &amp;#039;imagestackpopup-caption-&amp;#039; .. math.random()&lt;br /&gt;
					captionText = captionText .. tostring( mw.html.create( &amp;#039;div&amp;#039; )&lt;br /&gt;
						:attr( &amp;#039;id&amp;#039;, captionIdForImg )&lt;br /&gt;
						:css( &amp;#039;display&amp;#039;, &amp;#039;none&amp;#039; )&lt;br /&gt;
						:wikitext( table.concat( equalSplit, &amp;#039;=&amp;#039;, 2 ) )&lt;br /&gt;
					)&lt;br /&gt;
					popupOptions.caption = captionIdForImg&lt;br /&gt;
				elseif equalSplit[1] == &amp;#039;popup-title&amp;#039; then&lt;br /&gt;
					popupOptions.title = table.concat( equalSplit, &amp;#039;=&amp;#039;, 2 )&lt;br /&gt;
				elseif equalSplit[1] == &amp;#039;popup-list&amp;#039; then&lt;br /&gt;
					popupOptions.list = table.concat( equalSplit, &amp;#039;=&amp;#039;, 2 )&lt;br /&gt;
					if args[&amp;#039;noregisterimages&amp;#039;] == nil then&lt;br /&gt;
						-- Register this as a dependency so that this page shows up as using all the images on the list page&lt;br /&gt;
						frame:expandTemplate{ title = &amp;#039;:&amp;#039; .. table.concat( equalSplit, &amp;#039;=&amp;#039;, 2 ) }&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					galleryRow = galleryRow .. part .. &amp;#039;|&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if string.sub( galleryRow, -1 ) == &amp;#039;|&amp;#039; then&lt;br /&gt;
			galleryRow = string.sub( galleryRow, 1, -2 )&lt;br /&gt;
		end&lt;br /&gt;
		galleryContents = galleryContents .. galleryRow .. &amp;quot;\n&amp;quot;&lt;br /&gt;
		optionsArray[#optionsArray+1] = popupOptions&lt;br /&gt;
	end&lt;br /&gt;
	return tostring( mw.html.create( &amp;#039;div&amp;#039; )&lt;br /&gt;
		:attr( &amp;#039;class&amp;#039;, &amp;#039;ImageStackPopup&amp;#039; )&lt;br /&gt;
		:attr( &amp;#039;data-imagestackpopup-config&amp;#039;, mw.text.jsonEncode( optionsArray ) )&lt;br /&gt;
		:wikitext( frame:extensionTag( &amp;#039;gallery&amp;#039;, galleryContents, galleryArgs ) )&lt;br /&gt;
		) .. captionText .. &amp;#039;[[Category:ImageStackPopup.js]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Sukanthi</name></author>
	</entry>
</feed>