<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://gravitywiki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%9A%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0</id>
	<title>Модуль:Карточка - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://gravitywiki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%9A%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://gravitywiki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0&amp;action=history"/>
	<updated>2026-04-22T11:17:00Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://gravitywiki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0&amp;diff=12&amp;oldid=prev</id>
		<title>Admin: Новая страница: «local p = {}  -- Создаёт карточку function p.infobox(f) 	local args = f 	if f == mw.getCurrentFrame() then 		args = require( &#039;Модуль:ProcessArgs&#039; ).merge( true ) 	else 		f = mw.getCurrentFrame() 	end 	local titleObject = mw.title.getCurrentTitle() 	local title = args[&#039;название&#039;] or titleObject.subpageText 	local subtitle = args[&quot;подзаголовок&quot;] or &quot;&quot; 	 	local titleArea = args[&quot;шапка&quot;] 	if not titleArea then 		if s...»</title>
		<link rel="alternate" type="text/html" href="https://gravitywiki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%9A%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B0&amp;diff=12&amp;oldid=prev"/>
		<updated>2025-08-05T15:08:09Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «local p = {}  -- Создаёт карточку function p.infobox(f) 	local args = f 	if f == mw.getCurrentFrame() then 		args = require( &amp;#039;Модуль:ProcessArgs&amp;#039; ).merge( true ) 	else 		f = mw.getCurrentFrame() 	end 	local titleObject = mw.title.getCurrentTitle() 	local title = args[&amp;#039;название&amp;#039;] or titleObject.subpageText 	local subtitle = args[&amp;quot;подзаголовок&amp;quot;] or &amp;quot;&amp;quot; 	 	local titleArea = args[&amp;quot;шапка&amp;quot;] 	if not titleArea then 		if s...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Создаёт карточку&lt;br /&gt;
function p.infobox(f)&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &amp;#039;Модуль:ProcessArgs&amp;#039; ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	local titleObject = mw.title.getCurrentTitle()&lt;br /&gt;
	local title = args[&amp;#039;название&amp;#039;] or titleObject.subpageText&lt;br /&gt;
	local subtitle = args[&amp;quot;подзаголовок&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local titleArea = args[&amp;quot;шапка&amp;quot;]&lt;br /&gt;
	if not titleArea then&lt;br /&gt;
		if subtitle == &amp;#039;&amp;#039; then&lt;br /&gt;
			titleArea = title&lt;br /&gt;
		else&lt;br /&gt;
			titleArea = title .. &amp;#039;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;infobox-subtitle&amp;quot;&amp;gt;&amp;#039; .. subtitle .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local mod = args[&amp;quot;мод&amp;quot;]&lt;br /&gt;
	if mod then&lt;br /&gt;
		local mods = mw.loadData(&amp;quot;Модуль:Модификации&amp;quot;)&lt;br /&gt;
		mod = mods[mod] or mod&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local imageArea = args[&amp;quot;изображения&amp;quot;]&lt;br /&gt;
	if not imageArea then&lt;br /&gt;
		local images = {}&lt;br /&gt;
		local invImages = {}&lt;br /&gt;
		local defaultImageSize = args[&amp;quot;умолчразмеризобр&amp;quot;] or &amp;#039;160px&amp;#039;&lt;br /&gt;
		local defaultImageClass = args[&amp;quot;умолчклассизобр&amp;quot;]&lt;br /&gt;
		args[&amp;quot;изображение1&amp;quot;] = args[&amp;quot;изображение1&amp;quot;] or args[&amp;quot;изображение&amp;quot;]&lt;br /&gt;
		args[&amp;quot;изобр1описание&amp;quot;] = args[&amp;quot;изобр1описание&amp;quot;] or args[&amp;quot;изоброписание&amp;quot;]&lt;br /&gt;
		args[&amp;quot;изобр1разм&amp;quot;]  = args[&amp;quot;изобр1разм&amp;quot;] or args[&amp;quot;изобрразм&amp;quot;]&lt;br /&gt;
		args[&amp;quot;изобр1класс&amp;quot;]  = args[&amp;quot;изобр1класс&amp;quot;] or args[&amp;quot;изобркласс&amp;quot;] or &amp;#039;pageimage&amp;#039;&lt;br /&gt;
		args[&amp;quot;инвизображение1&amp;quot;] = args[&amp;quot;инвизображение1&amp;quot;] or args[&amp;quot;инвизображение&amp;quot;] or &amp;#039;назв&amp;#039;&lt;br /&gt;
		args[&amp;#039;группа1&amp;#039;] = args[&amp;#039;группа1&amp;#039;] or args[&amp;#039;группа&amp;#039;]&lt;br /&gt;
		args[&amp;#039;групп1разм&amp;#039;] = args[&amp;#039;групп1разм&amp;#039;] or args[&amp;#039;группразм&amp;#039;]&lt;br /&gt;
		args[&amp;#039;групп1класс&amp;#039;] = args[&amp;#039;групп1класс&amp;#039;] or args[&amp;#039;группкласс&amp;#039;]&lt;br /&gt;
		args[&amp;#039;групп1описание&amp;#039;] = args[&amp;#039;групп1описание&amp;#039;] or args[&amp;#039;группописание&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
		&lt;br /&gt;
		if not (args[&amp;quot;изображение1&amp;quot;] or args[&amp;quot;группа1&amp;quot;]) then&lt;br /&gt;
			args[&amp;quot;изображение1&amp;quot;] = &amp;quot;назв&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local imgCount = {}&lt;br /&gt;
		local invImgCount = {}&lt;br /&gt;
		local groupCount = {}&lt;br /&gt;
		local groupImgList = {}&lt;br /&gt;
		for k, v in pairs( args ) do&lt;br /&gt;
			if type( k ) == &amp;quot;string&amp;quot; and k ~= &amp;quot;ряды&amp;quot; then&lt;br /&gt;
				local image, num = mw.ustring.match(k, &amp;#039;^(изображение)(%d+)$&amp;#039; )&lt;br /&gt;
				local invImage, invNum = mw.ustring.match(k, &amp;#039;^(инвизображение)(%d+)$&amp;#039; )&lt;br /&gt;
				local group, groupNum = mw.ustring.match(k, &amp;#039;^(группа)(%d+)$&amp;#039; )&lt;br /&gt;
				local groupImg, groupImgNum = mw.ustring.match(k, &amp;#039;^(%d+)-(%d+)$&amp;#039; )&lt;br /&gt;
				if mw.ustring.lower(v) ~= &amp;#039;нет&amp;#039; then&lt;br /&gt;
					if image then&lt;br /&gt;
						table.insert( imgCount, tonumber( num ) )&lt;br /&gt;
					elseif invImage then&lt;br /&gt;
						table.insert( invImgCount, tonumber( invNum ) )&lt;br /&gt;
					elseif group then&lt;br /&gt;
						table.insert( groupCount, tonumber( groupNum ) )&lt;br /&gt;
						if not groupImgList[&amp;#039;группа&amp;#039; .. groupNum] then&lt;br /&gt;
							groupImgList[&amp;#039;группа&amp;#039; .. groupNum] = {}&lt;br /&gt;
						end&lt;br /&gt;
					elseif groupImg then&lt;br /&gt;
						if not groupImgList[&amp;#039;группа&amp;#039; .. groupImg] then&lt;br /&gt;
							groupImgList[&amp;#039;группа&amp;#039; .. groupImg] = {}&lt;br /&gt;
						end&lt;br /&gt;
						table.insert( groupImgList[&amp;#039;группа&amp;#039; .. groupImg], tonumber( groupImgNum ) )&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local animate&lt;br /&gt;
		if #groupCount &amp;gt; 0 then&lt;br /&gt;
			table.sort( groupCount )&lt;br /&gt;
			local tabber = {}&lt;br /&gt;
			for k, v in ipairs( groupCount ) do&lt;br /&gt;
				local group = args[&amp;#039;группа&amp;#039; .. v]&lt;br /&gt;
				local groupSize = args[&amp;#039;групп&amp;#039; .. v .. &amp;#039;разм&amp;#039;] or defaultImageSize&lt;br /&gt;
				local groupClass = args[&amp;#039;групп&amp;#039; .. v .. &amp;#039;класс&amp;#039;] or defaultImageClass&lt;br /&gt;
				local groupCaption = args[&amp;#039;групп&amp;#039; .. v .. &amp;#039;описание&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
				local groupImages = {}&lt;br /&gt;
				&lt;br /&gt;
				table.sort( groupImgList[&amp;#039;группа&amp;#039; .. v] )&lt;br /&gt;
				for _, w in ipairs( groupImgList[&amp;#039;группа&amp;#039; .. v] ) do&lt;br /&gt;
					local image = args[v .. &amp;#039;-&amp;#039; .. w]&lt;br /&gt;
					local size = args[v .. &amp;#039;-&amp;#039; .. w .. &amp;#039;разм&amp;#039;] or args[&amp;#039;*-&amp;#039; .. w .. &amp;#039;разм&amp;#039;] or groupSize&lt;br /&gt;
					local class = args[v .. &amp;#039;-&amp;#039; .. w .. &amp;#039;класс&amp;#039;] or args[&amp;#039;*-&amp;#039; .. w .. &amp;#039;класс&amp;#039;] or groupClass&lt;br /&gt;
					local caption = args[v .. &amp;#039;-&amp;#039; .. w .. &amp;#039;описание&amp;#039;] or args[&amp;#039;*-&amp;#039; .. w .. &amp;#039;описание&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
					&lt;br /&gt;
					if image:match( &amp;#039;;&amp;#039; ) then&lt;br /&gt;
						if not animate then&lt;br /&gt;
							animate = require( &amp;#039;Модуль:Анимация&amp;#039; ).animate&lt;br /&gt;
						end&lt;br /&gt;
						image = animate{ image, size, nil, class }&lt;br /&gt;
					else&lt;br /&gt;
						image = &amp;#039;[[Файл:&amp;#039; .. image .. &amp;#039;|&amp;#039; .. size .. &amp;#039;|class=&amp;#039; .. ( class or &amp;#039;&amp;#039; ) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					if caption ~= &amp;#039;&amp;#039; then&lt;br /&gt;
						caption = &amp;#039;&amp;lt;div class=&amp;quot;infobox-imagecaption&amp;quot;&amp;gt;\n&amp;#039; .. caption .. &amp;#039;\n&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					table.insert( groupImages, &amp;#039;&amp;lt;div&amp;gt;&amp;#039; .. image .. caption .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039; )&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				if groupCaption ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					groupCaption = &amp;#039;&amp;lt;div class=&amp;quot;infobox-imagecaption&amp;quot;&amp;gt;\n&amp;#039; .. groupCaption .. &amp;#039;\n&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				table.insert( tabber, &amp;#039;|-|&amp;#039; .. group .. &amp;#039;=\n&amp;#039; .. table.concat( groupImages, &amp;#039;\n&amp;#039; ) .. groupCaption )&lt;br /&gt;
			end&lt;br /&gt;
			table.insert( images, &amp;#039;&amp;lt;div&amp;gt;&amp;#039; .. f:extensionTag( &amp;#039;tabber&amp;#039;, table.concat( tabber, &amp;#039;\n&amp;#039; ) ) .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		table.sort( imgCount )&lt;br /&gt;
		local animate&lt;br /&gt;
		for k, v in ipairs( imgCount ) do&lt;br /&gt;
			local image = args[&amp;#039;изображение&amp;#039; .. v]&lt;br /&gt;
			local size = args[&amp;#039;изобр&amp;#039; .. v .. &amp;#039;разм&amp;#039;] or defaultImageSize&lt;br /&gt;
			local class = args[&amp;#039;изобр&amp;#039; .. v .. &amp;#039;класс&amp;#039;] or defaultImageClass&lt;br /&gt;
			local caption = args[&amp;#039;изобр&amp;#039; .. v .. &amp;#039;описание&amp;#039;]&lt;br /&gt;
			&lt;br /&gt;
			if mw.ustring.lower(image) == &amp;#039;назв&amp;#039; or image == &amp;#039;title&amp;#039; then&lt;br /&gt;
				local filename&lt;br /&gt;
				if mod then&lt;br /&gt;
					filename = title .. &amp;#039; (&amp;#039; .. mod .. &amp;#039;).png&amp;#039;&lt;br /&gt;
				elseif titleObject.isSubpage then&lt;br /&gt;
					filename = title .. &amp;#039; (&amp;#039; .. titleObject.baseText .. &amp;#039;).png&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					filename = title .. &amp;#039;.png&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				local imageTitle = mw.title.new( &amp;#039;Файл:&amp;#039; .. filename )&lt;br /&gt;
				if imageTitle and imageTitle.exists then&lt;br /&gt;
					image = &amp;#039;[[Файл:&amp;#039; .. filename .. &amp;#039;|&amp;#039; .. size .. &amp;#039;|class=&amp;#039; .. (class or &amp;#039;&amp;#039;) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
				elseif titleObject.namespace == 0 then&lt;br /&gt;
					image = &amp;#039;[[Файл:No image.svg|&amp;#039; .. size .. &amp;#039;|link=Файл:&amp;#039; .. filename .. &amp;#039;|Загрузить &amp;#039; .. filename .. &amp;#039;]]&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					image = &amp;#039;[[Файл:No image.svg|&amp;#039; .. size .. &amp;#039;|link=|Изображение отсутствует]]&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			elseif image:match(&amp;#039;;&amp;#039;) then&lt;br /&gt;
				if not animate then&lt;br /&gt;
					animate = require( &amp;#039;Модуль:Анимация&amp;#039; ).animate&lt;br /&gt;
				end&lt;br /&gt;
				image = animate{ image, size, nil, class }&lt;br /&gt;
			else&lt;br /&gt;
				image = &amp;#039;[[Файл:&amp;#039; .. image .. &amp;#039;|&amp;#039; .. size .. &amp;#039;|class=&amp;#039; .. (class or &amp;#039;&amp;#039;) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if caption and mw.ustring.lower(caption) ~= &amp;#039;нет&amp;#039; then&lt;br /&gt;
				caption = &amp;#039;&amp;lt;div class=&amp;quot;infobox-imagecaption&amp;quot;&amp;gt;&amp;#039; .. caption .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				caption = &amp;#039;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			table.insert( images, &amp;#039;&amp;lt;div&amp;gt;&amp;#039; .. image .. caption .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
		images = table.concat( images, &amp;#039;\n&amp;#039; )&lt;br /&gt;
		&lt;br /&gt;
		if #invImgCount &amp;gt; 0 then&lt;br /&gt;
			table.sort( invImgCount )&lt;br /&gt;
			local grid&lt;br /&gt;
			for k, v in ipairs( invImgCount ) do&lt;br /&gt;
				local image = args[&amp;#039;инвизображение&amp;#039; .. v]&lt;br /&gt;
				if mw.ustring.lower(image) == &amp;#039;назв&amp;#039; or image == &amp;#039;title&amp;#039; then&lt;br /&gt;
					local imageExists&lt;br /&gt;
					if mod then&lt;br /&gt;
						local tryLoadData = require([[Модуль:Специальные утилиты]]).tryLoadData&lt;br /&gt;
						local modInvIds = tryLoadData([[Модуль:ИнвСпрайт/]] .. mod)&lt;br /&gt;
						local modAliases = tryLoadData([[Модуль:Инвентарный слот/Псевдонимы/]] .. mod)&lt;br /&gt;
						if modAliases and modAliases[title] or modInvIds and modInvIds[&amp;quot;IDы&amp;quot;][title] then&lt;br /&gt;
							imageExists = true&lt;br /&gt;
						else&lt;br /&gt;
							local imageTitle = mw.title.new(&amp;#039;Файл:Grid &amp;#039; .. title .. &amp;#039; (&amp;#039; .. mod .. &amp;#039;).png&amp;#039;)&lt;br /&gt;
							imageExists = imageTitle and imageTitle.exists&lt;br /&gt;
						end&lt;br /&gt;
					else&lt;br /&gt;
						local invEnglish = mw.loadData([[Модуль:Инвентарный слот/Англоязычные названия]])&lt;br /&gt;
						local invIds = mw.loadData( [[Модуль:ИнвСпрайт]] )[&amp;quot;IDы&amp;quot;]&lt;br /&gt;
						local invAliases = mw.loadData([[Модуль:Инвентарный слот/Псевдонимы]])&lt;br /&gt;
						if invAliases[title] or invEnglish[title] or invIds[title] then&lt;br /&gt;
							imageExists = true&lt;br /&gt;
						else&lt;br /&gt;
							local imageTitle = mw.title.new( &amp;#039;Файл:Grid &amp;#039; .. title .. &amp;#039;.png&amp;#039; )&lt;br /&gt;
							imageExists = imageTitle and imageTitle.exists&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if imageExists then&lt;br /&gt;
						image = title&lt;br /&gt;
					else&lt;br /&gt;
						image = false&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				if image == &amp;#039;----&amp;#039; then&lt;br /&gt;
					table.insert( invImages, &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top:.5em&amp;quot;&amp;gt;&amp;#039; )&lt;br /&gt;
				elseif image then&lt;br /&gt;
					if not grid then&lt;br /&gt;
						grid = require( &amp;#039;Модуль:Инвентарный слот&amp;#039; ).slot&lt;br /&gt;
					end&lt;br /&gt;
					table.insert( invImages, grid{ image, [&amp;#039;ссылка&amp;#039;] = &amp;#039;нет&amp;#039;, [&amp;#039;мод&amp;#039;] = mod } )&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if grid and #invImages &amp;gt; 0 then&lt;br /&gt;
				invImages = &amp;#039;&amp;lt;div class=&amp;quot;infobox-invimages&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&amp;#039; .. table.concat( invImages, &amp;#039;&amp;#039; ) .. &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				invImages = &amp;#039;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			invImages = &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if images ~= &amp;#039;&amp;#039; or invImages ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			imageArea = images .. &amp;#039;\n&amp;#039; .. invImages&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if imageArea and mw.ustring.lower(imageArea) ~= &amp;#039;нет&amp;#039; then&lt;br /&gt;
		imageArea = &amp;#039;&amp;lt;div class=&amp;quot;infobox-imagearea&amp;quot;&amp;gt;&amp;#039; .. imageArea .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		imageArea = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local extraText = args[&amp;quot;доптекст&amp;quot;]&lt;br /&gt;
	if extraText and mw.ustring.lower(extraText) ~= &amp;#039;нет&amp;#039; then&lt;br /&gt;
		extraText = &amp;#039;&amp;lt;div class=&amp;quot;infobox-extratext&amp;quot;&amp;gt;&amp;#039; .. extraText .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		extraText = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local imageAreaExpanded = imageArea .. &amp;#039;&amp;#039; .. extraText&lt;br /&gt;
	local rowsClass = &amp;#039;&amp;#039;&lt;br /&gt;
	if imageAreaExpanded and imageAreaExpanded ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		rowsClass = &amp;#039; infobox-rows-alternate&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local footer = args[&amp;quot;подвал&amp;quot;]&lt;br /&gt;
	if footer then&lt;br /&gt;
		footer = &amp;#039;| class=&amp;quot;infobox-footer&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;#039; .. footer&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local styles = { args[&amp;quot;стиль&amp;quot;] }&lt;br /&gt;
	local width = args[&amp;quot;ширина&amp;quot;]&lt;br /&gt;
	if width then&lt;br /&gt;
		if not width:match(&amp;quot;px$&amp;quot;) then&lt;br /&gt;
			-- временно, для совместимости&lt;br /&gt;
			width = width .. &amp;#039;px&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		styles[#styles+1] = &amp;quot;width:&amp;quot; .. width&lt;br /&gt;
	end&lt;br /&gt;
	local style = &amp;quot;&amp;quot;&lt;br /&gt;
	if #styles &amp;gt; 0 then&lt;br /&gt;
		style = &amp;#039; style=&amp;quot;&amp;#039; .. table.concat(styles, &amp;quot;;&amp;quot;) .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local rows = args[&amp;quot;ряды&amp;quot;] or &amp;#039;&amp;#039;&lt;br /&gt;
	if type(rows) == &amp;quot;table&amp;quot; then&lt;br /&gt;
		local sRows = {}&lt;br /&gt;
		for _, row in ipairs(rows) do&lt;br /&gt;
			table.insert(sRows, row[&amp;quot;заголовок&amp;quot;] and p.header(row) or p.row(row))&lt;br /&gt;
		end&lt;br /&gt;
		rows = table.concat(sRows, &amp;#039;\n&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local html = {&lt;br /&gt;
		&amp;#039;&amp;lt;div class=&amp;quot;infobox notaninfobox&amp;quot;&amp;#039; .. style .. &amp;#039;&amp;gt;&amp;#039;,&lt;br /&gt;
			&amp;#039;&amp;lt;div class=&amp;quot;infobox-title&amp;quot;&amp;gt;&amp;#039; .. titleArea .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;,&lt;br /&gt;
			imageAreaExpanded,&lt;br /&gt;
			&amp;#039;{| class=&amp;quot;infobox-rows&amp;#039; .. rowsClass ..&amp;#039;&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&amp;#039;,&lt;br /&gt;
			&amp;#039;|-&amp;#039;,&lt;br /&gt;
			rows,&lt;br /&gt;
			footer or &amp;#039;&amp;#039;,&lt;br /&gt;
			&amp;#039;|}&amp;#039;,&lt;br /&gt;
		&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if args[&amp;quot;цвет&amp;quot;] then&lt;br /&gt;
		table.insert(html, &amp;quot;[[Категория:Страницы с вызовом устаревших параметров]]&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat( html, &amp;#039;\n&amp;#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Создаёт ряд карточки. Предназначена для использования только в модулях&lt;br /&gt;
-- В шаблонах используйте {{Ряд карточки}}&lt;br /&gt;
function p.row(args)&lt;br /&gt;
	local label = args[1] or args[&amp;quot;ярлык&amp;quot;]&lt;br /&gt;
	local data = args[2] or args[&amp;quot;поле&amp;quot;]&lt;br /&gt;
	if not data then&lt;br /&gt;
		data = label&lt;br /&gt;
		label = nil&lt;br /&gt;
	end&lt;br /&gt;
	local class = args[&amp;quot;класс&amp;quot;] or &amp;#039;&amp;#039;&lt;br /&gt;
	if class ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		class = &amp;#039;class=&amp;quot;&amp;#039; .. class .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if label then&lt;br /&gt;
		return table.concat {&lt;br /&gt;
			&amp;quot;|-\n! &amp;quot;, mw.ustring.gsub(label, &amp;quot;^%l&amp;quot;, mw.ustring.upper),&lt;br /&gt;
			&amp;quot;\n| &amp;quot;, class, &amp;quot; |\n&amp;quot;,&lt;br /&gt;
			data&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		return table.concat {&lt;br /&gt;
			&amp;quot;| &amp;quot;, class, &amp;quot; colspan=2 |\n&amp;quot;,&lt;br /&gt;
			data&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Создаёт заголовок карточки. Предназначена для использования только в модулях&lt;br /&gt;
-- В шаблонах используйте {{Заголовок карточки}}&lt;br /&gt;
function p.header(args)&lt;br /&gt;
	local header = args[1] or args[&amp;quot;заголовок&amp;quot;]&lt;br /&gt;
	&lt;br /&gt;
	-- Стили строки&lt;br /&gt;
	local collapsible = &amp;quot;&amp;quot;&lt;br /&gt;
	if args[&amp;quot;складываемый&amp;quot;] then&lt;br /&gt;
		collapsible = &amp;quot; collapsible&amp;quot; .. (args[&amp;quot;сложить&amp;quot;] and &amp;quot; collapsed&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Стили столбца&lt;br /&gt;
	local class = args[&amp;quot;класс&amp;quot;] or &amp;quot;infobox-title&amp;quot;&lt;br /&gt;
	local style = args[&amp;quot;стиль&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
	if style ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		style = &amp;#039;style=&amp;quot;&amp;#039; .. style .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat {&lt;br /&gt;
		&amp;#039;|- class=&amp;quot;collapsible-rows&amp;#039;, collapsible,&lt;br /&gt;
		&amp;#039;&amp;quot;\n| colspan=2 class=&amp;quot;infobox-header &amp;#039;, class, &amp;#039;&amp;quot; |\n&amp;#039;,&lt;br /&gt;
		header&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>