Module:Room features: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(Add text and category when there are no features) |
(Make sure empty text shows for pages with results but where none are shown) |
||
Line 3: | Line 3: | ||
function p.main(frame) |
function p.main(frame) |
||
local args = frame:getParent().args |
local args = frame:getParent().args |
||
return p._main(args) |
return p._main(args[1] or mw.title.getCurrentTitle().fullText, frame) |
||
end |
end |
||
Line 33: | Line 33: | ||
end |
end |
||
function p._main( |
function p._main(location, frame) |
||
frame = frame or mw.getCurrentFrame() |
|||
local ret = mw.html.create() |
local ret = mw.html.create() |
||
local location = args[1] or mw.title.getCurrentTitle().fullText |
|||
local query = mw.smw.ask(base_query(location)) |
local query = mw.smw.ask(base_query(location)) |
||
local empty = true |
|||
if query ~= nil then |
if query ~= nil then |
||
mw.logObject(query) |
|||
local results_by_type = {} |
local results_by_type = {} |
||
for i,v in pairs(infobox_cat_map) do |
for i,v in pairs(infobox_cat_map) do |
||
results_by_type[v] = {} |
results_by_type[v] = {} |
||
end |
end |
||
-- FIXME: Variant category pages (like [[Sparring Guard]]) do not |
|||
-- have an infobox so are not shown |
|||
for i,v in ipairs(query) do |
for i,v in ipairs(query) do |
||
local key = infobox_cat_map[v.infobox_sub or v.infobox] |
local key = infobox_cat_map[v.infobox_sub or v.infobox] |
||
Line 53: | Line 56: | ||
for cat,results in pairs(results_by_type) do |
for cat,results in pairs(results_by_type) do |
||
if #results > 0 then |
if #results > 0 then |
||
empty = false |
|||
ret |
ret |
||
:tag('h3'):wikitext(header_text_override[cat] or cat):done() |
:tag('h3'):wikitext(header_text_override[cat] or cat):done() |
||
Line 76: | Line 80: | ||
end |
end |
||
end |
end |
||
end |
|||
else |
|||
if empty then |
|||
ret:tag('dd') |
ret:tag('dd') |
||
:wikitext("''No room features found''[[Category:Empty room features]] |
:wikitext("''No room features found" .. require('Module:Purge')._purge{ anchor = 'roomfeatures_purge', text = '(refresh)', tag = 'sup' } .. "''[[Category:Empty room features]]") |
||
:wikitext(require('Module:Purge')._purge{ anchor = 'roomfeatures_purge', text = '(refresh)' }) |
|||
:done() |
:done() |
||
end |
end |