Module:Variants: Difference between revisions

715 bytes added ,  Yesterday at 19:50
Add logic for main variants table (so they are sorted the same)
(Fix error when no variant smw data exists, and add tracking category)
(Add logic for main variants table (so they are sorted the same))
Line 8:
end
 
function format_entryget_table_info(entryargs, get_images)
-- Format the search result as [[Page]]. At the moment, don't include profession data in the table
local page = entry[1]
return page
end
 
function get_table_info(args)
local variant_name = args.variant or mw.title.getCurrentTitle().fullText
local query = {
'[[Variant of::'..variant_name..']]',
-- '?Profession A',
'?Profession Level A',
-- '?Profession B',
'?Profession Level B',
get_images and '?Image#64px;x64px = Image' or nil,
limit = args.limit or 500,
}
local smw_data = mw.smw.ask(query)
if not smw_data then
return {'[[Category:Empty variant list]]'}nil
end
table.sort(smw_data, sort_entries)
return smw_data
local table_contents = {}
for _, entry in ipairs(smw_data) do
table.insert(table_contents, format_entry(entry))
end
return table_contents
end
 
function p.variant_tablevariants_header(args)
local elementssmw_data = get_table_info(args)
local contents
local table_contents = table.concat(elements, ' • ')
if smw_data then
local html = mw.html.create('div'):addClass('variants-header'):wikitext(table_contents)
local table_contentsformatted = {}
return html
for _, entry in ipairs(smw_data) do
table.insert(table_contentsformatted, format_entry(entry)[1])
end
local table_contents contents = table.concat(elementsformatted, ' • ')
else
contents = '[[Category:Empty variant list]]'
end
return mw.html.create('div')
:addClass('variants-header')
:wikitext(contents)
:done()
end
 
Line 46:
local args = frame:getParent().args
args.variant = args[1] or args.variant
return p.variant_tablevariants_header(args)
end
 
function get_table_infop.variants_table(args)
local smw_data = get_table_info(args, true)
if not smw_data then
return ':No variants found.'
end
local table = mw.html.create('table')
:addClass('sortable wikitable')
:tag('tr')
:tag('th')
:attr{ colspan = '2' }
:wikitext('Item')
:done()
:tag('th')
:wikitext('Level')
:done()
:done()
 
for _, entry in ipairs(smw_data) do
table
:tag('tr')
:tag('td')
:css{ ['border-right'] = 'none' }
:wikitext(entry.Image)
:done()
:tag('td')
:css{ ['border-left'] = 'none' }
:wikitext(entry[1])
:done()
:tag('td')
:wikitext(entry['Profession Level A'])
:done()
:done()
end
 
return pagetable
end
 
function p.main_table(frame)
local args = frame:getParent().args
args.variant = args[1] or args.variant
return p.variants_table(args)
end
 
227

edits