Gamepedia Help Wiki
No edit summary
No edit summary
Line 41: Line 41:
 
end
 
end
 
 
  +
local exttext = ''
if extensionrights ~= {} then
 
text = text .. '<h3>From non-default extensions</h3>\n'
 
end
 
 
 
 
--and extension rights
 
--and extension rights
 
for extension, rights in pairs(extensionrights) do
 
for extension, rights in pairs(extensionrights) do
text = text .. '\n<h4>' .. extension .. '</h4>\n'
+
exttext = exttext .. '\n<h4>' .. extension .. '</h4>\n'
 
for i, right in ipairs(rights) do
 
for i, right in ipairs(rights) do
text = text .. '* ' .. frame:preprocess(mw.message.new('right-' .. right['right']):inLanguage(mw.getContentLanguage()):plain()) .. ' <code>(' .. right['right'] .. ')</code>\n'
+
exttext = exttext .. '* ' .. frame:preprocess(mw.message.new('right-' .. right['right']):inLanguage(mw.getContentLanguage()):plain()) .. ' <code>(' .. right['right'] .. ')</code>\n'
 
end
 
end
 
end
  +
  +
if exttext > '' then
 
text = text .. '<h3>From non-default extensions</h3>\n' .. exttext
 
end
 
end
 
return text
 
return text

Revision as of 01:45, 2 April 2019

Template-info Documentation

This module has three configurable variables:

  • user_rights = 'User rights',
  • extension_ns = 'Extension',
  • non_default_ext = 'From non-default extensions'

These should be updated to reflect the language-specific text.

Subpages

The above documentation is transcluded from Module:User group rights/doc.[edit | history | purge]

local p = {}

function p.tableSort(t1, t2) 
	local l1 = mw.message.new('right-' .. t1['right']):inLanguage(mw.getContentLanguage()):plain()
	local l2 = mw.message.new('right-' .. t2['right']):inLanguage(mw.getContentLanguage()):plain()
	if l1 < l2 then 
		return true
	end
	return false
end

function p.main(frame)
	local rights = mw.loadData('Module:User_group_rights/data')
	local group = frame:getParent().args[1]
	local grouprights = {}
	local text = '<h2>User rights</h2>\n'
	--get the rights in the selected group
	for i, right in ipairs(rights) do
		for i2, g in ipairs(right['groups']) do
			if g == group then
				table.insert(grouprights, right)
			end
		end
	end
	
	--now we sort the rights by the localized right description
	table.sort(grouprights, p.tableSort)
	
	local extensionrights = {}
	--and now process default rights
	for i, right in ipairs(grouprights) do
		if right['extension'] == nil then
			text = text .. '* ' .. frame:preprocess(mw.message.new('right-' .. right['right']):inLanguage(mw.getContentLanguage()):plain()) .. ' <code>(' .. right['right'] .. ')</code>\n'
		else 
			if extensionrights[right['extension']] == nil then
				extensionrights[right['extension']] = { right }
			else
				table.insert(extensionrights[right['extension']], right)
			end
		end
	end
	
	local exttext = ''
	
	--and extension rights
	for extension, rights in pairs(extensionrights) do
		exttext = exttext .. '\n<h4>' .. extension .. '</h4>\n'
		for i, right in ipairs(rights) do
			exttext = exttext .. '* ' .. frame:preprocess(mw.message.new('right-' .. right['right']):inLanguage(mw.getContentLanguage()):plain()) .. ' <code>(' .. right['right'] .. ')</code>\n'	
		end
	end
	
	if exttext > '' then
		text = text .. '<h3>From non-default extensions</h3>\n'	.. exttext
	end
	return text
end

return p