|
|
Line 19: |
Line 19: |
| local format = args.format or nil | | local format = args.format or nil |
| | | |
| local query = {} | | result = p.query(args) |
| for k, v in pairs(args) do
| |
| if string.sub(k, 0, 2) == 'q?' then
| |
| local key = string.sub(k, 3)
| |
| query[PARAM_LOOKUP[key] or key] = v
| |
| elseif PARAM_LOOKUP[k] then
| |
| query[PARAM_LOOKUP[k]] = v
| |
| else
| |
| query[k] = v
| |
| end
| |
| end
| |
|
| |
| if args.one_to_many then
| |
| query.fields = query.fields .. ',' .. query.one_to_many
| |
| end
| |
| | | |
| local result = mw.ext.cargo.query(query.tables, query.fields, query)
| |
| if #result == 0 then
| |
| return frame:preprocess(args.default or '')
| |
| end
| |
| if args.one_to_many then
| |
| result = h.groupOneToManyFields(result, h.getOneToManyTableFromArgs(args))
| |
| h.concatOneToManyFieldsInEachRow(result, args.one_to_many_sep or ',')
| |
| end
| |
| local tbl = {} | | local tbl = {} |
| if format == "table" then | | if format == "table" then |
Line 207: |
Line 185: |
| local splitargs = {} | | local splitargs = {} |
| for a, b in ipairs(args) do | | for a, b in ipairs(args) do |
| local var = {}
| | splitargs[a] = util_args.splitNamedArgs(frame:preprocess(b), '%s*' .. metasep .. '%s*') |
| for k, v in pairs(util_args.splitNamedArgs(frame:preprocess(b), '%s*' .. metasep .. '%s*')) do
| |
| if string.sub(k, 0, 2) == 'q?' then
| |
| local key = string.sub(k, 3)
| |
| var[PARAM_LOOKUP[key] or key] = v
| |
| elseif PARAM_LOOKUP[k] then
| |
| var[PARAM_LOOKUP[k]] = v
| |
| else
| |
| var[k] = v
| |
| end
| |
| end
| |
| splitargs[a] = var
| |
| end | | end |
| | | |