Module:CargoQuery: Difference between revisions

Jump to navigation Jump to search
no edit summary
(trim keys in merge args)
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 14: Line 14:
local intro = frame:preprocess(args.intro or '')
local intro = frame:preprocess(args.intro or '')
local outro = frame:preprocess(args.outro or '')
local outro = frame:preprocess(args.outro or '')
local template = frame:preprocess(args.template or 'single query result')
local delimiter = args.delimiter or ''
local delimiter = args.delimiter or ''
Line 29: Line 30:
for i, row in ipairs(result) do
for i, row in ipairs(result) do
row.index = i
row.index = i
tbl[#tbl+1] = frame:expandTemplate{ title = args.template, args = row }
tbl[#tbl+1] = frame:expandTemplate{ title = template, args = row }
end
end
if colcount ~= nil then
if colcount ~= nil then
Line 50: Line 51:
local query = {}
local query = {}
for k, v in pairs(args) do
for k, v in pairs(args) do
if string.sub(mw.text.trim(k), 0, 2) == 'q?' then
if string.sub(k, 0, 2) == 'q?' then
local key = string.sub(k, 3)
local key = string.sub(k, 3)
query[PARAM_LOOKUP[key] or key] = v
query[PARAM_LOOKUP[key] or key] = v
elseif PARAM_LOOKUP[k] then
query[PARAM_LOOKUP[k]] = v
else
else
query[PARAM_LOOKUP[k]] = v
query[k] = v
end
end
end
end
Line 85: Line 88:
v = mw.text.trim(tostring(v))
v = mw.text.trim(tostring(v))
if v ~= '' then
if v ~= '' then
args[mw.text.trim(k)] = v
args[k] = v
end
end
    end
    end
Line 92: Line 95:
v = mw.text.trim(v)
v = mw.text.trim(v)
if v ~= '' then
if v ~= '' then
args[mw.text.trim(k)] = v
args[k] = v
end
end
end
end
Line 178: Line 181:
template = frame:preprocess(args['template'] or '')
template = frame:preprocess(args['template'] or '')
if template == nil or template == '' then
if template == nil or template == '' then
     error('A template must be specified!')
     template='single query result'
end
end
delimiter = frame:preprocess(args['delimiter'] or '')
delimiter = frame:preprocess(args['delimiter'] or '')

Navigation menu