Difference between revisions of "Module:Used by/Sandbox"

From Team Fortress Wiki
Jump to: navigation, search
Line 6: Line 6:
  
 
function p.classes(frame)
 
function p.classes(frame)
 +
    local first = nil
 +
    local count = -1
 
     local args = frame.args
 
     local args = frame.args
    local count = 0
+
     for arg in pairs(args) do
     for _ in pairs(args) do  
+
        first = first or arg
 
         count = count + 1  
 
         count = count + 1  
 
     end
 
     end
     if count == 0 then
+
     if first == nil then
 
         args = frame:getParent().args
 
         args = frame:getParent().args
         for _ in pairs(args) do  
+
         for arg in pairs(args) do
 +
            first = first or arg
 
             count = count + 1  
 
             count = count + 1  
 
         end
 
         end

Revision as of 06:21, 18 March 2023

Documentation for this module may be created at Module:Used by/Sandbox/doc

local p = {}

function common_string(args)
  return mw.getCurrentFrame():expandTemplate{title='Common string', args=args}
end

function p.classes(frame)
    local first = nil
    local count = -1
    local args = frame.args
    for arg in pairs(args) do
        first = first or arg
        count = count + 1 
    end
    if first == nil then
        args = frame:getParent().args
        for arg in pairs(args) do
            first = first or arg
            count = count + 1 
        end
    end
  
    local first = table.remove(args, 1)
    assert(false, 'First:' .. first)
    count = count - 1
    if first == 'all' then
        return common_string{'infobox-used-by-all'}
    elseif first == 'all-except' then
        return common_string{'infobox-used-by-all-except-' .. count, unpack(args)}
    else
        return common_string{'infobox-used-by-' .. count, unpack(args)}
    end
end

return p