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

Материал из Space Station 14 Вики
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
local p = {}
local p = {}
function p.getServersInfo(frame)
local servers = frame.args[1]
local categories = servers
if servers == "none" or servers == "None" or servers == "" then return end
--Дублируется специально, на случай, если кто-то поставит или не поставит побелы
servers = servers:gsub(', ', '}}\n:*{{abb|')
servers = servers:gsub(',', '}}\n:*{{abb|')
categories = categories:gsub(', ', '|short}}]] [[Категория:Редакторы {{abb|')
categories = categories:gsub(',', '|short}}]] [[Категория:Редакторы {{abb|')
return frame:preprocess(':*{{abb|'.. servers.. '}} '.. '[[Категория:Редакторы {{abb|'.. categories.. '|short}}]]') --нужно сделать проверку, что сервер существует
end


function p.addSubdivision(frame)
-- Функция для добавления категории в зависимости от названия подразделения
function p.addCategory(frame)
     -- Получаем параметр 'subdivision' из шаблона
     -- Получаем параметр 'subdivision' из шаблона
     local subdivision = frame.args['subdivision'] or ''
     local subdivision = frame.args['subdivision'] or ''
Строка 20: Строка 8:
     -- Таблица с соответствиями подразделений и категорий
     -- Таблица с соответствиями подразделений и категорий
     local categories = {
     local categories = {
         ["Редакция"] = "Категория:Редакция",
         ["Отдел A"] = "Категория:Отдел A",
         ["Отдел B"] = "Категория:Отдел B",
         ["Отдел B"] = "Категория:Отдел B",
         ["Отдел C"] = "Категория:Отдел C"
         ["Отдел C"] = "Категория:Отдел C"
Строка 34: Строка 22:
end
end


function p.getRolesInfo(frame)
local roles = frame.args[1]
--Делим строку на составляющие. Разделитель: ", "
t = {}
for str in string.gmatch(roles, "([^, ]+)") do
table.insert(t, str)
end
--Убирает ", ", если они были для последующем проверки (чтобы она не нашла запятых)
roles = roles:gsub(', ', 'Cool meme here')
--вторая проверка, на случай, если пробелы не ставились
for str in string.gmatch(roles, "([^,]+)") do
table.insert(t, str)
end
local categories = ""
for i in pairs(t) do
if t[i] == "Куратор вики" or t[i] == "куратор вики" then categories = categories.. "[[Категория:Кураторы разделов]]" end
if t[i] == "Всевышнее Око" or t[i] == "всевышнее око" then categories = categories.. "[[Категория:Всевышнее Око]]" end
if t[i] == "Манускрипт" or t[i] == "манускрипт" then categories = categories.. "[[Категория:Манускрипт]]" end
if t[i] == "Шаблонайзер" or t[i] == "шаблонайзер" then categories = categories.. "[[Категория:Шаблонайзеры]]" end
if t[i] == "Инструктор Редакции" or t[i] == "инструктор редакции" then categories = categories.. "[[Категория:Инструкторы Редакции]]" end
end
if categories == "" then categories = categories.. "[[Категория:Доступ к вики]]" end
if roles == "none" or roles == "None" then return ""
else return frame:preprocess(categories) end
end
return p
return p

Версия от 14:41, 11 августа 2024

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

local p = {}

-- Функция для добавления категории в зависимости от названия подразделения
function p.addCategory(frame)
    -- Получаем параметр 'subdivision' из шаблона
    local subdivision = frame.args['subdivision'] or ''

    -- Таблица с соответствиями подразделений и категорий
    local categories = {
        ["Отдел A"] = "Категория:Отдел A",
        ["Отдел B"] = "Категория:Отдел B",
        ["Отдел C"] = "Категория:Отдел C"
    }

    -- Если подразделение есть в таблице, добавляем соответствующую категорию
    if categories[subdivision] then
        return '[[' .. categories[subdivision] .. ']]'
    end

    -- Если нет соответствующего подразделения, не добавляем категорию
    return ''
end

return p