Module:Cooking Effects List: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 31: | Line 31: | ||
function h.makeQuery(type) | function h.makeQuery(type) | ||
local query = { | local query = { | ||
tables = { 'CookingEffects=CE' }, | tables = { 'CookingEffects=CE', 'CookingEffects__'..type..'=CEID' }, | ||
fields = { | join = {'CE._ID=CEID._rowID'}, | ||
fields = {'CEID._value=Type', 'CONCAT("[[", CE._pageName, "|", PlainName,"]]")=CookingDomain', 'PlainName'}, | |||
where = 'CE._pageNamespace="0"', | where = 'CE._pageNamespace="0"', | ||
orderBy = type .. ' ASC', | orderBy = type .. ' ASC', |
Revision as of 23:03, 31 August 2020
local util_args = require('Module:Args Utility')
local util_cargo = require('Module:Cargo Utility')
local util_map = require('Module:Map Utility')
local util_html = require('Module:HTML Utility')
local util_table = require('Module:Table Utility')
local util_text = require('Module:Text Utility')
local favilink = require('Module:Favilink')
local COLUMNS = { 'Unit Effects', 'Cooking Domain', 'Possible Ingredients' }
local h = {}
local p = {}
function p.basicEffects(frame)
return p.main(frame, 'UnitEffects')
end
function p.main(frame, effecttype)
frame=mw.getCurrentFrame()
local data = h.makeAndRunQuery(effecttype)
h.formatRows(data, effecttype)
return h.makeOutput(data)
end
function h.makeAndRunQuery(args)
return util_cargo.queryAndCast(h.makeQuery(args))
end
function h.makeQuery(type)
local query = {
tables = { 'CookingEffects=CE', 'CookingEffects__'..type..'=CEID' },
join = {'CE._ID=CEID._rowID'},
fields = {'CEID._value=Type', 'CONCAT("[[", CE._pageName, "|", PlainName,"]]")=CookingDomain', 'PlainName'},
where = 'CE._pageNamespace="0"',
orderBy = type .. ' ASC',
groupBy = '_pageName'
}
return query
end
function h.formatRows(data, type)
util_map.rowsInPlace(data, h.formatOneRow)
end
function h.formatOneRow(row)
row['Unit Effects'] = row.Type
row['Cooking Domain'] = row.CookingDomain
row['Possible Ingredients'] = mw.getCurrentFrame():expandTemplate{ title = 'food that grants', args = { row.PlainName, 'commas' } }
end
function h.makeOutput(data)
local output = mw.html.create()
local tbl = output:tag('table')
:addClass('wikitable')
:addClass('sortable')
util_html.printHeader(tbl, COLUMNS)
util_html.printRowsByList(tbl, data, COLUMNS)
return output
end
return p