Volatile:ListField: Difference between revisions
New page: <!----List fields of name "<nowiki>{{{1|}}}</nowiki>" in namespace "<nowiki>{{{2}}}</nowiki>".---->{{#lua: function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end list = {} ... |
No edit summary |
||
| Line 1: | Line 1: | ||
<!----List fields of name "<nowiki>{{{1 | <!----List fields of name "<nowiki>{{{1}}}</nowiki>" in namespace "<nowiki>{{{2}}}</nowiki>"----> | ||
{{#def:ARG1|{{{1}}}}}{{#def:ARG2|{{{2}}}}}{{#def:ARG3|{{{3|0}}}}} | |||
==Search Results of '''{{{1}}}'''== | |||
{{#lua: | |||
function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end | function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end | ||
list = {} | list = {} | ||
id = {} | id = {} | ||
for page,data in stdin:gmatch("&&([%S]+)&&{{{1}}}= *([^\n]+)") do | for page,data in stdin:gmatch("&&([%S]+)&&{{{1}}} *= *([^\n]+)") do | ||
if ((data ~= "-") and (data ~= " ")) then | if ((data ~= "-") and (data ~= " ")) then | ||
data = trim(data) | data = trim(data) | ||
| Line 16: | Line 19: | ||
end | end | ||
table.sort(id) | table.sort(id) | ||
print("Total " .. table.getn(id) .. " groups.") | |||
local coff = tonumber("{{#var:ARG3}}") | |||
if (coff == nil) then coff =0 else print("Showing groups more than size=" .. coff .. "only") end | |||
for _,v in ipairs(id) do | for _,v in ipairs(id) do | ||
print("* | if (table.getn(list[v]) > coff) then | ||
print("* '''" .. v .. "'''") | |||
table.sort(list[v]) | |||
for i = 1,table.getn(list[v]) do | |||
if (list[v][i] ~= list[v][i + 1]) then | |||
print("[[{{#var:ARG2}}:" .. list[v][i] .."|".. list[v][i] .."]]") end | |||
end | |||
end | end | ||
end | end | ||
| | | | ||
{{#replace:{{#SearchLine:{{ | {{#replace:{{#SearchLine:{{#var:ARG1}}|{{#var:ARG2}}}}|||&&}} | ||
}} | }} | ||
Revision as of 06:17, 6 June 2012
Search Results of {{{1}}}
{{#lua:
function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end
list = {}
id = {}
for page,data in stdin:gmatch("&&([%S]+)&&{{{1}}} *= *([^\n]+)") do
if ((data ~= "-") and (data ~= " ")) then
data = trim(data)
tmp = list[data]
if (tmp == nil) then
list[data] = { page }
table.insert(id, data)
else
table.insert(tmp, page)
end
end
end
table.sort(id)
print("Total " .. table.getn(id) .. " groups.")
local coff = tonumber("0")
if (coff == nil) then coff =0 else print("Showing groups more than size=" .. coff .. "only") end
for _,v in ipairs(id) do
if (table.getn(list[v]) > coff) then
print("* " .. v .. "")
table.sort(list[v])
for i = 1,table.getn(list[v]) do
if (list[v][i] ~= list[v][i + 1]) then
print("[[{{{2}}}:" .. list[v][i] .."|".. list[v][i] .."]]") end
end
end
end
|
}}