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

Материал из Space Station 14 Вики
Нет описания правки
Нет описания правки
Строка 7: Строка 7:
     -- Контейнер для категорий
     -- Контейнер для категорий
     local categoriesDiv = html:tag('div'):addClass('categories')
     local categoriesDiv = html:tag('div'):addClass('categories')
   
 
     -- Контейнер для меню и контента
     -- Контейнер для меню и контента
     local mainContainer = html:tag('div'):addClass('main-container')
     local mainContainer = html:tag('div'):addClass('main-container')
Строка 13: Строка 13:
     local contentContainer = mainContainer:tag('div'):addClass('content')
     local contentContainer = mainContainer:tag('div'):addClass('content')


     -- Проходим по всем параметрам и генерируем HTML
     -- Проходим по всем категориям
     for i = 1, 10 do
     local i = 1
    while args['category' .. i] do
         local category = args['category' .. i]
         local category = args['category' .. i]
         if category then
         categoriesDiv:tag('div'):addClass('category' .. i):wikitext(category)
            -- Добавляем категорию в categories
            categoriesDiv:tag('div'):addClass('category' .. i):wikitext(category)
 
            -- Создаём меню для этой категории
            local menu = menuContainer:tag('div'):addClass('menu'):addClass('category' .. i .. '-menu')
            for j = 1, 10 do
                local paragraph = args['category' .. i .. '-paragraph' .. j]
                local paragraphContent = args['category' .. i .. '-paragraph' .. j .. '-content']
                if paragraph and paragraphContent then
                    -- Добавляем пункт в меню
                    menu:tag('div'):addClass('category' .. i .. '-paragraph' .. j):wikitext(paragraph)


                    -- Добавляем контент для пункта
        -- Создаём меню для этой категории
                    contentContainer:tag('div'):addClass('category' .. i .. '-paragraph' .. j .. '-content'):wikitext(paragraphContent)
        local menu = menuContainer:tag('div'):addClass('menu'):addClass('category' .. i .. '-menu')
                end
        local j = 1
             end
        while args['category' .. i .. '-paragraph' .. j] do
            local paragraph = args['category' .. i .. '-paragraph' .. j]
            local paragraphContent = args['category' .. i .. '-paragraph' .. j .. '-content']
            menu:tag('div'):addClass('category' .. i .. '-paragraph' .. j):wikitext(paragraph)
            contentContainer:tag('div'):addClass('category' .. i .. '-paragraph' .. j .. '-content'):wikitext(paragraphContent)
             j = j + 1
         end
         end
        i = i + 1
     end
     end



Версия от 02:15, 19 сентября 2024

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

local p = {}

function p.generate(frame)
    local args = frame:getParent().args
    local html = mw.html.create()

    -- Контейнер для категорий
    local categoriesDiv = html:tag('div'):addClass('categories')

    -- Контейнер для меню и контента
    local mainContainer = html:tag('div'):addClass('main-container')
    local menuContainer = mainContainer:tag('div'):addClass('menu-container')
    local contentContainer = mainContainer:tag('div'):addClass('content')

    -- Проходим по всем категориям
    local i = 1
    while args['category' .. i] do
        local category = args['category' .. i]
        categoriesDiv:tag('div'):addClass('category' .. i):wikitext(category)

        -- Создаём меню для этой категории
        local menu = menuContainer:tag('div'):addClass('menu'):addClass('category' .. i .. '-menu')
        local j = 1
        while args['category' .. i .. '-paragraph' .. j] do
            local paragraph = args['category' .. i .. '-paragraph' .. j]
            local paragraphContent = args['category' .. i .. '-paragraph' .. j .. '-content']
            menu:tag('div'):addClass('category' .. i .. '-paragraph' .. j):wikitext(paragraph)
            contentContainer:tag('div'):addClass('category' .. i .. '-paragraph' .. j .. '-content'):wikitext(paragraphContent)
            j = j + 1
        end
        i = i + 1
    end

    -- Возвращаем сгенерированный HTML-код
    return tostring(html)
end

return p