Documentação do módulo[ver] [editar] [histórico] [purgar]


Descrição

Este módulo tem funções auxiliares para contar páginas nas respetivas categorias.

Uso

Ver {{pagesincat}}

Outra documentação:

-- módulo reproduzindo o comportamento de {{PAGESINCATEGORY}}
-- sem o bug

local p = {}

-- gera um erro
function p.error(texto)
    return '<span class="error">' .. (texto or "''nenhum erro indicado''") .. "</span>"
end


-- para testar a funcionalidade "pageincategory"
function p.pagesincat(frame)
    -- o nome da categoria
    local args = frame:getParent().args
    local cat = args[1]
    -- o tipo de pedido
    local arg = frame.args["tipo"] or args["type"]
    -- formatando números?
    local mef = args["formatação"] or args["formatacao"]

    local sel  -- a selecção

    -- se não houver nome de categoria, use a página atual
    if (cat == nil or cat == "") then
        local titulo = mw.title.getCurrentTitle()
        -- nós verificamos se somos uma categoria
        if (titulo.namespace ~= 14) then
            return p.error("Nenhum nome de página especificado e a página atual não é uma categoria")
        end
        -- nós usamos o título da página atual
        cat = mw.title.getCurrentTitle().text
    end
 
    -- nós olhamos o parâmetro
    if (arg == "todos" or arg == nil or arg == "*") then
        sel = "all"
    elseif (arg == "cats") then
        sel = "subcats"
    elseif (arg == "ficheiros") or (arg == "files") then
        sel = "files"
    elseif (arg == "páginas") or (arg == "pages") then
        sel = "pages"
    else
        return p.error("parâmetro '" .. (arg or "<nil>") .. "' não reconhecido")
    end
 
    local res = mw.site.stats.pagesInCategory(cat, sel)
    if (res == nil) then
        return p.error("erro de recuperação de informações")
    end
    -- se a formatação for aplicada
    if (mef ~= nil) then
        return mw.getContentLanguage():formatNum(res)
    else
        return tostring(res)
    end
end

return p