Модуль:CommandTable: различия между версиями

Материал из Eco - Русская Wiki
Перейти к:навигация, поиск
[непроверенная версия][досмотренная версия]
Нет описания правки
Нет описания правки
 
(не показано 6 промежуточных версий этого же участника)
Строка 1: Строка 1:
local p = {}
local p = {}
function mySort(a,b)
 
    if  a[1] < b [1] then return true
local Utils = require('Module:Utils')
        else return false
local Lang = Utils.getLanguageName()
    end
end


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


-- import the required modules
-- import the required modules
local commandsData = require( "Module:CommandData" )
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>'
local commands = commandsData.commands
WikiText = TableHeader


-- create the header of the table
for CommandName,CommandData in pairs(Commands) do
local header = "<table class=\"wikitable sortable\"> \n "
local TableRow = ''
header = header .. "<tr> \n "
local CommandDescription = ''
header = header .. "<th>Уровень<br>доступа</th> \n "
local CommandParameters = ''
header = header .. "<th>Команда</th> \n "
local CommandParent = ''
header = header .. "<th>Быстрый<br>вызов</th> \n "
local CommandShortCut = ''
header = header .. "<th>Описание<br>Аргументы</th> \n "
TableRow = TableRow .. '<tr>'
header = header .. "</tr> \n "
wiki = header
table.sort(arr, mySort)
for k,v in pairs(commands) do
local row = ''
row = row .. "<tr> \n "


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


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


row = row .. "<td>" .. v.level.. " </td> \n"
TableRow = TableRow .. '<td>' .. CommandData.level.. ' </td>'
row = row .. "<td><b>/" .. v.parent .. v.command.. "</b></td> \n"
TableRow = TableRow .. '<td><b>/' .. CommandParent .. CommandData.command.. '</b></td>'
row = row .. "<td><b>" .. v.shortCut .. " </td> \n"
TableRow = TableRow .. '<td><b>' .. CommandShortCut .. ' </td>'
row = row .. "<td>" .. v.helpText .. v.parameters .. "</b></td> \n"
if (CommandData.helpText[Lang] == '') then CommandDescription = CommandData.helpText.English else CommandDescription = CommandData.helpText[Lang] end
TableRow = TableRow .. '<td>' .. CommandDescription .. CommandParameters .. '</b></td>'


row = row .. "</tr>"
TableRow = TableRow .. '</tr>'
wiki = wiki .. row
 
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
end
 
WikiText = WikiText .. wikiuser .. wikiadmin .. wikidev
wiki = wiki .. " </table>"
WikiText = WikiText .. ' </table>'
return wiki
return WikiText
end
end


return p
return p

Текущая версия от 10:01, 4 марта 2026

Для документации этого модуля может быть создана страница Модуль:CommandTable/doc

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