<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikiProjectBanner%2FRow</id>
	<title>Module:WikiProjectBanner/Row - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikiProjectBanner%2FRow"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:WikiProjectBanner/Row&amp;action=history"/>
	<updated>2026-05-07T16:53:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:WikiProjectBanner/Row&amp;diff=147663&amp;oldid=prev</id>
		<title>imported&gt;Mr. Stradivarius: add the value type to the _addField error message</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:WikiProjectBanner/Row&amp;diff=147663&amp;oldid=prev"/>
		<updated>2014-08-28T05:13:22Z</updated>

		<summary type="html">&lt;p&gt;add the value type to the _addField error message&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-------------------------------------------------------------------------------&lt;br /&gt;
--                Row class for Module:WikiProjectBanner                     --&lt;br /&gt;
--                                                                           --&lt;br /&gt;
-- This class is a parent class for all WikiProject banner rows, e.g.        --&lt;br /&gt;
-- quality ratings, importance ratings, task forces, notices and requests.   --&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Load required modules.&lt;br /&gt;
local libraryUtil = require(&amp;#039;libraryUtil&amp;#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
&lt;br /&gt;
-- Lazily load modules we might not need.&lt;br /&gt;
local mShared&lt;br /&gt;
&lt;br /&gt;
local Row = {}&lt;br /&gt;
Row.__index = Row&lt;br /&gt;
&lt;br /&gt;
function Row.new(args, bannerData, cfg, rowCfg)&lt;br /&gt;
	-- Validate the input.&lt;br /&gt;
	checkType(&amp;#039;Row.new&amp;#039;, 1, args, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;Row.new&amp;#039;, 2, bannerData, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;Row.new&amp;#039;, 3, cfg, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;Row.new&amp;#039;, 4, rowCfg, &amp;#039;table&amp;#039;, true)&lt;br /&gt;
&lt;br /&gt;
	-- Create the object.&lt;br /&gt;
	local obj = {}&lt;br /&gt;
	setmetatable(obj, Row)&lt;br /&gt;
&lt;br /&gt;
	-- Set the data we were passed.&lt;br /&gt;
	obj.args = args&lt;br /&gt;
	obj.bannerData = bannerData&lt;br /&gt;
	obj.cfg = cfg&lt;br /&gt;
	obj.rowCfg = rowCfg or {}&lt;br /&gt;
&lt;br /&gt;
	-- Define the object structure.&lt;br /&gt;
	obj.categories = {}&lt;br /&gt;
&lt;br /&gt;
	return obj&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Row:isActive()&lt;br /&gt;
	-- To be used only by hooks.&lt;br /&gt;
	mShared = mShared or require(&amp;#039;Module:WikiProjectBanner/shared&amp;#039;)&lt;br /&gt;
	return mShared.isActiveRow(&lt;br /&gt;
		self.args,&lt;br /&gt;
		self.bannerData,&lt;br /&gt;
		self.cfg,&lt;br /&gt;
		self.rowCfg&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Row:_setField(field, val, options)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	local valType = type(val)&lt;br /&gt;
&lt;br /&gt;
	if valType == &amp;#039;function&amp;#039; then&lt;br /&gt;
		val = val{&lt;br /&gt;
			args = self.args,&lt;br /&gt;
			bannerData = self.bannerData,&lt;br /&gt;
			cfg = self.cfg,&lt;br /&gt;
			rowCfg = self.rowCfg&lt;br /&gt;
		}&lt;br /&gt;
		valType = type(val)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if valType == &amp;#039;string&amp;#039; then&lt;br /&gt;
		self[field] = val&lt;br /&gt;
	elseif val ~= nil then&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&amp;#039;the %s value must be a string (received %s)&amp;#039;,&lt;br /&gt;
			field,&lt;br /&gt;
			valType&lt;br /&gt;
		), 3)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	self[field .. &amp;#039;Style&amp;#039;] = options.style&lt;br /&gt;
	self[field .. &amp;#039;Class&amp;#039;] = options.class&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Row:setIcon(...)&lt;br /&gt;
	self:_setField(&amp;#039;icon&amp;#039;, ...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Row:setText(...)&lt;br /&gt;
	self:_setField(&amp;#039;text&amp;#039;, ...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Row:addCategory(cat)&lt;br /&gt;
	table.insert(self.categories, cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Row:exportHtml()&lt;br /&gt;
	local row = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	row&lt;br /&gt;
		:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:addClass(self.iconClass)&lt;br /&gt;
			:css(self.iconStyle or {})&lt;br /&gt;
			:wikitext(self.icon)&lt;br /&gt;
			:done()&lt;br /&gt;
		:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;mbox-text&amp;#039;)&lt;br /&gt;
			:addClass(self.textClass)&lt;br /&gt;
			:attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
			:css(self.textStyle or {})&lt;br /&gt;
			:wikitext(self.text)&lt;br /&gt;
	return row&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Row:exportCategories()&lt;br /&gt;
	return self.categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return Row&lt;/div&gt;</summary>
		<author><name>imported&gt;Mr. Stradivarius</name></author>
	</entry>
</feed>