Module:CareerList: Difference between revisions

From Porn Base Central
Jump to navigation Jump to search
Content deleted Content added
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 4: Line 4:
function p.makeTableTop()
function p.makeTableTop()
local headerRow = mw.html.create('tr')
local headerRow = mw.html.create('tr')
:node(mw.html.create('th'):wikitext('Site'))
:node(mw.html.create('th'):wikitext('site'))
:node(mw.html.create('th'):wikitext('ID'))
:node(mw.html.create('th'):wikitext('id'))
:node(mw.html.create('th'):wikitext('Alias'))
:node(mw.html.create('th'):wikitext('alias'))
:node(mw.html.create('th'):wikitext('Notes'))
:node(mw.html.create('th'):wikitext('notes'))
:done()
:done()


Line 29: Line 29:


local function getAlias(alias, title)
local function getAlias(alias, title)
if not alias or alias == '' then
if not alias or alias == '' then
return title
return 'N/A'
else
else
return alias
return alias
end
end
end
end


local function getNotes(notes)
local function getNotes(notes)
if not notes or notes == '' then
if not notes or notes == '' then
return 'N/A'
return 'N/A'
else
else
return notes
return notes
end
end
end
end


if not args.site then
if not args.site then
return mw.html.create('tr')
return mw.html.create('tr')
:css('background-color', getColor(args.index))
:css('background-color', getColor(args.rowIndex))
:node(mw.html.create('td'):attr('colspan', '4'):wikitext('Invalid arguments. Please see documentation for correct usage.'))
:node(mw.html.create('td'):attr('colspan', '4'):wikitext('Invalid arguments. Please see documentation for correct usage.'))
:done()
:done()
Line 53: Line 53:
local site = args.site or mw.title.getCurrentTitle().text
local site = args.site or mw.title.getCurrentTitle().text
local id = args.id or ''
local id = args.id or ''
local alias = getAlias(args.alias, args.site)
local alias = getAlias(args.alias, site)
local notes = getNotes(args.notes or '')
local notes = getNotes(args.notes)
local background = getBackground(site)
local background = getBackground(site)


Line 72: Line 72:
:css('background-color', background)
:css('background-color', background)
:css('padding', '8px')
:css('padding', '8px')
:wikitext(alias) -- исправление 2
:wikitext(aliasCell)
:done()
:done()


Line 78: Line 78:
:css('background-color', background)
:css('background-color', background)
:css('padding', '8px')
:css('padding', '8px')
:wikitext(notes) -- исправление 3
:wikitext(notesCell)
:done()
:done()


return mw.html.create('tr')
return mw.html.create('tr')
:css('background-color', getColor(args.index)) -- исправление 1
:css('background-color', getColor(args.rowIndex))
:node(cell)
:node(cell)
:node(idCell)
:node(idCell)

Latest revision as of 01:59, 13 March 2023

Documentation for this module may be created at Module:CareerList/doc

local p = {}

-- Функция для создания таблицы
function p.makeTableTop()
    local headerRow = mw.html.create('tr')
        :node(mw.html.create('th'):wikitext('site'))
        :node(mw.html.create('th'):wikitext('id'))
        :node(mw.html.create('th'):wikitext('alias'))
        :node(mw.html.create('th'):wikitext('notes'))
        :done()

    return mw.html.create('table')
        :css('width', '100%')
        :node(headerRow)
        :done()
end

-- Функция для создания ячейки таблицы
function p.makeCell(cellType, args)
    local function getColor(index)
        return ((index or 0) % 2 == 0) and '#F3F3F3' or '#FFFFFF'
    end

    local function getBackground(site)
        local config = mw.loadData('Module:CareerList/config')
        local color = (cellType == 'Studio') and '#DADADA' or '#E7E7E7'
        return config[site] and color or '#FFFFFF'
    end

    local function getAlias(alias, title)
    if not alias or alias == '' then
        return 'N/A'
    else
        return alias
    end
end

    local function getNotes(notes)
    if not notes or notes == '' then
        return 'N/A'
    else
        return notes
    end
end

    if not args.site then
        return mw.html.create('tr')
            :css('background-color', getColor(args.rowIndex))
            :node(mw.html.create('td'):attr('colspan', '4'):wikitext('Invalid arguments. Please see documentation for correct usage.'))
            :done()
    end

    local site = args.site or mw.title.getCurrentTitle().text
    local id = args.id or ''
    local alias = getAlias(args.alias, site)
    local notes = getNotes(args.notes)
    local background = getBackground(site)

    local cell = mw.html.create('td')
        :css('background-color', background)
        :css('padding', '8px')
        :wikitext(p.getSiteLink(site))
        :done()

    local idCell = mw.html.create('td')
        :css('background-color', background)
        :css('padding', '8px')
        :wikitext(id)
        :done()

    local aliasCell = mw.html.create('td')
        :css('background-color', background)
        :css('padding', '8px')
        :wikitext(aliasCell)
        :done()

    local notesCell = mw.html.create('td')
        :css('background-color', background)
        :css('padding', '8px')
        :wikitext(notesCell)
        :done()

    return mw.html.create('tr')
        :css('background-color', getColor(args.rowIndex))
        :node(cell)
        :node(idCell)
        :node(aliasCell)
        :node(notesCell)
        :done()
end
-- Функция для определения ссылки на сайт
function p.getSiteLink(site)
local config = mw.loadData('Module:CareerList/config')
site = site:lower()
if config[site] then
local url = config[site].url
local id = mw.text.encode(site.id)
return string.format('[%s %s]', url:gsub('$1', id), site)
else
return site
end
end

-- Функция для обработки аргументов
function p.processArgs(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:CareerList'
})
local site = args[1] or ''
local id = args[2] or ''
local alias = args[3] or ''
local notes = args[4] or ''

if site == '' then
    return '<strong class="error">Error: </strong>Site parameter is required'
else
    site = site:lower()
    if not mw.loadData('Module:CareerList/config')[site] then
        return '<strong class="error">Error: </strong>Invalid site specified'
    else
        return p.makeCell(site, id, alias, notes)
    end
end
end

-- Главная функция модуля
function p.main(frame)
local tableTop = p.makeTableTop()
local tableRows = ''
for i = 1, 999 do
local result = p.processArgs(frame:getParent())
if type(result) == 'string' then
return result
elseif not result then
break
else
tableRows = tableRows .. tostring(result)
end
end
return tostring(tableTop) .. tableRows .. '</table>'
end

return p