<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3AVideo_game_reviews</id>
	<title>وحدة:Video game reviews - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3AVideo_game_reviews"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Video_game_reviews&amp;action=history"/>
	<updated>2026-06-07T18:32:44Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Video_game_reviews&amp;diff=1676&amp;oldid=prev</id>
		<title>عبد العزيز في 16:20، 21 يوليو 2019</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Video_game_reviews&amp;diff=1676&amp;oldid=prev"/>
		<updated>2019-07-21T16:20:04Z</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;require(&amp;#039;Module:No globals&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local data = require(&amp;#039;Module:Video game reviews/data&amp;#039;)&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local vgwd = require(&amp;#039;Module:Video game wikidata&amp;#039;)&lt;br /&gt;
local getArgs&lt;br /&gt;
&lt;br /&gt;
local function getActiveSystems(args)&lt;br /&gt;
	local activeSystems = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if data.systems[k] and yesno(v) then&lt;br /&gt;
			table.insert(activeSystems, k)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(activeSystems, function(a, b)&lt;br /&gt;
		return data.systems[a].sortkey &amp;lt; data.systems[b].sortkey&lt;br /&gt;
	end)&lt;br /&gt;
	return activeSystems&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgKeyTables(args)&lt;br /&gt;
	local reviewers, aggregators, awards = {}, {}, {}&lt;br /&gt;
	for k in pairs(args) do&lt;br /&gt;
		if string.match(k, &amp;#039;^rev%d+$&amp;#039;) then&lt;br /&gt;
			table.insert(reviewers, k)&lt;br /&gt;
		elseif string.match(k, &amp;#039;^agg%d+$&amp;#039;) then&lt;br /&gt;
			table.insert(aggregators, k)&lt;br /&gt;
		elseif string.match(k, &amp;#039;^award%d+$&amp;#039;) then&lt;br /&gt;
			table.insert(awards, k)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local function comparator(a, b)&lt;br /&gt;
		return tonumber(a:match(&amp;#039;%d+&amp;#039;)) &amp;lt; tonumber(b:match(&amp;#039;%d+&amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(reviewers, comparator)&lt;br /&gt;
	table.sort(aggregators, comparator)&lt;br /&gt;
	table.sort(awards, comparator)&lt;br /&gt;
	return reviewers, aggregators, awards&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getProvidedReviewersAndAggregators(args, usePlatforms)&lt;br /&gt;
	local providedReviewers, providedAggregators = {}, {}&lt;br /&gt;
	if usePlatforms then&lt;br /&gt;
		local seen = {}&lt;br /&gt;
		for k in pairs(args) do&lt;br /&gt;
			local splitPos = string.find(k, &amp;#039;_&amp;#039;)&lt;br /&gt;
			if splitPos then&lt;br /&gt;
				local halfarg = string.sub(k, 1, splitPos - 1)&lt;br /&gt;
				if not seen[halfarg] then&lt;br /&gt;
					seen[halfarg] = true&lt;br /&gt;
					if data.reviewers[halfarg] then&lt;br /&gt;
						table.insert(providedReviewers, halfarg)&lt;br /&gt;
					elseif data.aggregators[halfarg] then&lt;br /&gt;
						table.insert(providedAggregators, halfarg)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		for k in pairs(args) do&lt;br /&gt;
			if not string.find(k, &amp;#039;_&amp;#039;) then&lt;br /&gt;
				if data.reviewers[k] then&lt;br /&gt;
					table.insert(providedReviewers, k)&lt;br /&gt;
				elseif data.aggregators[k] then&lt;br /&gt;
					table.insert(providedAggregators, k)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(providedReviewers, function(a, b)&lt;br /&gt;
		return data.reviewers[a].sortkey &amp;lt; data.reviewers[b].sortkey&lt;br /&gt;
	end)&lt;br /&gt;
	table.sort(providedAggregators, function(a, b)&lt;br /&gt;
		return data.aggregators[a].sortkey &amp;lt; data.aggregators[b].sortkey&lt;br /&gt;
	end)&lt;br /&gt;
	return providedReviewers, providedAggregators&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTitleRow(tbl, title)&lt;br /&gt;
	local titleCell = tbl:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	if title then&lt;br /&gt;
		titleCell&lt;br /&gt;
				:wikitext(title)&lt;br /&gt;
	else&lt;br /&gt;
		titleCell&lt;br /&gt;
				:addClass(&amp;#039;Reception&amp;#039;)&lt;br /&gt;
				:wikitext(data.i18n.reception)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderMainHeading(builder, colspan, headingText, borderTop)&lt;br /&gt;
	builder:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
		   :attr(&amp;#039;colspan&amp;#039;, colspan)&lt;br /&gt;
		   :css(&amp;#039;background&amp;#039;, &amp;#039;#d1dbdf&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;border-top&amp;#039;, borderTop)&lt;br /&gt;
		   :wikitext(headingText)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderHeadingRowWithSystems(builder, mainHeading, activeSystems)&lt;br /&gt;
	renderMainHeading(builder, #activeSystems + 1, mainHeading)&lt;br /&gt;
	builder:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		   :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
		   :attr(&amp;#039;rowspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;background&amp;#039;, &amp;#039;#e8f4f8&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
		   :wikitext(data.i18n.publication)&lt;br /&gt;
		   :done()&lt;br /&gt;
		   :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
		   :attr(&amp;#039;colspan&amp;#039;, #activeSystems)&lt;br /&gt;
		   :css(&amp;#039;background&amp;#039;, &amp;#039;#e8f4f8&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
		   :wikitext(data.i18n.score)&lt;br /&gt;
	builder = builder:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	for _, v in ipairs(activeSystems) do&lt;br /&gt;
		builder:tag(&amp;#039;th&amp;#039;):wikitext(data.systems[v].name)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderHeadingRow(builder, mainHeading, nameHeading)&lt;br /&gt;
	renderMainHeading(builder, 2, mainHeading)&lt;br /&gt;
	builder&lt;br /&gt;
			:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;background&amp;#039;, &amp;#039;#e8f4f8&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
			:wikitext(nameHeading)&lt;br /&gt;
			:done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;background&amp;#039;, &amp;#039;#e8f4f8&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
			:wikitext(data.i18n.score)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderRatingsBySystem(builder, code, name, activeSystems, args, na)&lt;br /&gt;
	builder = builder:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	builder:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
		   :wikitext(name)&lt;br /&gt;
&lt;br /&gt;
	for _, v in ipairs(activeSystems) do&lt;br /&gt;
		local combinedCode = code .. &amp;#039;_&amp;#039; .. v&lt;br /&gt;
		local cell = builder:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		if args[combinedCode] then&lt;br /&gt;
			cell&lt;br /&gt;
					:css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
					:css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)					&lt;br /&gt;
					:wikitext(args[combinedCode])&lt;br /&gt;
		elseif na then&lt;br /&gt;
			cell&lt;br /&gt;
					:css(&amp;#039;color&amp;#039;, &amp;#039;#707070&amp;#039;)&lt;br /&gt;
					:css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
					:css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
					:addClass(&amp;#039;table-na&amp;#039;)&lt;br /&gt;
					:wikitext(data.i18n.na)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderRating(builder, name, rating)&lt;br /&gt;
	builder:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		   :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;vertical-align&amp;#039;, &amp;#039;middle&amp;#039;)&lt;br /&gt;
		   :wikitext(name)&lt;br /&gt;
		   :done()&lt;br /&gt;
		   :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
		   :wikitext(rating)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderReviews(builder, providedReviewers, providedAggregators, activeSystems, customAggregatorKeys, customReviewerKeys, args)&lt;br /&gt;
	builder = builder:tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
					 :addClass(&amp;#039;infobox wikitable&amp;#039;)&lt;br /&gt;
					 :attr(&amp;#039;cellpadding&amp;#039;, 0)&lt;br /&gt;
					 :attr(&amp;#039;cellspacing&amp;#039;, 0)&lt;br /&gt;
					 :css(&amp;#039;width&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
					 :css(&amp;#039;border-bottom&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
					 :css(&amp;#039;margin&amp;#039;, &amp;#039;0em&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local reviewerCount = #providedReviewers + #customReviewerKeys&lt;br /&gt;
	local aggregatorCount = #providedAggregators + #customAggregatorKeys&lt;br /&gt;
	local reviewScore = data.i18n[reviewerCount == 1 and &amp;#039;reviewScore&amp;#039; or &amp;#039;reviewScores&amp;#039;]&lt;br /&gt;
	local aggregateScore = data.i18n[aggregatorCount == 1 and &amp;#039;aggregateScore&amp;#039; or &amp;#039;aggregateScores&amp;#039;]&lt;br /&gt;
	if #activeSystems ~= 0 then&lt;br /&gt;
		builder:wikitext(data.i18n.multiplatformCategory)&lt;br /&gt;
		local na = yesno(args.na)&lt;br /&gt;
		local showplatforms = #activeSystems ~= 1 or yesno(args.showplatforms)&lt;br /&gt;
		if reviewerCount ~= 0 then&lt;br /&gt;
			if showplatforms then&lt;br /&gt;
				renderHeadingRowWithSystems(builder, reviewScore, activeSystems)&lt;br /&gt;
			else&lt;br /&gt;
				renderHeadingRow(builder, reviewScore, data.i18n.publication)&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			for _, v in ipairs(providedReviewers) do&lt;br /&gt;
				renderRatingsBySystem(builder, v, data.reviewers[v].name, activeSystems, args, na)&lt;br /&gt;
			end&lt;br /&gt;
			for _, v in ipairs(customReviewerKeys) do&lt;br /&gt;
				renderRatingsBySystem(builder, v, args[v], activeSystems, args, na)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if aggregatorCount ~= 0 then&lt;br /&gt;
			if reviewerCount ~= 0 then&lt;br /&gt;
				renderMainHeading(builder, #activeSystems + 1, aggregateScore)&lt;br /&gt;
			elseif showplatforms then&lt;br /&gt;
				renderHeadingRowWithSystems(builder, aggregateScore, activeSystems)&lt;br /&gt;
			else&lt;br /&gt;
				renderHeadingRow(builder, aggregateScore, data.i18n.aggregator)&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			for _, v in ipairs(providedAggregators) do&lt;br /&gt;
				renderRatingsBySystem(builder, v, data.aggregators[v].name, activeSystems, args, na)&lt;br /&gt;
			end&lt;br /&gt;
			for _, v in ipairs(customAggregatorKeys) do&lt;br /&gt;
				renderRatingsBySystem(builder, v, args[v], activeSystems, args, na)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		builder:wikitext(data.i18n.singleplatformCategory)&lt;br /&gt;
		if aggregatorCount ~= 0 then&lt;br /&gt;
			renderHeadingRow(builder, aggregateScore, data.i18n.aggregator)&lt;br /&gt;
			for _, v in ipairs(providedAggregators) do&lt;br /&gt;
				renderRating(builder, data.aggregators[v].name, args[v])&lt;br /&gt;
			end&lt;br /&gt;
			for _, v in ipairs(customAggregatorKeys) do&lt;br /&gt;
				renderRating(builder, args[v], args[v .. &amp;#039;Score&amp;#039;])&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if reviewerCount ~= 0 then&lt;br /&gt;
			renderHeadingRow(builder, reviewScore, data.i18n.publication)&lt;br /&gt;
			for _, v in ipairs(providedReviewers) do&lt;br /&gt;
				renderRating(builder, data.reviewers[v].name, args[v])&lt;br /&gt;
			end&lt;br /&gt;
			for _, v in ipairs(customReviewerKeys) do&lt;br /&gt;
				renderRating(builder, args[v], args[v .. &amp;#039;Score&amp;#039;])&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderAwards(builder, args, awardKeys, borderTop)&lt;br /&gt;
	builder = builder:tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
					 :addClass(&amp;#039;infobox wikitable&amp;#039;)&lt;br /&gt;
					 :css(&amp;#039;width&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
					 :css(&amp;#039;margin&amp;#039;, &amp;#039;0em&amp;#039;)&lt;br /&gt;
					 :css(&amp;#039;border-top&amp;#039;, borderTop)&lt;br /&gt;
					 :attr(&amp;#039;cellpadding&amp;#039;, 3)&lt;br /&gt;
					 :attr(&amp;#039;cellspacing&amp;#039;, 0)&lt;br /&gt;
&lt;br /&gt;
	renderMainHeading(builder, 2, data.i18n[#awardKeys == 1 and &amp;#039;award&amp;#039; or &amp;#039;awards&amp;#039;], borderTop)&lt;br /&gt;
&lt;br /&gt;
	builder:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		   :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
		   :wikitext(data.i18n.publication)&lt;br /&gt;
		   :done()&lt;br /&gt;
		   :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
		   :wikitext(data.i18n.award)&lt;br /&gt;
&lt;br /&gt;
	for _, v in ipairs(awardKeys) do&lt;br /&gt;
		builder:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			   :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			   :css(&amp;#039;font-weight&amp;#039;, &amp;#039;bold&amp;#039;)&lt;br /&gt;
			   :css(&amp;#039;background-color&amp;#039;, &amp;#039;#f2f2f2&amp;#039;)&lt;br /&gt;
			   :wikitext(args[v .. &amp;#039;Pub&amp;#039;])&lt;br /&gt;
			   :done()&lt;br /&gt;
			   :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			   :css(&amp;#039;background-color&amp;#039;, &amp;#039;#f2f2f2&amp;#039;)&lt;br /&gt;
			   :wikitext(args[v])&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderMainTable(providedReviewers, providedAggregators, awardKeys, activeSystems, customAggregatorKeys, customReviewerKeys, args, wikidata)&lt;br /&gt;
	local tbl = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
				  :attr(&amp;#039;cellpadding&amp;#039;, 0)&lt;br /&gt;
				  :attr(&amp;#039;cellspacing&amp;#039;, 0)&lt;br /&gt;
				  :css(&amp;#039;background&amp;#039;, &amp;#039;transparent&amp;#039;)&lt;br /&gt;
				  :css(&amp;#039;padding&amp;#039;, &amp;#039;0em&amp;#039;)&lt;br /&gt;
				  :css(&amp;#039;margin&amp;#039;, args.align and&lt;br /&gt;
			((args.align == &amp;#039;right&amp;#039; or args.align == &amp;#039;none&amp;#039;) and &amp;#039;0em 1em 1em 0em&amp;#039;) or&lt;br /&gt;
			&amp;#039;0em 1em 1em 1em&amp;#039;)&lt;br /&gt;
				  :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
				  :css(&amp;#039;float&amp;#039;, args.align or &amp;#039;left&amp;#039;)&lt;br /&gt;
				  :css(&amp;#039;clear&amp;#039;, args.align or &amp;#039;left&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	if #activeSystems == 0 then&lt;br /&gt;
		-- Width: 20% Seems better since it scales with the article size.&lt;br /&gt;
		tbl&lt;br /&gt;
				:css(&amp;#039;width&amp;#039;, args.width or &amp;#039;23em&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.title and args.state and (args.state == &amp;#039;autocollapse&amp;#039;&lt;br /&gt;
			or args.state == &amp;#039;collapsed&amp;#039; or args.state == &amp;#039;expanded&amp;#039;) then&lt;br /&gt;
		tbl&lt;br /&gt;
				:addClass(&amp;#039;collapsible&amp;#039;)&lt;br /&gt;
				:addClass(args.state)&lt;br /&gt;
	end&lt;br /&gt;
	renderTitleRow(tbl, args.title)&lt;br /&gt;
&lt;br /&gt;
	if args.subtitle then&lt;br /&gt;
		tbl:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
		   :wikitext(args.subtitle)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	renderReviews(tbl:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;td&amp;#039;), providedReviewers, providedAggregators, activeSystems, customAggregatorKeys, customReviewerKeys, args)&lt;br /&gt;
	if #awardKeys ~= 0 then&lt;br /&gt;
		renderAwards(tbl:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;td&amp;#039;), args, awardKeys, (#customAggregatorKeys ~= 0 or #customReviewerKeys ~= 0 or #providedAggregators ~= 0 or #providedReviewers ~= 0) and &amp;#039;none&amp;#039; or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if wikidata == true then&lt;br /&gt;
		tbl:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		   :tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
		   :addClass(&amp;#039;infobox wikitable&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;width&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;margin&amp;#039;, &amp;#039;0em&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;border-top&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
		   :attr(&amp;#039;cellpadding&amp;#039;, 3)&lt;br /&gt;
		   :attr(&amp;#039;cellspacing&amp;#039;, 0)&lt;br /&gt;
		   :tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;background&amp;#039;, &amp;#039;#d1dbdf&amp;#039;)&lt;br /&gt;
		   :css(&amp;#039;border-top&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
		   :wikitext(&amp;#039;Edit on wikidata &amp;#039; .. vgwd.getUpdateLink(&amp;#039;nosub&amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function checkForWikidata(frame, args, activeSystems, providedAggregators)&lt;br /&gt;
	local wikidata = false&lt;br /&gt;
&lt;br /&gt;
	vgwd.setDateFormat(args[&amp;quot;df&amp;quot;])&lt;br /&gt;
	vgwd.setGame(args[&amp;quot;qid&amp;quot;])&lt;br /&gt;
	vgwd.setSystem(nil)&lt;br /&gt;
	vgwd.setGenerateReferences(true)&lt;br /&gt;
	vgwd.setShowUpdateLink(false)&lt;br /&gt;
	vgwd.setUpdateLinkStyle(&amp;quot;pen&amp;quot;)&lt;br /&gt;
	vgwd.setSystemFormat(args[&amp;quot;systemFormat&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
	-- Loop through aggregators if we have any.&lt;br /&gt;
	if #providedAggregators ~= 0 then&lt;br /&gt;
		for _, aggr in ipairs(providedAggregators) do&lt;br /&gt;
			-- Check if vgwd knows this aggregator.&lt;br /&gt;
			if vgwd.setReviewer(aggr) == nil then&lt;br /&gt;
				-- Loop through active systems&lt;br /&gt;
				if #activeSystems ~= 0 then&lt;br /&gt;
					for _, sys in ipairs(activeSystems) do&lt;br /&gt;
						local combinedCode = aggr .. &amp;#039;_&amp;#039; .. sys&lt;br /&gt;
						if args[combinedCode] == &amp;#039;wikidata&amp;#039; then&lt;br /&gt;
							vgwd.setSystem(sys)&lt;br /&gt;
							vgwd.setShowSystem(false)&lt;br /&gt;
							local vgwdScore = vgwd.printReviewScores(frame)&lt;br /&gt;
							if vgwdScore then&lt;br /&gt;
								args[combinedCode] = vgwdScore&lt;br /&gt;
							end&lt;br /&gt;
							wikidata = true&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					vgwd.setShowSystem(true)&lt;br /&gt;
					if args[aggr] == &amp;#039;wikidata&amp;#039; then&lt;br /&gt;
						local vgwdScore = vgwd.printReviewScores(frame)&lt;br /&gt;
						if vgwdScore then&lt;br /&gt;
							args[aggr] = vgwdScore&lt;br /&gt;
						end&lt;br /&gt;
						wikidata = true&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return wikidata&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._reviewbox(frame, args)&lt;br /&gt;
	local activeSystems = getActiveSystems(args)&lt;br /&gt;
	local customReviewerKeys, customAggregatorKeys, awardKeys = getArgKeyTables(args)&lt;br /&gt;
	local providedReviewers, providedAggregators = getProvidedReviewersAndAggregators(args, #activeSystems ~= 0)&lt;br /&gt;
	local wikidata = checkForWikidata(frame, args, activeSystems, providedAggregators)&lt;br /&gt;
	if #customAggregatorKeys ~= 0 or #customReviewerKeys ~= 0 or #providedAggregators ~= 0 or #providedReviewers ~= 0 or #awardKeys ~= 0 then&lt;br /&gt;
		return renderMainTable(providedReviewers, providedAggregators, awardKeys, activeSystems, customAggregatorKeys, customReviewerKeys, args, wikidata)&lt;br /&gt;
	elseif mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
		return data.i18n.emptyCategory&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.reviewbox(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	return p._reviewbox(frame, getArgs(frame, { wrappers = data.i18n.wrapper, trim = false, translate = data.argi18n }))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>