Path of Exile Wiki

Wiki поддерживается сообществом, поэтому подумайте над тем, чтобы внести свой вклад.

ПОДРОБНЕЕ

Path of Exile Wiki
Advertisement
Path of Exile Wiki
50 331
страница
Документация модуля[просмотр] [править] [история] [очистить]

Реализует {{Item class infocard}}.

-------------------------------------------------------------------------------
-- 
--                        Module:Item class infocard
-- 
-- This module implements Template:Item class infocard
-------------------------------------------------------------------------------

-- ----------------------------------------------------------------------------
-- Includes
-- ----------------------------------------------------------------------------

local getArgs = require('Module:Arguments').getArgs
local m_util = require('Module:Util')
local m_game = mw.loadData('Module:Game')

local i18n = {
    page = '[[Класс предметов]]',
    info = m_util.html.abbr('(?)', 'Классы предметов помогают классифицировать предметы. Классы в основном используются для разграничения предметов или камней умений по определенному классу или для создания фильтров предметов.'),
    also_referred_to_as = 'Также упоминается как:',

    errors = {
        invalid_class = 'Название класса предметов "%s" недопустимо.',
    },
}

-- ----------------------------------------------------------------------------
-- Exported functions
-- ----------------------------------------------------------------------------
local p = {}

function p.main(frame)
    -- Get args
    local tpl_args = getArgs(frame, {
        parentFirst = true
    })
    frame = m_util.misc.get_frame(frame)
    
    if not doInfoCard then
        doInfoCard = require('Module:Infocard')._main
    end
    
    local err = true
    for _, row in pairs(m_game.constants.item.classes) do
        if row['full'] == tpl_args.name then
            err = false
            break
        end
    end
    
    if err then
        error(string.format(i18n.errors.invalid_class, tostring(tpl_args.name)))
    end
    
    if tpl_args.name_list ~= nil then
        tpl_args.name_list = m_util.string.split(tpl_args.name_list, ',%s*')
    else
        tpl_args.name_list = {}
    end
    
    --
    
    local ul = mw.html.create('ul')
    for _, item in ipairs(tpl_args.name_list) do
        ul
            :tag('li')
                :wikitext(item)
                :done()
    end
    

    -- Output Infocard
    
    local tplargs = {
        ['header'] = tpl_args.name,
        ['subheader'] = i18n.page .. i18n.info,
        [1] = i18n.also_referred_to_as .. tostring(ul),
    }
    
    -- cats
    
    local cats = {
        'Классы предметов',
        tpl_args.name,
    }
    
    -- Done
    
    return doInfoCard(tplargs) .. m_util.misc.add_category(cats, {ignore_blacklist=tpl_args.debug})
end

return p
Advertisement