<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://wikialborz.com/history/%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson?feed=atom</id>
	<title>پودمان:InfoboxPerson - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://wikialborz.com/history/%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://wikialborz.com/history/%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson"/>
	<updated>2026-08-16T03:56:25Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;diff=10708&amp;oldid=prev</id>
		<title>Modir: جایگزینی صفحه با &#039;local core = require(&quot;Module:InfoboxPerson/Core&quot;)  local p = {}  function p.main(frame) 	return core.main(frame) end  return p&#039;</title>
		<link rel="alternate" type="text/html" href="https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;diff=10708&amp;oldid=prev"/>
		<updated>2026-07-12T21:30:36Z</updated>

		<summary type="html">&lt;p&gt;جایگزینی صفحه با &amp;#039;local core = require(&amp;quot;Module:InfoboxPerson/Core&amp;quot;)  local p = {}  function p.main(frame) 	return core.main(frame) end  return p&amp;#039;&lt;/p&gt;
&lt;a href=&quot;https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;amp;diff=10708&amp;amp;oldid=10706&quot;&gt;نمایش تغییرات&lt;/a&gt;</summary>
		<author><name>Modir</name></author>
	</entry>
	<entry>
		<id>https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;diff=10706&amp;oldid=prev</id>
		<title>Modir در ‏۱۲ ژوئیهٔ ۲۰۲۶، ساعت ۲۱:۱۱</title>
		<link rel="alternate" type="text/html" href="https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;diff=10706&amp;oldid=prev"/>
		<updated>2026-07-12T21:11:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;amp;diff=10706&amp;amp;oldid=10705&quot;&gt;نمایش تغییرات&lt;/a&gt;</summary>
		<author><name>Modir</name></author>
	</entry>
	<entry>
		<id>https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;diff=10705&amp;oldid=prev</id>
		<title>Modir در ‏۱۲ ژوئیهٔ ۲۰۲۶، ساعت ۱۳:۱۴</title>
		<link rel="alternate" type="text/html" href="https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;diff=10705&amp;oldid=prev"/>
		<updated>2026-07-12T13:14:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;amp;diff=10705&amp;amp;oldid=10704&quot;&gt;نمایش تغییرات&lt;/a&gt;</summary>
		<author><name>Modir</name></author>
	</entry>
	<entry>
		<id>https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;diff=10704&amp;oldid=prev</id>
		<title>Modir: صفحه‌ای تازه حاوی «local p = {}  --================================================== -- Module:InfoboxPerson -- Part 1 -- Core utilities --==================================================  local html = mw.html   ---------------------------------------------------- -- NORMALIZE ----------------------------------------------------  local function normalize(value)  	if value == nil then 		return nil 	end  	value = tostring(value)  	value = mw.text.trim(v...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://wikialborz.com/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:InfoboxPerson&amp;diff=10704&amp;oldid=prev"/>
		<updated>2026-07-12T13:08:47Z</updated>

		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «local p = {}  --================================================== -- Module:InfoboxPerson -- Part 1 -- Core utilities --==================================================  local html = mw.html   ---------------------------------------------------- -- NORMALIZE ----------------------------------------------------  local function normalize(value)  	if value == nil then 		return nil 	end  	value = tostring(value)  	value = mw.text.trim(v...» ایجاد کرد&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;
-- Module:InfoboxPerson&lt;br /&gt;
-- Part 1&lt;br /&gt;
-- Core utilities&lt;br /&gt;
--==================================================&lt;br /&gt;
&lt;br /&gt;
local html = mw.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- NORMALIZE&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function normalize(value)&lt;br /&gt;
&lt;br /&gt;
	if value == nil then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	value = tostring(value)&lt;br /&gt;
&lt;br /&gt;
	value = mw.text.trim(value)&lt;br /&gt;
&lt;br /&gt;
	if value == &amp;quot;&amp;quot; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	-- حذف نیم‌فاصله و کاراکترهای نامرئی&lt;br /&gt;
	value = mw.ustring.gsub(&lt;br /&gt;
		value,&lt;br /&gt;
		&amp;quot;[\u200C\u200D\uFEFF]&amp;quot;,&lt;br /&gt;
		&amp;quot;&amp;quot;&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	return value&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- ARGUMENT COLLECTION&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function collectArgs(frame)&lt;br /&gt;
&lt;br /&gt;
	local args = {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local function read(tbl)&lt;br /&gt;
&lt;br /&gt;
		if not tbl then&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		for key, value in pairs(tbl) do&lt;br /&gt;
&lt;br /&gt;
			local k = normalize(key)&lt;br /&gt;
			local v = normalize(value)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			if k and v then&lt;br /&gt;
				args[k] = v&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local parent = frame:getParent()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if parent then&lt;br /&gt;
		read(parent.args)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	read(frame.args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	return args&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- ARG ALIASES&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local aliases = {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	name = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;نام&amp;quot;,&lt;br /&gt;
		&amp;quot;نام بازیکن&amp;quot;,&lt;br /&gt;
		&amp;quot;name&amp;quot;,&lt;br /&gt;
		&amp;quot;playername&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	image = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;تصویر&amp;quot;,&lt;br /&gt;
		&amp;quot;پرونده&amp;quot;,&lt;br /&gt;
		&amp;quot;image&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	caption = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;توضیح تصویر&amp;quot;,&lt;br /&gt;
		&amp;quot;زیرنویس&amp;quot;,&lt;br /&gt;
		&amp;quot;caption&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	fullname = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;نام کامل&amp;quot;,&lt;br /&gt;
		&amp;quot;نام اصلی&amp;quot;,&lt;br /&gt;
		&amp;quot;full_name&amp;quot;,&lt;br /&gt;
		&amp;quot;fullname&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	birth_date = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;زادروز&amp;quot;,&lt;br /&gt;
		&amp;quot;تاریخ تولد&amp;quot;,&lt;br /&gt;
		&amp;quot;birth_date&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	birth_place = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;زادگاه&amp;quot;,&lt;br /&gt;
		&amp;quot;محل تولد&amp;quot;,&lt;br /&gt;
		&amp;quot;birth_place&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	death_date = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;درگذشته&amp;quot;,&lt;br /&gt;
		&amp;quot;تاریخ درگذشت&amp;quot;,&lt;br /&gt;
		&amp;quot;death_date&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	nationality = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;ملیت&amp;quot;,&lt;br /&gt;
		&amp;quot;nationality&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	height = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;قد&amp;quot;,&lt;br /&gt;
		&amp;quot;height&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	weight = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;وزن&amp;quot;,&lt;br /&gt;
		&amp;quot;weight&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	sport = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;ورزش&amp;quot;,&lt;br /&gt;
		&amp;quot;sport&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	club = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;باشگاه&amp;quot;,&lt;br /&gt;
		&amp;quot;club&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	team = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;تیم&amp;quot;,&lt;br /&gt;
		&amp;quot;تیم ملی&amp;quot;,&lt;br /&gt;
		&amp;quot;team&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	coach = {&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;مربی&amp;quot;,&lt;br /&gt;
		&amp;quot;سرمربی&amp;quot;,&lt;br /&gt;
		&amp;quot;coach&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
--==================================================&lt;br /&gt;
-- RESOLVE ALIASES&lt;br /&gt;
--==================================================&lt;br /&gt;
&lt;br /&gt;
local function resolveArgs(args)&lt;br /&gt;
&lt;br /&gt;
	local result = {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	for key, list in pairs(aliases) do&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		for i = 1, #list do&lt;br /&gt;
&lt;br /&gt;
			local value = args[list[i]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			if value then&lt;br /&gt;
&lt;br /&gt;
				result[key] = value&lt;br /&gt;
				break&lt;br /&gt;
&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- VALUE CHECK&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function hasValue(value)&lt;br /&gt;
&lt;br /&gt;
	return normalize(value) ~= nil&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- CREATE INFOBOX&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function createBox()&lt;br /&gt;
&lt;br /&gt;
	local box = html.create(&amp;quot;table&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	box&lt;br /&gt;
		:addClass(&amp;quot;infobox&amp;quot;)&lt;br /&gt;
		:addClass(&amp;quot;person-infobox&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	return box&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- ADD TITLE&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function addTitle(box, args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local title = args.name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if not title then&lt;br /&gt;
&lt;br /&gt;
		title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local row = box:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	row&lt;br /&gt;
		:tag(&amp;quot;th&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;colspan&amp;quot;, &amp;quot;2&amp;quot;)&lt;br /&gt;
		:css({&lt;br /&gt;
&lt;br /&gt;
			[&amp;quot;background-color&amp;quot;] = &amp;quot;#2C5F9E&amp;quot;,&lt;br /&gt;
			color = &amp;quot;#FFFFFF&amp;quot;,&lt;br /&gt;
			[&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;,&lt;br /&gt;
			[&amp;quot;font-size&amp;quot;] = &amp;quot;120%&amp;quot;,&lt;br /&gt;
			padding = &amp;quot;8px&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		})&lt;br /&gt;
		:wikitext(title)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- ADD IMAGE&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function addImage(box, args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if not hasValue(args.image) then&lt;br /&gt;
&lt;br /&gt;
		return&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local row = box:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	row&lt;br /&gt;
		:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;colspan&amp;quot;, &amp;quot;2&amp;quot;)&lt;br /&gt;
		:css({&lt;br /&gt;
&lt;br /&gt;
			[&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;,&lt;br /&gt;
			padding = &amp;quot;5px&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		})&lt;br /&gt;
		:wikitext(&lt;br /&gt;
&lt;br /&gt;
			&amp;quot;[[File:&amp;quot; &lt;br /&gt;
			.. args.image &lt;br /&gt;
			.. &amp;quot;|250px]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if hasValue(args.caption) then&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		local caption = box:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		caption&lt;br /&gt;
			:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
			:attr(&amp;quot;colspan&amp;quot;, &amp;quot;2&amp;quot;)&lt;br /&gt;
			:css({&lt;br /&gt;
&lt;br /&gt;
				[&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;,&lt;br /&gt;
				[&amp;quot;font-size&amp;quot;] = &amp;quot;90%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
			})&lt;br /&gt;
			:wikitext(args.caption)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- ADD HEADER&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function addHeader(box, text)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local row = box:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	row&lt;br /&gt;
		:tag(&amp;quot;th&amp;quot;)&lt;br /&gt;
		:attr(&amp;quot;colspan&amp;quot;, &amp;quot;2&amp;quot;)&lt;br /&gt;
		:css({&lt;br /&gt;
&lt;br /&gt;
			[&amp;quot;background-color&amp;quot;] = &amp;quot;#2C5F9E&amp;quot;,&lt;br /&gt;
			color = &amp;quot;#FFFFFF&amp;quot;,&lt;br /&gt;
			[&amp;quot;text-align&amp;quot;] = &amp;quot;center&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		})&lt;br /&gt;
		:wikitext(text)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
-- ADD ROW&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function addRow(box, label, value)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if not hasValue(value) then&lt;br /&gt;
&lt;br /&gt;
		return false&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local row = box:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	row&lt;br /&gt;
		:tag(&amp;quot;th&amp;quot;)&lt;br /&gt;
		:wikitext(label)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	row&lt;br /&gt;
		:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
		:wikitext(value)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	return true&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
--==================================================&lt;br /&gt;
-- PERSONAL SECTION&lt;br /&gt;
--==================================================&lt;br /&gt;
&lt;br /&gt;
local function addPersonal(box, args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local hasData = false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if hasValue(args.fullname)&lt;br /&gt;
	or hasValue(args.birth_date)&lt;br /&gt;
	or hasValue(args.birth_place)&lt;br /&gt;
	or hasValue(args.death_date)&lt;br /&gt;
	or hasValue(args.nationality)&lt;br /&gt;
	or hasValue(args.height)&lt;br /&gt;
	or hasValue(args.weight) then&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		hasData = true&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if not hasData then&lt;br /&gt;
&lt;br /&gt;
		return&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addHeader(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;اطلاعات شخصی&amp;quot;&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;نام کامل&amp;quot;,&lt;br /&gt;
		args.fullname&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;زاده&amp;quot;,&lt;br /&gt;
		args.birth_date&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;زادگاه&amp;quot;,&lt;br /&gt;
		args.birth_place&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;درگذشته&amp;quot;,&lt;br /&gt;
		args.death_date&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;ملیت&amp;quot;,&lt;br /&gt;
		args.nationality&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;قد&amp;quot;,&lt;br /&gt;
		args.height&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;وزن&amp;quot;,&lt;br /&gt;
		args.weight&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--==================================================&lt;br /&gt;
-- SPORT SECTION&lt;br /&gt;
--==================================================&lt;br /&gt;
&lt;br /&gt;
local function addSport(box, args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local hasData = false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if hasValue(args.sport)&lt;br /&gt;
	or hasValue(args.club)&lt;br /&gt;
	or hasValue(args.team)&lt;br /&gt;
	or hasValue(args.coach) then&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		hasData = true&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if not hasData then&lt;br /&gt;
&lt;br /&gt;
		return&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addHeader(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;اطلاعات ورزشی&amp;quot;&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;ورزش&amp;quot;,&lt;br /&gt;
		args.sport&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;باشگاه&amp;quot;,&lt;br /&gt;
		args.club&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;تیم&amp;quot;,&lt;br /&gt;
		args.team&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addRow(&lt;br /&gt;
		box,&lt;br /&gt;
		&amp;quot;مربی&amp;quot;,&lt;br /&gt;
		args.coach&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--==================================================&lt;br /&gt;
-- RENDER&lt;br /&gt;
--==================================================&lt;br /&gt;
&lt;br /&gt;
local function render(args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local box = createBox()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addTitle(&lt;br /&gt;
		box,&lt;br /&gt;
		args&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addImage(&lt;br /&gt;
		box,&lt;br /&gt;
		args&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addPersonal(&lt;br /&gt;
		box,&lt;br /&gt;
		args&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	addSport(&lt;br /&gt;
		box,&lt;br /&gt;
		args&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	return tostring(box)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--==================================================&lt;br /&gt;
-- ENTRY POINT&lt;br /&gt;
--==================================================&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local rawArgs = collectArgs(frame)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local args = resolveArgs(rawArgs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	return render(args)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Modir</name></author>
	</entry>
</feed>