« Module:CommandTable » : différence entre les versions

De Eco - Wiki Français
Aller à :navigation, rechercher
[version vérifiée][version vérifiée]
Aucun résumé des modifications
Aucun résumé des modifications
 
Ligne 5 : Ligne 5 :


function p.main()
function p.main()
local wiki = ''
local WikiText = ''
local TableHeader = ''
local wikiuser = ''
local wikiuser = ''
local wikiadmin = ''
local wikiadmin = ''
local wikidev = ''
local wikidev = ''


local commandsData = require("Module:CommandData")
-- import the required modules
local commands = commandsData.commands
local CommandData = mw.loadData( "Module:CommandData" )
local Commands = CommandData.commands


-- Table header
-- Create the header of the table
local header = '<table class="wikitable sortable">\n'
TableHeader = '<table class="table table-striped table-bordered sortable"><tr class="thead-dark">'  
header = header .. '<tr>\n'
TableHeader = TableHeader .. '<th>Access<br>level</th>'
header = header .. '<th>Access<br>level</th>\n'
TableHeader = TableHeader .. '<th>Command</th>'
header = header .. '<th>Command</th>\n'
TableHeader = TableHeader .. '<th>Short<br>call</th>'
header = header .. '<th>Short<br>call</th>\n'
TableHeader = TableHeader .. '<th class="unsortable">Description<br>Arguments</th>'
header = header .. '<th>Description<br>Arguments</th>\n'
header = header .. '</tr>\n'
WikiText = TableHeader


wiki = header
for CommandName,CommandData in pairs(Commands) do
local TableRow = ''
local CommandDescription = ''
local CommandParameters = ''
local CommandParent = ''
local CommandShortCut = ''
TableRow = TableRow .. '<tr>'


for _, v in pairs(commands) do
if (CommandData.parent == nil) then CommandParent = '' else CommandParent = CommandData.parent .. " " end
local row = ''
if (CommandData.parameters == nil) then CommandParameters = '-'
 
-- Sécurisation parent
local parent = v.parent or ''
if parent ~= '' then parent = parent .. ' ' end
 
-- Construction arguments
local argsText = ''
if v.parameters then
local function fmt(arg)
if not arg then return '' end
return "<br><b>" .. arg[1] .. "</b> (" .. arg[2] .. ")"
end
argsText =
fmt(v.parameters.Arg1)
.. fmt(v.parameters.Arg2)
.. fmt(v.parameters.Arg3)
.. fmt(v.parameters.Arg4)
.. fmt(v.parameters.Arg5)
.. fmt(v.parameters.Arg6)
else
else
argsText = '-'
if (CommandData.parameters.Arg1 ~= nil) then ARG1 = '<br><b>' .. CommandData.parameters.Arg1[1] .. '</b> (' .. CommandData.parameters.Arg1[2] .. ')' else ARG1 = '' end
if (CommandData.parameters.Arg2 ~= nil) then ARG2 = ', <b>' .. CommandData.parameters.Arg2[1] .. '</b> (' .. CommandData.parameters.Arg2[2] .. ')' else ARG2 = '' end
if (CommandData.parameters.Arg3 ~= nil) then ARG3 = ', <b>' .. CommandData.parameters.Arg3[1] .. '</b> (' .. CommandData.parameters.Arg3[2] .. ')' else ARG3 = '' end
if (CommandData.parameters.Arg4 ~= nil) then ARG4 = ', <b>' .. CommandData.parameters.Arg4[1] .. '</b> (' .. CommandData.parameters.Arg4[2] .. ')' else ARG4 = '' end
if (CommandData.parameters.Arg5 ~= nil) then ARG5 = ', <b>' .. CommandData.parameters.Arg5[1] .. '</b> (' .. CommandData.parameters.Arg5[2] .. ')' else ARG5 = '' end
if (CommandData.parameters.Arg6 ~= nil) then ARG6 = ', <b>' .. CommandData.parameters.Arg6[1] .. '</b> (' .. CommandData.parameters.Arg6[2] .. ')' else ARG6 = '' end
CommandParameters = ARG1 .. ARG2 .. ARG3 .. ARG4 .. ARG5 .. ARG6
end
end


-- Shortcut
if (CommandData.shortCut ~= '') then CommandShortCut = '/' .. CommandData.shortCut else CommandShortCut = '' end
local shortcut = v.shortCut or ''
if shortcut ~= '' then
shortcut = '/' .. shortcut
end


-- Description
TableRow = TableRow .. '<td>' .. CommandData.level.. ' </td>'
local help = ''
TableRow = TableRow .. '<td><b>/' .. CommandParent .. CommandData.command.. '</b></td>'
if v.helpText then
TableRow = TableRow .. '<td><b>' .. CommandShortCut .. ' </td>'
help = v.helpText[Lang] or v.helpText.English or ''
if (CommandData.helpText[Lang] == '') then CommandDescription = CommandData.helpText.English else CommandDescription = CommandData.helpText[Lang] end
end
TableRow = TableRow .. '<td>' .. CommandDescription .. CommandParameters .. '</b></td>'


-- Ligne HTML
TableRow = TableRow .. '</tr>'
row = row .. '<tr>\n'
row = row .. '<td>' .. (v.level or '') .. '</td>\n'
row = row .. '<td><b>/' .. parent .. (v.command or '') .. '</b></td>\n'
row = row .. '<td><b>' .. shortcut .. '</b></td>\n'
row = row .. '<td>' .. help .. argsText .. '</td>\n'
row = row .. '</tr>\n'


-- Tri par niveau d’accès
if ( CommandData.level == 'User' ) then wikiuser = wikiuser .. TableRow end
if v.level == 'User' then
if ( CommandData.level == 'Admin' ) then wikiadmin = wikiadmin .. TableRow end
wikiuser = wikiuser .. row
if ( CommandData.level == 'DevTier' ) then wikidev = wikidev .. TableRow end
elseif v.level == 'Admin' then
end
wikiadmin = wikiadmin .. row
WikiText = WikiText .. wikiuser .. wikiadmin .. wikidev
elseif v.level == 'DevTier' then
WikiText = WikiText .. ' </table>'
wikidev = wikidev .. row
return WikiText
end
end
end
wiki = wiki .. wikiuser .. wikiadmin .. wikidev .. '</table>'
return wiki
end


return p
return p

Dernière version du 8 mars 2026 à 13:24

Documentation

[modifier le wikicode]

Ce module fournit la fonctionnalité de backend du Modèle:ChatCommands.

Si le modèle est utilisé, ce module crée une liste en utilisant les détails des modules suivants :

La liste originale des commandes de chat a été créée par Utilisateur:StalEF.


local p = {}

local Utils = require('Module:Utils')
local Lang = Utils.getLanguageName()

function p.main()
	local WikiText = ''
	local TableHeader = ''
	local wikiuser = ''
	local wikiadmin = ''
	local wikidev = ''

	-- import the required modules
	local CommandData = mw.loadData( "Module:CommandData" )	
	local Commands = CommandData.commands

	-- Create the header of the table
	TableHeader = '<table class="table table-striped table-bordered sortable"><tr class="thead-dark">' 
	TableHeader = TableHeader .. '<th>Access<br>level</th>'
	TableHeader = TableHeader .. '<th>Command</th>'
	TableHeader = TableHeader .. '<th>Short<br>call</th>'
	TableHeader = TableHeader .. '<th class="unsortable">Description<br>Arguments</th>'
	
	WikiText = TableHeader

	for CommandName,CommandData in pairs(Commands) do
		local TableRow = ''
		local CommandDescription = ''
		local CommandParameters = ''
		local CommandParent = ''
		local CommandShortCut = ''
		TableRow = TableRow .. '<tr>'

		if (CommandData.parent == nil) then CommandParent = '' else CommandParent = CommandData.parent .. " " end
		if (CommandData.parameters == nil) then CommandParameters = '-'
		else
			if (CommandData.parameters.Arg1 ~= nil) then ARG1 = '<br><b>' .. CommandData.parameters.Arg1[1] .. '</b> (' .. CommandData.parameters.Arg1[2] .. ')' else ARG1 = '' end
			if (CommandData.parameters.Arg2 ~= nil) then ARG2 = ', <b>' .. CommandData.parameters.Arg2[1] .. '</b> (' .. CommandData.parameters.Arg2[2] .. ')' else ARG2 = '' end
			if (CommandData.parameters.Arg3 ~= nil) then ARG3 = ', <b>' .. CommandData.parameters.Arg3[1] .. '</b> (' .. CommandData.parameters.Arg3[2] .. ')' else ARG3 = '' end
			if (CommandData.parameters.Arg4 ~= nil) then ARG4 = ', <b>' .. CommandData.parameters.Arg4[1] .. '</b> (' .. CommandData.parameters.Arg4[2] .. ')' else ARG4 = '' end
			if (CommandData.parameters.Arg5 ~= nil) then ARG5 = ', <b>' .. CommandData.parameters.Arg5[1] .. '</b> (' .. CommandData.parameters.Arg5[2] .. ')' else ARG5 = '' end
			if (CommandData.parameters.Arg6 ~= nil) then ARG6 = ', <b>' .. CommandData.parameters.Arg6[1] .. '</b> (' .. CommandData.parameters.Arg6[2] .. ')' else ARG6 = '' end
			CommandParameters = ARG1 .. ARG2 .. ARG3 .. ARG4 .. ARG5 .. ARG6
		end

		if (CommandData.shortCut ~= '') then CommandShortCut = '/' .. CommandData.shortCut else CommandShortCut = '' end

		TableRow = TableRow .. '<td>' .. CommandData.level.. ' </td>'
		TableRow = TableRow .. '<td><b>/' .. CommandParent .. CommandData.command.. '</b></td>'
		TableRow = TableRow .. '<td><b>' .. CommandShortCut .. ' </td>'
		if (CommandData.helpText[Lang] == '') then CommandDescription = CommandData.helpText.English else CommandDescription = CommandData.helpText[Lang] end
		TableRow = TableRow .. '<td>' .. CommandDescription .. CommandParameters .. '</b></td>'

		TableRow = TableRow .. '</tr>'

		if ( CommandData.level == 'User' ) then wikiuser = wikiuser .. TableRow end
		if ( CommandData.level == 'Admin' ) then wikiadmin = wikiadmin .. TableRow end
		if ( CommandData.level == 'DevTier' ) then wikidev = wikidev .. TableRow end
	end
	WikiText = WikiText .. wikiuser .. wikiadmin .. wikidev
	WikiText = WikiText .. ' </table>'
	return WikiText
	end

return p