Module:Message box: Difference between revisions

    imported>MacFan4000
    m (1 revision imported: Basic templates)
    en>MSGJ
    (ony load Category handler when needed, requested on talk page)
    Line 5: Line 5:
    require('Module:No globals')
    require('Module:No globals')
    local getArgs
    local getArgs
    local categoryHandler = require('Module:Category handler')._main
    local yesno = require('Module:Yesno')
    local yesno = require('Module:Yesno')


    Line 109: Line 108:
    obj.categories = {}
    obj.categories = {}
    obj.classes = {}
    obj.classes = {}
    -- For lazy loading of [[Module:Category handler]].
    obj.hasCategories = false


    return setmetatable(obj, MessageBox)
    return setmetatable(obj, MessageBox)
    Line 122: Line 123:
    cat = string.format('[[Category:%s]]', cat)
    cat = string.format('[[Category:%s]]', cat)
    end
    end
    self.hasCategories = true
    self.categories[ns] = self.categories[ns] or {}
    self.categories[ns] = self.categories[ns] or {}
    table.insert(self.categories[ns], cat)
    table.insert(self.categories[ns], cat)
    Line 429: Line 431:


    function MessageBox:renderCategories()
    function MessageBox:renderCategories()
    if not self.hasCategories then
    -- No categories added, no need to pass them to Category handler so,
    -- if it was invoked, it would return the empty string.
    -- So we shortcut and return the empty string.
    return ""
    end
    -- Convert category tables to strings and pass them through
    -- Convert category tables to strings and pass them through
    -- [[Module:Category handler]].
    -- [[Module:Category handler]].
    return categoryHandler{
    return require('Module:Category handler')._main{
    main = table.concat(self.categories[0] or {}),
    main = table.concat(self.categories[0] or {}),
    template = table.concat(self.categories[10] or {}),
    template = table.concat(self.categories[10] or {}),