Neverwinter Wiki
Регистрация
Advertisement

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

local p = {}

local insignia = {
    ['Универсальная ячейка']       = '[[Файл:Универсальная ячейка знаков.png|32px|Универсальная ячейка знаков|ссылка=]]',
    ['универсальная ячейка']       = '[[Файл:Универсальная ячейка знаков.png|32px|Универсальная ячейка знаков|ссылка=]]',
    ['Ячейка просвещенных знаков'] = '[[Файл:Просвещенный знак.png|32px|Ячейка просвещенных знаков|ссылка=]]',
    ['ячейка просвещенных знаков'] = '[[Файл:Просвещенный знак.png|32px|Ячейка просвещенных знаков|ссылка=]]',
    ['Ячейка серповидных знаков']  = '[[Файл:Серповидный знак.png|32px|Ячейка серповидных знаков|ссылка=]]',
    ['ячейка серповидных знаков']  = '[[Файл:Серповидный знак.png|32px|Ячейка серповидных знаков|ссылка=]]',
    ['Ячейка украшенных знаков']   = '[[Файл:Украшенный знак.png|32px|Ячейка украшенных знаков|ссылка=]]',
    ['ячейка украшенных знаков']   = '[[Файл:Украшенный знак.png|32px|Ячейка украшенных знаков|ссылка=]]',
    ['Ячейка царственных знаков']  = '[[Файл:Царственный знак.png|32px|Ячейка царственных знаков|ссылка=]]',
    ['ячейка царственных знаков']  = '[[Файл:Царственный знак.png|32px|Ячейка царственных знаков|ссылка=]]',
    ['Ячейка шипастых знаков']     = '[[Файл:Шипастый знак.png|32px|Ячейка шипастых знаков|ссылка=]]',
    ['ячейка шипастых знаков']     = '[[Файл:Шипастый знак.png|32px|Ячейка шипастых знаков|ссылка=]]',
}

function p.Main( frame )
    local cargo = mw.ext.cargo
    tables = 'Insignia_bonuses'
    fields = '_pageName, slot1, slot2, slot3, slot4, description'
    local args = {
        orderBy = "_pageName",
    }
    local result = cargo.query( tables, fields, args )
    local text = {}

    for i,row in ipairs(result) do
        text[i] = '<li>[[' .. row._pageName .. ']]</li>'
    end
    return '<ul style="column-count: 5;">'..table.concat(text)..'</ul>'
end

function p.Table( frame )
    local cargo = mw.ext.cargo
    local tables = 'Insignia_bonuses'
    local fields = '_pageName, slot1, slot2, slot3, slot4, description'
    local args = {
        orderBy = "_pageName",
    }
    local result = cargo.query( tables, fields, args )
    local r = result[1]

    --Start the table
    local tbl = mw.html.create('table')
        tbl:addClass('wikitable sortable insignia-bonuses-table jquery-tablesorter')
        tbl:tag("th"):attr('style', 'width: 4%'):wikitext("Бонус знака"):done()
        tbl:tag("th"):attr('style', 'width: 30%'):wikitext("Описание"):done()
        tbl:done()
	for _, row in ipairs(result) do
	    local slots = {}
	    
	    for i = 1, 4 do
	        local slot = row["slot"..i]
	        if slot ~= '' then
	            table.insert(slots, slot)
	        end
	    end

        local mounts_result = cargo.query( 'Items', 'name, insignia_bonuses', { where = 'insignia_bonuses HOLDS LIKE "%' .. row._pageName ..'%"' })
        local mounts = {}

        for i, item in ipairs(mounts_result) do
            mounts[i] = item.name
        end

	    local tr = tbl:tag("tr"):attr("data-filter", table.concat(slots, ', ')):attr("data-mounts", table.concat(mounts, ', '))
	    
	    local insignias = {}
	    for _, slot in ipairs(slots) do
	        table.insert(insignias, insignia[slot])
	    end
	    
	    tr:tag("td"):attr('style', 'text-align: center;'):wikitext('[[' .. row._pageName .. ']]<br>' .. table.concat(insignias, ' ')):done()
	    tr:tag("td"):wikitext(row.description):done()
	end
    return tbl
end

return p
Advertisement