<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://wikiar.org/wiki/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3A%D8%A8%D8%B7%D8%A7%D9%82%D8%A9</id>
	<title>وحدة:بطاقة - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://wikiar.org/wiki/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3A%D8%A8%D8%B7%D8%A7%D9%82%D8%A9"/>
	<link rel="alternate" type="text/html" href="https://wikiar.org/wiki/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:%D8%A8%D8%B7%D8%A7%D9%82%D8%A9&amp;action=history"/>
	<updated>2026-06-23T17:49:24Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wikiar.org/wiki/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:%D8%A8%D8%B7%D8%A7%D9%82%D8%A9&amp;diff=1134&amp;oldid=prev</id>
		<title>مسؤول ويكي عرب: مراجعة واحدة</title>
		<link rel="alternate" type="text/html" href="https://wikiar.org/wiki/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:%D8%A8%D8%B7%D8%A7%D9%82%D8%A9&amp;diff=1134&amp;oldid=prev"/>
		<updated>2021-12-18T20:02:31Z</updated>

		<summary type="html">&lt;p&gt;مراجعة واحدة&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ar&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;→ مراجعة أقدم&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;مراجعة ٢٠:٠٢، ١٨ ديسمبر ٢٠٢١&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ar&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(لا فرق)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>مسؤول ويكي عرب</name></author>
	</entry>
	<entry>
		<id>https://wikiar.org/wiki/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:%D8%A8%D8%B7%D8%A7%D9%82%D8%A9&amp;diff=1133&amp;oldid=prev</id>
		<title>ar&gt;وهراني: مراجعة كود عرض الصور</title>
		<link rel="alternate" type="text/html" href="https://wikiar.org/wiki/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:%D8%A8%D8%B7%D8%A7%D9%82%D8%A9&amp;diff=1133&amp;oldid=prev"/>
		<updated>2021-11-20T13:58:10Z</updated>

		<summary type="html">&lt;p&gt;مراجعة كود عرض الصور&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Credits:&lt;br /&gt;
-- Original from fr:Module:Infobox&lt;br /&gt;
-- Adapted &amp;amp; Developed for Arabic Wikipedia by وهراني @arwiki&lt;br /&gt;
-- Version: 20210831&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local wikiLang = &amp;#039;ar&amp;#039; -- اللغة&lt;br /&gt;
&lt;br /&gt;
local item = nil -- عنصر مرتبط بويكي بيانات&lt;br /&gt;
local localdata = {}-- بيانات مضمنة في القالب&lt;br /&gt;
&lt;br /&gt;
local page = { -- بيانات حول الصفحة التي ستعرض عليها البطاقة &lt;br /&gt;
	name = mw.title.getCurrentTitle().prefixedText,&lt;br /&gt;
	namespace =  mw.title.getCurrentTitle().namespace&lt;br /&gt;
}&lt;br /&gt;
local maincolor, secondcolor, thirdcolor = &amp;#039;#E1E1E1&amp;#039;, &amp;#039;#E1E1E1&amp;#039;, &amp;#039;#000000&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- نتائج ثانوية&lt;br /&gt;
local maintenance = &amp;#039;&amp;#039; -- نص مضاف للنتيجة يستعمل لإدراج التصنيفات عادة&lt;br /&gt;
local externaltext = &amp;#039;&amp;#039; -- نص مضاف عام يستعمل لعرض إضافات مثل القوالب خارج قالب المعلومات&lt;br /&gt;
&lt;br /&gt;
-- وحدات مستعملة&lt;br /&gt;
&lt;br /&gt;
local i18n = {&lt;br /&gt;
	[&amp;#039;see doc&amp;#039;] = &amp;#039;حول القالب&amp;#039;,&lt;br /&gt;
	[&amp;#039;edit&amp;#039;] = &amp;#039;تعديل&amp;#039;,&lt;br /&gt;
	[&amp;#039;edit code&amp;#039;] = &amp;#039;تعديل مصدري&amp;#039;,&lt;br /&gt;
	[&amp;#039;edit item&amp;#039;] = &amp;#039;تعديل ويكي بيانات&amp;#039;,&lt;br /&gt;
	[&amp;#039;tracking cat&amp;#039;] = &amp;quot;صفحات بها بيانات ويكي بيانات&amp;quot;,&lt;br /&gt;
	[&amp;#039;invalid block type&amp;#039;] = &amp;quot;لبنة بيانات غير صحيحة في القالب&amp;quot;, &lt;br /&gt;
	[&amp;#039;default cat&amp;#039;] = &amp;quot;صيانة بطاقات&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function addWikidataCat(prop)&lt;br /&gt;
	if type(prop) == &amp;#039;table&amp;#039; then prop = prop[1] end&lt;br /&gt;
	if page.namespace == 0 then&lt;br /&gt;
	maintenance = maintenance .. &amp;#039;[[تصنيف:صفحات_تستخدم_خاصية_&amp;#039; .. prop .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addMaintenanceCat(cat, sortkey)&lt;br /&gt;
	if page.namespace ~= 0 then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if cat then&lt;br /&gt;
		maintenance = maintenance .. &amp;#039;[[Category:&amp;#039; .. cat .. &amp;#039;|&amp;#039; .. (sortkey or page.name) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function expandQuery(query)&lt;br /&gt;
	local value, number -- نتيجة ، عدد النتائج للضبط الصرفي للعنوان&lt;br /&gt;
&lt;br /&gt;
	if(type(query) ~= &amp;#039;table&amp;#039;) then return nil end&lt;br /&gt;
-- الوحدات المستعملة&lt;br /&gt;
	local wikimod = query.wikimod or localdata.wikimod or &amp;#039;Wikidata2&amp;#039; --&amp;#039;Wikidata/fr&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	local wdexpandQuery = require(&amp;quot;وحدة:بطاقة/ويكي.بيانات&amp;quot;).expandQuery&lt;br /&gt;
	&lt;br /&gt;
	local noerr,data, nb&lt;br /&gt;
	noerr,data, nb = pcall(wdexpandQuery,localdata.item ,wikimod,query)	&lt;br /&gt;
	if noerr &lt;br /&gt;
		then return data, nb &lt;br /&gt;
		else &lt;br /&gt;
			addMaintenanceCat(&amp;#039;مقالات بها أخطاء مصدرها وحدة بطاقة&amp;#039;)&lt;br /&gt;
			mw.log(&amp;quot;WD Query Error : &amp;quot;..mw.dumpObject(data))&lt;br /&gt;
			return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;#039; .. (data) .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039; &lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getWikidataValue(params, wikidataparam)&lt;br /&gt;
	if not localdata.item then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if params.blockers then -- blockers are local parameters that disable the wikidata query&lt;br /&gt;
		local blockers = params.blockers&lt;br /&gt;
		if (type(blockers) == &amp;#039;string&amp;#039;) then&lt;br /&gt;
			blockers = {blockers}&lt;br /&gt;
		end&lt;br /&gt;
		for i, blocker in ipairs(blockers) do&lt;br /&gt;
			if localdata[blocker] then&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local v, valnum -- قيم النتائج وعددها (لعرض مناسب في حالة الجمع)&lt;br /&gt;
	&lt;br /&gt;
	if not wikidataparam then -- par défaut la valeur wikidata est dans le paramètre &amp;quot;wikidata&amp;quot; mais dans les structures composées comme &amp;quot;title&amp;quot;, il y a plusieurs paramètres wikidata&lt;br /&gt;
		wikidataparam = &amp;#039;wikidata&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if params[wikidataparam] then&lt;br /&gt;
		if type(params[wikidataparam]) == &amp;#039;function&amp;#039; then&lt;br /&gt;
			v, valnum = params[wikidataparam](localdata.item)&lt;br /&gt;
		elseif type(params[wikidataparam]) == &amp;#039;table&amp;#039; then&lt;br /&gt;
			v, valnum = expandQuery(params[wikidataparam])&lt;br /&gt;
		else&lt;br /&gt;
			v, valnum = params[wikidataparam]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if not v or valnum==0 then &lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	--v = linguistic.ucfirst(v)&lt;br /&gt;
	return v, valnum&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getValue(val, params)&lt;br /&gt;
	if type(val) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		return localdata[val]&lt;br /&gt;
	elseif type(val) == &amp;#039;function&amp;#039; then&lt;br /&gt;
		return val(localdata, localdata.item, params)&lt;br /&gt;
	elseif type(val) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		for i, j in pairs(val) do -- في حال وجود قيم لأكثر من وسيط : أخذ بعين الاعتبار أول قيمة&lt;br /&gt;
			if localdata[j] then&lt;br /&gt;
				return localdata[j]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.separator(params)&lt;br /&gt;
	local style = params[&amp;#039;separator style&amp;#039;] or {}&lt;br /&gt;
	style.height = style.height or &amp;#039;2px&amp;#039;&lt;br /&gt;
	style[&amp;#039;background-color&amp;#039;] = style[&amp;#039;background-color&amp;#039;] or maincolor&lt;br /&gt;
	&lt;br /&gt;
	return mw.html.create(&amp;#039;hr&amp;#039;):css( style )	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
تحضير لبنة العنوان في البطاقة&lt;br /&gt;
&lt;br /&gt;
البيانات:قائمة جزئية) :&lt;br /&gt;
- value : Moyen d&amp;#039;obtenir le titre via getValue (nom de paramètre de modèle ou fonction).&lt;br /&gt;
- textdefaultvalue : النص الافتراضي للعنوان.&lt;br /&gt;
- icon : Pictogramme d&amp;#039;infobox (voir [[Projet:Infobox/Pictogramme]]).&lt;br /&gt;
]=]&lt;br /&gt;
function p.buildtitle(params)&lt;br /&gt;
	local text = getValue(params.value, params) or params.textdefaultvalue or  getWikidataValue(params) or mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
	local subtext = getValue(params.subtitle) or  getWikidataValue(params, &amp;#039;wikidatasubtitle&amp;#039;) or params.subtitledefaultvalue&lt;br /&gt;
	if subtext and (subtext ~= text) then&lt;br /&gt;
		text = text .. &amp;#039;&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;&amp;#039; .. subtext .. &amp;#039;&amp;lt;/small&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local class = &amp;#039;entete &amp;#039; .. (params.icon or &amp;#039;&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	-- overwrites with those provided in the module&lt;br /&gt;
	local style = {}&lt;br /&gt;
	style[&amp;#039;background-color&amp;#039;] = maincolor&lt;br /&gt;
	style[&amp;#039;color&amp;#039;] = thirdcolor&lt;br /&gt;
	if params.style then&lt;br /&gt;
		for i, j in pairs(params.style) do&lt;br /&gt;
			style[i] = j&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local title = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(class)&lt;br /&gt;
		:css(style)&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:wikitext(text)&lt;br /&gt;
		:allDone()&lt;br /&gt;
	return title&lt;br /&gt;
end&lt;br /&gt;
p.buildTitle = p.buildtitle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.buildimages(params)&lt;br /&gt;
    local function getwdImage(Q, property)&lt;br /&gt;
&lt;br /&gt;
        property = property &lt;br /&gt;
        local QID&lt;br /&gt;
&lt;br /&gt;
        if type(Q) == &amp;#039;table&amp;#039; and Q.id and Q.id ~= &amp;#039;-&amp;#039; &lt;br /&gt;
            then QID = Q.id&lt;br /&gt;
            else return&lt;br /&gt;
        end	&lt;br /&gt;
&lt;br /&gt;
        local wdata &lt;br /&gt;
&lt;br /&gt;
        if (type(property) == &amp;#039;string&amp;#039;) &lt;br /&gt;
            then wdata = mw.wikibase.getBestStatements(QID, property) &lt;br /&gt;
            elseif(type(property) == &amp;#039;table&amp;#039;)&lt;br /&gt;
            then for _,prop in ipairs(property) do&lt;br /&gt;
                    wdata = mw.wikibase.getBestStatements(QID,prop)&lt;br /&gt;
                    if(wdata) then break end&lt;br /&gt;
                end&lt;br /&gt;
            else return&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local first&lt;br /&gt;
&lt;br /&gt;
        for _, image in pairs(wdata) do&lt;br /&gt;
            if image.mainsnak.snaktype == &amp;#039;value&amp;#039; then&lt;br /&gt;
                if not first then&lt;br /&gt;
                    first = image.mainsnak.datavalue.value&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                local q = image.qualifiers&lt;br /&gt;
                if q and q.P2096 then&lt;br /&gt;
                    for _, caption in pairs(q.P2096) do -- P2096 is &amp;#039;caption&amp;#039;&lt;br /&gt;
                        if caption.snaktype == &amp;#039;value&amp;#039; and caption.datavalue.value.language == wikiLang then&lt;br /&gt;
                            return image.mainsnak.datavalue.value, caption.datavalue.value.text&lt;br /&gt;
                        end&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return first,&amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	local images = {}&lt;br /&gt;
&lt;br /&gt;
	local upright, link, caption, captionfromwd, alt, size  -- size is deprecated&lt;br /&gt;
&lt;br /&gt;
	if type(params.imageparameters) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		params.imageparameters = {params.imageparameters}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not params.imageparameters then -- في حالة غياب أي مدخل لصورة&lt;br /&gt;
		params.imageparameters = {}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for j, k in ipairs(params.imageparameters) do&lt;br /&gt;
		table.insert(images, localdata[k])&lt;br /&gt;
	end&lt;br /&gt;
    &lt;br /&gt;
	-- Images from Wikidata &lt;br /&gt;
	if #images == 0 and localdata.item then&lt;br /&gt;
		if params.property then&lt;br /&gt;
			params.wikidata = {entity = localdata.item, property = params.property}&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if params.wikidata then&lt;br /&gt;
			local wdq = params.wikidata&lt;br /&gt;
			if type(params.wikidata.property) == &amp;#039;table&amp;#039; then  params.wikidata.property = mw.text.listToText(params.wikidata.property, &amp;#039;**&amp;#039;, &amp;#039;**&amp;#039;) end&lt;br /&gt;
			&lt;br /&gt;
			if type(wdq) == &amp;#039;table&amp;#039; then&lt;br /&gt;
				for p in string.gmatch(params.wikidata.property, &amp;#039;P%d+&amp;#039;) do				&lt;br /&gt;
					images,captionfromwd = getwdImage(localdata.item, p)&lt;br /&gt;
					if images then&lt;br /&gt;
						params.wikidata.property = p&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end				&lt;br /&gt;
&lt;br /&gt;
				if captionfromwd then&lt;br /&gt;
					addMaintenanceCat(&amp;quot;صفحات تستخدم خاصية P2096&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
				if images then&lt;br /&gt;
					addWikidataCat(params.wikidata.property)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if type(wdq) == &amp;#039;function&amp;#039; then&lt;br /&gt;
				images = params.wikidata()&lt;br /&gt;
				if type(images) == &amp;#039;string&amp;#039; then&lt;br /&gt;
					return images&lt;br /&gt;
				end &lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if type(images) == &amp;#039;string&amp;#039; then&lt;br /&gt;
				images = {images}&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if (not images) then&lt;br /&gt;
				images = {}&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- استعمال صور افتراضبة في حال عرفت&lt;br /&gt;
	if #images == 0 then&lt;br /&gt;
		if params.maintenancecat then&lt;br /&gt;
			addMaintenanceCat(params.maintenancecat, params.sortkey)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if params.defaultimages then&lt;br /&gt;
			images = params.defaultimages&lt;br /&gt;
			if type(images) == &amp;#039;string&amp;#039; then&lt;br /&gt;
				images = {images}&lt;br /&gt;
			end&lt;br /&gt;
			upright = params.defaultimageupright&lt;br /&gt;
			caption = params.defaultimagecaption&lt;br /&gt;
			link = params.defaultimagelink&lt;br /&gt;
			alt = params.defaultimagealt&lt;br /&gt;
			if not alt and ( images[1] == &amp;#039;DefautAr.svg&amp;#039; or images[1] == &amp;#039;Defaut 2.svg&amp;#039; ) then&lt;br /&gt;
				alt = &amp;#039;نحتاج صورة تكون من الأفضل حرة&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if #images == 0 then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	upright = upright or getValue(params.uprightparameter) or params.defaultupright or &amp;quot;1.2&amp;quot;&lt;br /&gt;
	link = link or getValue(params.linkparameter) or params.defaultlink&lt;br /&gt;
	caption = captionfromwd or caption or getValue(params.captionparameter) or params.defaultcaption &lt;br /&gt;
	alt = alt or getValue( params.altparameter) or params.defaultalt&lt;br /&gt;
&lt;br /&gt;
	size = size or getValue(params.sizeparameter) or params.defaultsize&lt;br /&gt;
&lt;br /&gt;
	if size then&lt;br /&gt;
		local numsize = size:gsub(&amp;#039;px&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		numsize = size:gsub(&amp;#039;بك&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		numsize = mw.ustring.gsub(numsize, &amp;#039;x.*&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		numsize = tonumber(numsize)&lt;br /&gt;
&lt;br /&gt;
		if type(numsize) ~= &amp;#039;number&amp;#039; or numsize &amp;gt; 280 then&lt;br /&gt;
			addMaintenanceCat(&amp;quot;مقالات تسيء استعمال حجم الصورة&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if tonumber(size) then&lt;br /&gt;
			size = size .. &amp;#039;px&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		size = &amp;#039;|&amp;#039; .. size&lt;br /&gt;
	else&lt;br /&gt;
		size = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if tonumber(upright) then&lt;br /&gt;
		upright = tostring(tonumber(upright) ) / #images&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if tonumber(size) then&lt;br /&gt;
		size = tostring(tonumber(size) ) / #images&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local style = params.style or {padding =&amp;#039;2px 0&amp;#039;,}&lt;br /&gt;
&lt;br /&gt;
	-- تحضير عرض الصورة&lt;br /&gt;
	local imagesString = &amp;#039;&amp;#039;&lt;br /&gt;
	for i,image in pairs(images) do&lt;br /&gt;
		if image == &amp;#039;-&amp;#039; then&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		image = string.match(image, &amp;#039;[^:]*:([^|%]]*)&amp;#039;) or image&lt;br /&gt;
		imagesString = imagesString ..  &amp;#039;[[file:&amp;#039; .. image .. size .. &amp;#039;|frameless&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		-- [[&lt;br /&gt;
		if alt then&lt;br /&gt;
			imagesString = imagesString .. &amp;#039;|alt=&amp;#039; .. alt&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if link then&lt;br /&gt;
			imagesString = imagesString .. &amp;#039;|link=&amp;#039; .. link&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if upright then&lt;br /&gt;
			imagesString = imagesString .. &amp;#039;|upright=&amp;#039; .. upright&lt;br /&gt;
		elseif #images &amp;gt; 1 then&lt;br /&gt;
			imagesString = imagesString .. &amp;#039;|upright=&amp;#039; .. ( 1 / #images )&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		imagesString = imagesString .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local image = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(&amp;quot;images&amp;quot;)&lt;br /&gt;
		:css(style)&lt;br /&gt;
		:wikitext(imagesString)&lt;br /&gt;
		:done()&lt;br /&gt;
&lt;br /&gt;
	-- التعليق&lt;br /&gt;
	local captionobj&lt;br /&gt;
	if caption then&lt;br /&gt;
		captionobj = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:wikitext(caption)&lt;br /&gt;
			:css(params.legendstyle or {})&lt;br /&gt;
			:addClass(&amp;quot;legend&amp;quot;)&lt;br /&gt;
			:done()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- الفاصل&lt;br /&gt;
	local separator&lt;br /&gt;
	if params.separator then&lt;br /&gt;
		separator = separator(params)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local imgout&lt;br /&gt;
	if params.inner then -- في حالة التواجد داخل الجدول&lt;br /&gt;
		imgout = mw.html.create(&amp;#039;tr&amp;#039;):tag(&amp;#039;th&amp;#039;):attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
	else&lt;br /&gt;
		imgout = mw.html.create(&amp;#039;div&amp;#039;):css({	border=&amp;quot;unset&amp;quot;,padding=&amp;quot;unset&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return imgout&lt;br /&gt;
		:node(image)&lt;br /&gt;
		:node(captionobj)&lt;br /&gt;
		:node(separator)&lt;br /&gt;
		:done()&lt;br /&gt;
end&lt;br /&gt;
p.buildImages = p.buildimages&lt;br /&gt;
&lt;br /&gt;
function p.buildtext(params)&lt;br /&gt;
	local class = params.class or &amp;#039;&amp;#039;&lt;br /&gt;
	local style = {&lt;br /&gt;
		[&amp;#039;text-align&amp;#039;] = &amp;#039;center&amp;#039;,&lt;br /&gt;
		[&amp;#039;font-weight&amp;#039;] = &amp;#039;bold&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	if params.style then&lt;br /&gt;
		for i, j in pairs(params.style) do&lt;br /&gt;
			style[i] = j&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local text = getValue(params.value, params) or getWikidataValue(params) or params.defaultvalue&lt;br /&gt;
	if text == &amp;#039;-&amp;#039; then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	if not text then&lt;br /&gt;
		addMaintenanceCat(params.maintenancecat, params.sortkey)&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local formattedtext = mw.html.create(&amp;#039;p&amp;#039;)&lt;br /&gt;
		:addClass(class)&lt;br /&gt;
		:css(style)&lt;br /&gt;
		:wikitext(text)&lt;br /&gt;
		:done()&lt;br /&gt;
	return formattedtext&lt;br /&gt;
end&lt;br /&gt;
p.buildText = p.buildtext&lt;br /&gt;
&lt;br /&gt;
function p.buildrow(params)&lt;br /&gt;
	local class = params.class or &amp;#039;&amp;#039;&lt;br /&gt;
	local style = params.style or {}&lt;br /&gt;
	local valueClass = params.valueClass or &amp;#039;&amp;#039;&lt;br /&gt;
	local valueStyle = params.valueStyle or {}&lt;br /&gt;
	local value, number =  getValue(params.value, params)&lt;br /&gt;
&lt;br /&gt;
	if (not value) then&lt;br /&gt;
		value, number =  getWikidataValue(params, &amp;#039;wikidata&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if (not value) and (params.property) then&lt;br /&gt;
		value, number = expandQuery{ property = params.property } --, ucfirst = params.ucfirst&lt;br /&gt;
	end&lt;br /&gt;
	if not value then&lt;br /&gt;
		value = params.defaultvalue&lt;br /&gt;
	end&lt;br /&gt;
	if value == &amp;#039;-&amp;#039; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if not number then&lt;br /&gt;
		number = 0 -- == indéfini&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not value then&lt;br /&gt;
		if params.maintenancecat then&lt;br /&gt;
			local maintenancecat = getValue(params.maintenancecat, params)&lt;br /&gt;
			addMaintenanceCat(maintenancecat, params.sortkey)&lt;br /&gt;
		end&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local label = params.label&lt;br /&gt;
&lt;br /&gt;
	if type(label) == &amp;#039;table&amp;#039; then label= getValue(params.label, params) end &lt;br /&gt;
	&lt;br /&gt;
	if number &amp;gt; 1 and (params.plurallabel) then&lt;br /&gt;
		label = params.plurallabel&lt;br /&gt;
	elseif number == 1 and (params.singularlabel) then&lt;br /&gt;
		label = params.singularlabel&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if number &amp;gt; 4 then   --- اخفاء النتيجة في حال تجاوز عددها 4&lt;br /&gt;
		params.hidden = true&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if type(label) == &amp;#039;function&amp;#039; then&lt;br /&gt;
			label = label(localdata, localdata.item)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- format&lt;br /&gt;
	local formattedvalue = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:wikitext(&amp;#039;\n&amp;#039; .. value) -- رمز &amp;#039;\n&amp;#039; مطلوب عندما تكون value قائمة تبدأ بـ &amp;#039;*&amp;#039; ou &amp;#039;#&amp;#039;&lt;br /&gt;
		&lt;br /&gt;
	if (params.hidden == true)then&lt;br /&gt;
		local divNavHead = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:attr({class=&amp;quot;nomobile&amp;quot;, style=&amp;quot;text-align:right;border: none; padding: 0; background:none; font-size: 75%;&amp;quot;})	&lt;br /&gt;
			:wikitext(&amp;quot;&amp;amp;nbsp;[[file:Incomplete list.svg|20x20px|link=]] القائمة ...&amp;quot;) --[عرض]/[إخفاء]&lt;br /&gt;
        formattedvalue&lt;br /&gt;
			:addClass(&amp;#039;mw-collapsible-content&amp;#039;)&lt;br /&gt;
        divNavHead = mw.html.create(&amp;#039;div&amp;#039;):node(divNavHead)&lt;br /&gt;
&lt;br /&gt;
		formattedvalue = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:attr({class=&amp;quot;mw-collapsible mw-collapsed &amp;quot;, style=&amp;quot;border: none; padding: 0;&amp;quot;})&lt;br /&gt;
			:node(divNavHead)&lt;br /&gt;
			:node(formattedvalue)&lt;br /&gt;
	end&lt;br /&gt;
	formattedvalue =  mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:node(formattedvalue)&lt;br /&gt;
			:addClass(valueClass)&lt;br /&gt;
			:css(valueStyle)&lt;br /&gt;
			:allDone()&lt;br /&gt;
	&lt;br /&gt;
	local formattedlabel&lt;br /&gt;
	if label then&lt;br /&gt;
		formattedlabel = mw.html.create(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:attr(&amp;#039;scope&amp;#039;, &amp;#039;row&amp;#039;)&lt;br /&gt;
			:wikitext(label)&lt;br /&gt;
			:done()&lt;br /&gt;
	end&lt;br /&gt;
	local row = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		:addClass(class)&lt;br /&gt;
		:css(style)&lt;br /&gt;
		:node(formattedlabel)&lt;br /&gt;
		:node(formattedvalue)&lt;br /&gt;
		:done()&lt;br /&gt;
	&lt;br /&gt;
	return row&lt;br /&gt;
end&lt;br /&gt;
p.buildRow = p.buildrow&lt;br /&gt;
&lt;br /&gt;
function p.buildnavbox(params)&lt;br /&gt;
	&lt;br /&gt;
	-- définition du style&lt;br /&gt;
	local class = &amp;quot;overflow nav &amp;quot; .. (params.class or &amp;#039;&amp;#039;)&lt;br /&gt;
	local style = params.style or {}&lt;br /&gt;
&lt;br /&gt;
	if params.separated then -- خيار إضافة فاصل مسبق&lt;br /&gt;
		class = class .. &amp;#039; bordered&amp;#039;&lt;br /&gt;
		style[&amp;#039;border-top&amp;#039;] = &amp;#039;1px solid&amp;#039; .. maincolor&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- ترتيب البيانات&lt;br /&gt;
	params.previousval = params.previousval or params.previousparameter &lt;br /&gt;
	params.nextval = params.nextval or params.nextparameter&lt;br /&gt;
	&lt;br /&gt;
	if params.previousproperty then&lt;br /&gt;
		params.previouswikidata = {property = params.previousproperty, conjtype=&amp;#039;&amp;lt;br /&amp;gt;&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
	if params.nextproperty then&lt;br /&gt;
		params.nextwikidata = {property = params.nextproperty, conjtype=&amp;#039;&amp;lt;br /&amp;gt;&amp;#039;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local previousval = getValue(params.previousval, params) or getWikidataValue(params, &amp;#039;previouswikidata&amp;#039;)&lt;br /&gt;
	local nextval = getValue(params.nextval, params) or getWikidataValue(params, &amp;#039;nextwikidata&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	local navbox&lt;br /&gt;
	if params.inner then -- في حالة التواجد داخل الجدول&lt;br /&gt;
		navbox = mw.html.create(&amp;#039;tr&amp;#039;):tag(&amp;#039;th&amp;#039;):attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
		style[&amp;#039;font-weight&amp;#039;] = style[&amp;#039;font-weight&amp;#039;] or &amp;#039;normal&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		navbox = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local prevNode, nextNode&lt;br /&gt;
	if previousval then&lt;br /&gt;
		prevNode = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;prev_bloc&amp;#039;)&lt;br /&gt;
				:wikitext(previousval)&lt;br /&gt;
				:done()		&lt;br /&gt;
	end&lt;br /&gt;
	if nextval then&lt;br /&gt;
		nextNode = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;next_bloc&amp;#039;)&lt;br /&gt;
				:wikitext(nextval)&lt;br /&gt;
				:done()	&lt;br /&gt;
	end&lt;br /&gt;
	if previousval or nextval then&lt;br /&gt;
		navbox&lt;br /&gt;
			:addClass(class)&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:node(prevNode)&lt;br /&gt;
			:node(nextNode)&lt;br /&gt;
			:allDone()&lt;br /&gt;
		return navbox&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
p.buildNavbox = p.buildnavbox&lt;br /&gt;
&lt;br /&gt;
function p.buildsuccession(params)&lt;br /&gt;
	if not params.value then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
		&lt;br /&gt;
	local rowI = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	cellI = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({colspan = &amp;#039;2&amp;#039;})&lt;br /&gt;
			:attr({align = &amp;#039;center&amp;#039;})&lt;br /&gt;
	&lt;br /&gt;
	local styleT = {}&lt;br /&gt;
	styleT[&amp;#039;background-color&amp;#039;] = &amp;#039;transparent&amp;#039;&lt;br /&gt;
	styleT[&amp;#039;width&amp;#039;] = &amp;#039;100%&amp;#039;&lt;br /&gt;
	tabC = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
			:attr({cellspacing = &amp;#039;0&amp;#039;})&lt;br /&gt;
			:addClass(&amp;#039;navigation-not-searchable&amp;#039;)&lt;br /&gt;
			:css(styleT)&lt;br /&gt;
	&lt;br /&gt;
	local row = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local color = params.color&lt;br /&gt;
&lt;br /&gt;
	local style = {}&lt;br /&gt;
	local arrowLeft&lt;br /&gt;
	local arrowRight&lt;br /&gt;
	&lt;br /&gt;
	if color == &amp;#039;default&amp;#039; then&lt;br /&gt;
		style[&amp;#039;background-color&amp;#039;] = &amp;#039;#E6E6E6&amp;#039;&lt;br /&gt;
		arrowLeft = &amp;#039;[[file:Fleche-defaut-droite.png|13px|alt=سابق|link=]]&amp;#039;&lt;br /&gt;
		arrowRight = &amp;#039;[[file:Fleche-defaut-gauche.png|13px|alt=سابق|link=]]&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		style[&amp;#039;background-color&amp;#039;] = color&lt;br /&gt;
		arrowLeft = &amp;#039;[[file:Fleche-defaut-droite-gris-32.png|13px|alt=لاحق|link=]]&amp;#039;&lt;br /&gt;
		arrowRight = &amp;#039;[[file:Fleche-defaut-gauche-gris-32.png|13px|alt=لاحق|link=]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local styleTrans = {}&lt;br /&gt;
	styleTrans[&amp;#039;background-color&amp;#039;] = &amp;#039;#F9F9F9&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- ترتيب البيانات&lt;br /&gt;
	params.previousval = params.previousval or params.previousparameter &lt;br /&gt;
	params.nextval = params.nextval or params.nextparameter&lt;br /&gt;
	&lt;br /&gt;
	if params.previousproperty then&lt;br /&gt;
		params.previouswikidata = {property = params.previousproperty}&lt;br /&gt;
	end&lt;br /&gt;
	if params.nextproperty then&lt;br /&gt;
		params.nextwikidata = {property = params.nextproperty}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local before = params.value[&amp;#039;before&amp;#039;] or getValue(params.previousval, params) or getWikidataValue(params, &amp;#039;previouswikidata&amp;#039;)&lt;br /&gt;
	local after = params.value[&amp;#039;after&amp;#039;] or getValue(params.nextval, params) or getWikidataValue(params, &amp;#039;nextwikidata&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local center = params.value[&amp;#039;center&amp;#039;]&lt;br /&gt;
--&lt;br /&gt;
	&lt;br /&gt;
	local widthCell = &amp;#039;44%&amp;#039;&lt;br /&gt;
	if center then&lt;br /&gt;
		widthCenter = &amp;#039;28%&amp;#039;&lt;br /&gt;
		widthCell = &amp;#039;29%&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local formattedbefore&lt;br /&gt;
	if before then&lt;br /&gt;
		formattedbefore = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({align = &amp;#039;right&amp;#039;})&lt;br /&gt;
			:attr({width = &amp;#039;5%&amp;#039;})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:wikitext(arrowLeft)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedbefore)&lt;br /&gt;
		formattedbefore = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({width = &amp;#039;1%&amp;#039;})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedbefore)&lt;br /&gt;
		formattedbefore = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({align = &amp;#039;right&amp;#039;})&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({width = widthCell})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:wikitext(before)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedbefore)&lt;br /&gt;
	else&lt;br /&gt;
		formattedbefore = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({align = &amp;#039;right&amp;#039;})&lt;br /&gt;
			:attr({width = &amp;#039;5%&amp;#039;})&lt;br /&gt;
			:css(styleTrans)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedbefore)&lt;br /&gt;
		formattedbefore = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({width = &amp;#039;1%&amp;#039;})&lt;br /&gt;
			:css(styleTrans)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedbefore)&lt;br /&gt;
		formattedbefore = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({align = &amp;#039;right&amp;#039;})&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({width = widthCell})&lt;br /&gt;
			:css(styleTrans)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedbefore)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local formattedcenter&lt;br /&gt;
	formattedcenter = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
		:attr({width = &amp;#039;1%&amp;#039;})&lt;br /&gt;
		:css(styleTrans)&lt;br /&gt;
		:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
		:done()&lt;br /&gt;
	row:node(formattedcenter)&lt;br /&gt;
	&lt;br /&gt;
	if center then&lt;br /&gt;
		formattedcenter = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({align = &amp;#039;center&amp;#039;})&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({width = widthCenter})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:wikitext(center)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedcenter)&lt;br /&gt;
		formattedcenter = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({width = &amp;#039;1%&amp;#039;})&lt;br /&gt;
			:css(styleTrans)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedcenter)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local formattedafter&lt;br /&gt;
	if after then&lt;br /&gt;
		formattedafter = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({align = &amp;#039;left&amp;#039;})&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({width = widthCell})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:wikitext(after)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedafter)&lt;br /&gt;
		formattedbefore = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({width = &amp;#039;1%&amp;#039;})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedbefore)&lt;br /&gt;
		formattedafter = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({align = &amp;#039;left&amp;#039;})&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({width = &amp;#039;5%&amp;#039;})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:wikitext(arrowRight)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedafter)&lt;br /&gt;
	else&lt;br /&gt;
		formattedafter = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({align = &amp;#039;left&amp;#039;})&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({width = widthCell})&lt;br /&gt;
			:css(styleTrans)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedafter)&lt;br /&gt;
		formattedbefore = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({width = &amp;#039;1%&amp;#039;})&lt;br /&gt;
			:css(styleTrans)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedbefore)&lt;br /&gt;
		formattedafter = mw.html.create(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:attr({align = &amp;#039;left&amp;#039;})&lt;br /&gt;
			:attr({valign = &amp;#039;middle&amp;#039;})&lt;br /&gt;
			:attr({width = &amp;#039;5%&amp;#039;})&lt;br /&gt;
			:css(styleTrans)&lt;br /&gt;
			:wikitext(&amp;#039;&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		row:node(formattedafter)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	row:done()&lt;br /&gt;
	tabC:node(row)&lt;br /&gt;
	tabC:done()&lt;br /&gt;
	cellI:node(tabC)&lt;br /&gt;
	cellI:done()&lt;br /&gt;
	rowI:node(cellI)&lt;br /&gt;
	rowI:allDone()&lt;br /&gt;
	&lt;br /&gt;
	return rowI&lt;br /&gt;
end&lt;br /&gt;
p.buildSuccession = p.buildsuccession&lt;br /&gt;
&lt;br /&gt;
function p.buildrow1col(params)&lt;br /&gt;
&lt;br /&gt;
	local value, number =  getValue(params.value, params)&lt;br /&gt;
&lt;br /&gt;
	if (not value) then&lt;br /&gt;
		value, number =  getWikidataValue(params, &amp;#039;wikidata&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if (not value) and (params.property) then&lt;br /&gt;
		value, number = expandQuery{ property = params.property } &lt;br /&gt;
	end&lt;br /&gt;
	if not value then&lt;br /&gt;
		value = params.defaultvalue&lt;br /&gt;
	end&lt;br /&gt;
	if value == &amp;#039;-&amp;#039; or type(value)== &amp;#039;nil&amp;#039; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end	&lt;br /&gt;
&lt;br /&gt;
	local class = params.class&lt;br /&gt;
	local rowcolor&lt;br /&gt;
	if params.color == &amp;#039;secondcolor&amp;#039; then&lt;br /&gt;
		rowcolor = secondcolor&lt;br /&gt;
	else&lt;br /&gt;
		rowcolor = params.color&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local style = {}&lt;br /&gt;
	style[&amp;#039;padding&amp;#039;] = &amp;#039;4px&amp;#039;&lt;br /&gt;
	style[&amp;#039;text-align&amp;#039;] = &amp;#039;center&amp;#039;&lt;br /&gt;
	style[&amp;#039;background-color&amp;#039;] = rowcolor or &amp;#039;#F9F9F9&amp;#039;&lt;br /&gt;
	style[&amp;#039;color&amp;#039;] = &amp;#039;#000000&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if number &amp;gt; 4 then   --- اخفاء النتيجة في حال تجاوز عددها 4&lt;br /&gt;
		params.hidden = true&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	local formattedvalue = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:wikitext(&amp;#039;\n&amp;#039; .. value) -- رمز &amp;#039;\n&amp;#039; مطلوب عندما تكون value قائمة تبدأ بـ &amp;#039;*&amp;#039; ou &amp;#039;#&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if (params.hidden == true) then&lt;br /&gt;
		local divNavHead = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:attr({class=&amp;quot;nomobile&amp;quot;, style=&amp;quot;text-align:right;border: none; padding: 0; background:none; font-size: 75%;&amp;quot;})	&lt;br /&gt;
			:wikitext(&amp;quot;&amp;amp;nbsp;[[file:Incomplete list.svg|20x20px|link=]] القائمة ...&amp;quot;) --[عرض]/[إخفاء]&lt;br /&gt;
        formattedvalue&lt;br /&gt;
			:addClass(&amp;#039;mw-collapsible-content&amp;#039;)&lt;br /&gt;
        divNavHead = mw.html.create(&amp;#039;div&amp;#039;):node(divNavHead)&lt;br /&gt;
&lt;br /&gt;
		formattedvalue = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:attr({class=&amp;quot;mw-collapsible mw-collapsed &amp;quot;, style=&amp;quot;border: none; padding: 0;&amp;quot;})&lt;br /&gt;
			:node(divNavHead)&lt;br /&gt;
			:node(formattedvalue)&lt;br /&gt;
	end&lt;br /&gt;
	formattedvalue =  mw.html.create(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:node(formattedvalue)&lt;br /&gt;
			:attr({colspan = &amp;#039;2&amp;#039;})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:done()&lt;br /&gt;
&lt;br /&gt;
	local row = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		:addClass(class)&lt;br /&gt;
		:css(style)&lt;br /&gt;
		:node(formattedvalue)&lt;br /&gt;
		:done()&lt;br /&gt;
	&lt;br /&gt;
	return row&lt;br /&gt;
end&lt;br /&gt;
p.buildRow1Col = p.buildrow1col&lt;br /&gt;
&lt;br /&gt;
function p.buildsubtitle(params)&lt;br /&gt;
	local class = params.class or &amp;#039;&amp;#039;&lt;br /&gt;
	local style = { [&amp;#039;margin-top&amp;#039;] =&amp;#039;-8px&amp;#039;,[&amp;#039;margin-bottom&amp;#039;] =&amp;#039;10px&amp;#039;,&lt;br /&gt;
		[&amp;#039;text-align&amp;#039;] = &amp;#039;center&amp;#039;,&lt;br /&gt;
		[&amp;#039;font-size&amp;#039;] = &amp;#039;90%&amp;#039;,&lt;br /&gt;
		[&amp;#039;background-color&amp;#039;] = maincolor,&lt;br /&gt;
		[&amp;#039;color&amp;#039;] = thirdcolor,&lt;br /&gt;
		flex= &amp;quot;auto&amp;quot;,&lt;br /&gt;
		width=&amp;quot;100%&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if params.style then&lt;br /&gt;
		for i, j in pairs(params.style) do&lt;br /&gt;
			style[i] = j&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local text = getValue(params.value, params) or getWikidataValue(params) or params.defaultvalue&lt;br /&gt;
	if text == &amp;#039;-&amp;#039; then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not text then&lt;br /&gt;
		addMaintenanceCat(params.maintenancecat, params.sortkey)&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local title = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(class)&lt;br /&gt;
		:css(style)&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:wikitext(text)&lt;br /&gt;
		:allDone()&lt;br /&gt;
&lt;br /&gt;
	return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.buildSubTitle = p.buildsubtitle&lt;br /&gt;
&lt;br /&gt;
function p.buildtable(params)&lt;br /&gt;
	local tab = mw.html.create(&amp;#039;table&amp;#039;):css(params.style or {})&lt;br /&gt;
&lt;br /&gt;
	local rows = params.rows&lt;br /&gt;
	&lt;br /&gt;
	-- expand parameters so that we have a list of tables&lt;br /&gt;
	local i = 1&lt;br /&gt;
&lt;br /&gt;
	while (i &amp;lt;= #rows) do &lt;br /&gt;
		local l = rows[i]&lt;br /&gt;
		if type(l) == &amp;#039;function&amp;#039; then &lt;br /&gt;
			l = l(localdata, localdata.item)&lt;br /&gt;
		end&lt;br /&gt;
		if (type(l) == &amp;#039;table&amp;#039;) and (l.type == &amp;#039;multi&amp;#039;) then&lt;br /&gt;
			table.remove(rows, i)  &lt;br /&gt;
			for j, row in ipairs(l.rows) do&lt;br /&gt;
				table.insert(rows, i + j - 1, row) &lt;br /&gt;
			end&lt;br /&gt;
		elseif type(l) == &amp;#039;nil&amp;#039; then&lt;br /&gt;
			table.remove(rows, i)&lt;br /&gt;
		elseif type(l) ~= &amp;#039;table&amp;#039; then &lt;br /&gt;
			return error(&amp;#039;أسطر قالب البطاقة (&amp;quot;rows&amp;quot;) على شكل جداول (table), وليست &amp;#039; .. type(l))&lt;br /&gt;
		else&lt;br /&gt;
			i = i + 1&lt;br /&gt;
		end&lt;br /&gt;
	end &lt;br /&gt;
&lt;br /&gt;
	-- CREATE ROW&lt;br /&gt;
	local expandedrows = {}&lt;br /&gt;
	for k, row in ipairs(rows) do&lt;br /&gt;
		local v = p.buildblock(row)&lt;br /&gt;
		if v then&lt;br /&gt;
			table.insert(expandedrows, v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if (#expandedrows == 0) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	rows = expandedrows&lt;br /&gt;
&lt;br /&gt;
	-- ADD TITLE&lt;br /&gt;
	local title&lt;br /&gt;
	if params.title or params.singulartitle or params.pluraltitle then&lt;br /&gt;
		local text&lt;br /&gt;
		if #rows &amp;gt; 1 and params.pluraltitle then&lt;br /&gt;
			text = params.pluraltitle&lt;br /&gt;
		elseif #rows == 1 and params.singulartitle then&lt;br /&gt;
			text = params.singulartitle&lt;br /&gt;
		else&lt;br /&gt;
			text = params.title&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local style = params.titlestyle or {display = &amp;#039;table-caption&amp;#039;}&lt;br /&gt;
		style[&amp;#039;text-align&amp;#039;] = style[&amp;#039;text-align&amp;#039;] or &amp;#039;center&amp;#039;&lt;br /&gt;
		style[&amp;#039;color&amp;#039;] = style[&amp;#039;color&amp;#039;] or thirdcolor&lt;br /&gt;
		style[&amp;#039;background-color&amp;#039;] = style[&amp;#039;background-color&amp;#039;] or secondcolor&lt;br /&gt;
&lt;br /&gt;
		title = mw.html.create(&amp;#039;caption&amp;#039;)&lt;br /&gt;
			:attr({colspan = &amp;#039;2&amp;#039;})&lt;br /&gt;
			:css(style)&lt;br /&gt;
			:wikitext(text)&lt;br /&gt;
			:done()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if title then&lt;br /&gt;
		tab:node(title)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for i, j in pairs (rows) do&lt;br /&gt;
		tab:node(j)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if params.separator then&lt;br /&gt;
		local separator = p.separator(params)&lt;br /&gt;
		tab:node(separator)&lt;br /&gt;
	end&lt;br /&gt;
	tab:allDone()&lt;br /&gt;
	return tab&lt;br /&gt;
end&lt;br /&gt;
p.buildTable = p.buildtable&lt;br /&gt;
&lt;br /&gt;
function p.buildinvalidblock(args)&lt;br /&gt;
	addMaintenanceCat(defaultcat)&lt;br /&gt;
	local text = &amp;#039;&amp;#039;&lt;br /&gt;
	if type(args) ~= &amp;#039;table&amp;#039; then&lt;br /&gt;
		text = &amp;quot;لبنات قالب بطاقة يجب أن تكتب على شكل جداول (table)&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text = i18n[&amp;quot;invalid block type&amp;quot;] .. &amp;#039; : &amp;#039; .. (args.type or &amp;#039;??&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
p.buildInvalidBlock = p.buildinvalidblock&lt;br /&gt;
&lt;br /&gt;
function p.buildmap(params)&lt;br /&gt;
&lt;br /&gt;
	local latitude = getValue({&amp;#039;latitude&amp;#039;,&amp;#039;دائرة العرض&amp;#039;,&amp;#039;دائرة عرض&amp;#039;})&lt;br /&gt;
	local longitude = getValue({&amp;#039;longitude&amp;#039;,&amp;#039;خط الطول&amp;#039;,&amp;#039;خط طول&amp;#039;})&lt;br /&gt;
	&lt;br /&gt;
	local itemid&lt;br /&gt;
	if localdata.item and localdata.item.id then itemid = localdata.item.id end&lt;br /&gt;
		&lt;br /&gt;
	if(not params.ids  and not longitude and not itemid	)		then return end&lt;br /&gt;
	&lt;br /&gt;
	local width = tonumber(params.width) or 260&lt;br /&gt;
	if width &amp;gt; 260 then&lt;br /&gt;
		addMaintenanceCat(&amp;quot;خطأ في بطاقة/صورة بأبعاد كبيرة&amp;quot;)&lt;br /&gt;
		 width = 260&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	newparams = {&lt;br /&gt;
		  [&amp;#039;marker-symbol&amp;#039;] = params.marker or &amp;#039;marker&amp;#039;&lt;br /&gt;
		, [&amp;#039;marker-color&amp;#039;] = params.markercolor or &amp;#039;#FF0000&amp;#039;&lt;br /&gt;
		, [&amp;#039;marker-size&amp;#039;] =  params.markersize&lt;br /&gt;
		, frameless=&amp;#039;yes&amp;#039;&lt;br /&gt;
		, [&amp;#039;width&amp;#039;]=width&lt;br /&gt;
		, [&amp;#039;height&amp;#039;]=width&lt;br /&gt;
		, [&amp;#039;latitude&amp;#039;]= latitude&lt;br /&gt;
		, [&amp;#039;longitude&amp;#039;]=  longitude&lt;br /&gt;
		, [&amp;#039;align&amp;#039;]=&amp;#039;center&amp;#039;&lt;br /&gt;
		, type=&amp;#039;mapframe&amp;#039;&lt;br /&gt;
		, item = itemid&lt;br /&gt;
		, ids = params.ids&lt;br /&gt;
		, zoom= params.zoom or params.default_zoom or 9&lt;br /&gt;
		, lang=&amp;quot;ar&amp;quot;&lt;br /&gt;
        , title = mw.title.getCurrentTitle().text&lt;br /&gt;
		--, debug = 1&lt;br /&gt;
	}&lt;br /&gt;
	if params.params and type(params.params) == &amp;#039;table&amp;#039; then -- بيانات اضافية&lt;br /&gt;
		for i, j in pairs(params.params) do&lt;br /&gt;
			if(not newparams[i]) then newparams[i] = j end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
    local f_tag = require(&amp;#039;Module:Map&amp;#039;)._tag&lt;br /&gt;
	noerr,data = pcall(f_tag,newparams)	&lt;br /&gt;
	if noerr == true&lt;br /&gt;
		then return data&lt;br /&gt;
		else &lt;br /&gt;
			addMaintenanceCat(&amp;#039;مقالات بها أخطاء مصدرها وحدة بطاقة&amp;#039;)&lt;br /&gt;
			mw.log(&amp;quot;Error from [[Module:Map]] : &amp;quot;..mw.dumpObject(data))&lt;br /&gt;
			return nil &lt;br /&gt;
	end    &lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
p.buildMap = p.buildmap&lt;br /&gt;
&lt;br /&gt;
function p.buildexternaltext(params)&lt;br /&gt;
	local value = getValue(params.value)&lt;br /&gt;
	if value and (type(value) == &amp;#039;string&amp;#039;) then&lt;br /&gt;
		externaltext = externaltext .. value&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
p.buildExternalText = p.buildexternaltext&lt;br /&gt;
&lt;br /&gt;
function p.buildfooter(params)&lt;br /&gt;
	if not params then&lt;br /&gt;
		params = {}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local class = &amp;#039;navbar noprint bordered &amp;#039; .. (params.class or &amp;#039;&amp;#039;)&lt;br /&gt;
	local style = params.style or {flex= &amp;quot;auto&amp;quot;;}&lt;br /&gt;
	style[&amp;#039;border-top&amp;#039;] = style[&amp;#039;border-top&amp;#039;] or &amp;#039;2px dotted &amp;#039; .. maincolor&lt;br /&gt;
	style[&amp;#039;display&amp;#039;] =  &amp;#039;block&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	local backlinkstr = &amp;#039;[&amp;#039; .. tostring( mw.uri.fullUrl( page.name, &amp;#039;veaction=edit&amp;amp;section=0&amp;#039; ) ) .. &amp;#039; &amp;#039; .. i18n[&amp;#039;edit&amp;#039;] .. &amp;#039;]&amp;#039;&lt;br /&gt;
		.. &amp;#039; - [&amp;#039; .. tostring( mw.uri.fullUrl( page.name, &amp;#039;action=edit&amp;amp;section=0&amp;#039; ) ) .. &amp;#039; &amp;#039; .. i18n[&amp;#039;edit code&amp;#039;] .. &amp;#039;]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local itemlinkstr&lt;br /&gt;
	if localdata.item and  localdata.item.id then&lt;br /&gt;
		itemlinkstr = &amp;#039;[[d:&amp;#039; .. localdata.item.id .. &amp;#039;|&amp;#039; .. i18n[&amp;#039;edit item&amp;#039;] .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local editstr = backlinkstr&lt;br /&gt;
	if itemlinkstr then&lt;br /&gt;
		editstr = editstr .. &amp;#039; - &amp;#039; .. itemlinkstr&lt;br /&gt;
	end&lt;br /&gt;
	local editlinkspan =  mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
		:css({[&amp;#039;text-align&amp;#039;] = &amp;quot;right&amp;quot;, [&amp;#039;font-size&amp;#039;] = &amp;quot;80%&amp;quot;,[&amp;#039;background&amp;#039;] = &amp;quot;inherit&amp;quot;})&lt;br /&gt;
		:addClass(&amp;#039;plainlinks&amp;#039;)&lt;br /&gt;
		:wikitext(editstr)&lt;br /&gt;
		:done()&lt;br /&gt;
	local doclinkstr = &amp;#039;[[File:Test_Template_Info-Icon_-_Version_(2).svg|30x15px|link=&amp;#039; .. localdata.templatename .. &amp;#039;|&amp;#039; .. i18n[&amp;#039;see doc&amp;#039;] .. &amp;#039;]]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local doclinkspan = mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
		:css({[&amp;#039;text-align&amp;#039;] = &amp;quot;left&amp;quot;,[&amp;#039;float&amp;#039;] = &amp;quot;left&amp;quot;})&lt;br /&gt;
		:wikitext(doclinkstr)&lt;br /&gt;
		:done()&lt;br /&gt;
	&lt;br /&gt;
	local footer = mw.html.create(&amp;#039;p&amp;#039;)&lt;br /&gt;
		:addClass(class)&lt;br /&gt;
		:css(style)&lt;br /&gt;
		:node(editlinkspan)&lt;br /&gt;
		:node(doclinkspan)&lt;br /&gt;
	return footer&lt;br /&gt;
end&lt;br /&gt;
p.buildFooter = p.buildfooter&lt;br /&gt;
&lt;br /&gt;
function p.buildblock(block)&lt;br /&gt;
	if type(block) == &amp;#039;function&amp;#039; then&lt;br /&gt;
		block = block( localdata )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local blocktypes = { -- list of functions for block buildings&lt;br /&gt;
		[&amp;#039;invalid&amp;#039;] = p.buildinvalidblock,&lt;br /&gt;
		[&amp;#039;external text&amp;#039;] = p.buildexternaltext,&lt;br /&gt;
		[&amp;#039;footer&amp;#039;] = p.buildfooter,&lt;br /&gt;
		[&amp;#039;images&amp;#039;] = p.buildimages,&lt;br /&gt;
		[&amp;#039;map&amp;#039;]= p.buildmap,&lt;br /&gt;
		[&amp;#039;mixed&amp;#039;] = p.buildrow,&lt;br /&gt;
		[&amp;#039;navbox&amp;#039;] = p.buildnavbox,&lt;br /&gt;
		[&amp;#039;table&amp;#039;] = p.buildtable,&lt;br /&gt;
		[&amp;#039;row&amp;#039;] = p.buildrow,&lt;br /&gt;
		[&amp;#039;row1col&amp;#039;] = p.buildrow1col,&lt;br /&gt;
		[&amp;#039;succession&amp;#039;] = p.buildsuccession,&lt;br /&gt;
		[&amp;#039;text&amp;#039;] = p.buildtext,&lt;br /&gt;
		[&amp;#039;title&amp;#039;] = p.buildtitle,&lt;br /&gt;
		[&amp;#039;subtitle&amp;#039;] = p.buildsubtitle,&lt;br /&gt;
	}&lt;br /&gt;
	if type(block) ~= &amp;#039;table&amp;#039; or (not block.type) or (not blocktypes[block.type]) then&lt;br /&gt;
		return blocktypes[&amp;#039;invalid&amp;#039;](block)&lt;br /&gt;
	end&lt;br /&gt;
	return blocktypes[block.type](block) &lt;br /&gt;
end&lt;br /&gt;
p.buildBlock = p.buildblock&lt;br /&gt;
&lt;br /&gt;
function p.build()&lt;br /&gt;
	&lt;br /&gt;
	localdata = require( &amp;#039;وحدة:بطاقة/بيانات&amp;#039;)&lt;br /&gt;
	item = localdata.item&lt;br /&gt;
&lt;br /&gt;
	-- assign rank to the infobox, &amp;quot;secondary&amp;quot; means special formatting like no displaytitle for coordinates&lt;br /&gt;
	local infoboxrank = &amp;#039;main&amp;#039; -- main infobox of the page, with coordinates displayed in title etc.&lt;br /&gt;
	if page.namespace ~= 0 then&lt;br /&gt;
		infoboxrank = &amp;#039;secondary&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	-- if infobox is linked to another item: rank = secondary&lt;br /&gt;
	if localdata.item and localdata.item.id then&lt;br /&gt;
		local itemlink = mw.wikibase.sitelink(localdata.item.id)&lt;br /&gt;
		local pagetitle = mw.title.getCurrentTitle().text&lt;br /&gt;
		if (itemlink or &amp;#039;&amp;#039;) ~= pagetitle then&lt;br /&gt;
			infoboxrank = &amp;#039;secondary&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	localdata.infoboxrank = infoboxrank&lt;br /&gt;
&lt;br /&gt;
	-- load infobox module page&lt;br /&gt;
	local moduledata = require(&amp;#039;وحدة:بطاقة/قالب/&amp;#039; .. localdata.modulename )&lt;br /&gt;
&lt;br /&gt;
	moduledata.name = localdata.modulename&lt;br /&gt;
	localdata.wikimod = moduledata.wikimod or moduledata.wikidatamod or moduledata.wdmod&lt;br /&gt;
	&lt;br /&gt;
	-- defines main color&lt;br /&gt;
	maincolor = localdata[&amp;#039;infobox color&amp;#039;] or localdata[&amp;#039;لون البطاقة&amp;#039;] or moduledata.maincolor or maincolor&lt;br /&gt;
	secondcolor = moduledata.secondcolor or secondcolor&lt;br /&gt;
	thirdcolor = localdata[&amp;#039;text color&amp;#039;] or localdata[&amp;#039;لون النص&amp;#039;] or moduledata.thirdcolor or thirdcolor&lt;br /&gt;
	if maincolor:match( &amp;#039;^%x%x%x%x%x%x$&amp;#039; ) or maincolor:match( &amp;#039;^%x%x%x$&amp;#039; ) then&lt;br /&gt;
		maincolor = &amp;#039;#&amp;#039; .. maincolor&lt;br /&gt;
	end&lt;br /&gt;
	if thirdcolor:match (&amp;#039;نعم&amp;#039;) or thirdcolor:match( &amp;#039;true&amp;#039; ) then&lt;br /&gt;
		thirdcolor = &amp;#039;#000&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if thirdcolor:match (&amp;#039;لا&amp;#039;) or thirdcolor:match( &amp;#039;false&amp;#039; ) then&lt;br /&gt;
		thirdcolor = &amp;#039;#fff&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- class&lt;br /&gt;
	local class = &amp;#039;infobox_v3b mainTable infobox&amp;#039;&lt;br /&gt;
	if moduledata.class then&lt;br /&gt;
		class = class .. &amp;#039; &amp;#039; .. moduledata.class&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- style&lt;br /&gt;
	local style = moduledata.style or {}&lt;br /&gt;
&lt;br /&gt;
	-- build infobox&lt;br /&gt;
	-- النتيجة النهائية&lt;br /&gt;
	local infobox = mw.html.create(&amp;#039;td&amp;#039;) --mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
         --:addClass(class)&lt;br /&gt;
         :css({display= &amp;quot;flex&amp;quot;&lt;br /&gt;
         	,[&amp;quot;flex-wrap&amp;quot;]= &amp;quot;wrap&amp;quot;&lt;br /&gt;
         	,[&amp;quot;flex-direction&amp;quot;]= &amp;quot;row&amp;quot;&lt;br /&gt;
         	,[&amp;quot;justify-content&amp;quot;]= &amp;quot;center&amp;quot;&lt;br /&gt;
         	,[&amp;quot;align-items&amp;quot;]= &amp;quot;center&amp;quot;}) &lt;br /&gt;
         :done()&lt;br /&gt;
&lt;br /&gt;
	for i, j in pairs( moduledata.parts ) do&lt;br /&gt;
		infobox:node( p.buildblock(j) )&lt;br /&gt;
	end&lt;br /&gt;
	infobox	:node(p.buildfooter(moduledata.footer))&lt;br /&gt;
			:done()&lt;br /&gt;
			&lt;br /&gt;
    infobox=mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
          :addClass(class)&lt;br /&gt;
         :css(style)&lt;br /&gt;
         :node(infobox)&lt;br /&gt;
         :done()&lt;br /&gt;
         &lt;br /&gt;
	templatestyles = mw.getCurrentFrame():extensionTag( &amp;#039;templatestyles&amp;#039;, &amp;#039;&amp;#039;, &lt;br /&gt;
		{src = &amp;quot;بطاقة/infobox v3b/styles.css&amp;quot;})&lt;br /&gt;
		..mw.getCurrentFrame():extensionTag( &amp;#039;templatestyles&amp;#039;, &amp;#039;&amp;#039;, { src = &amp;quot;بطاقة/icones.css&amp;quot;}&lt;br /&gt;
	)&lt;br /&gt;
	;&lt;br /&gt;
	return templatestyles .. tostring(infobox) .. externaltext, maintenance&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p[&amp;#039;تركيب&amp;#039;] = p.build&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ar&gt;وهراني</name></author>
	</entry>
</feed>