« Module:RemovePrefix » : différence entre les versions

De wikiviefr
Aucun résumé des modifications
Aucun résumé des modifications
 
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


-- Fonction principale appelée par #invoke
function p.removePrefix(frame)
function p.removePrefix(frame)
     local args = frame:getParent().args
     local args = frame.args
     local category = args.category or ""
     local category = args.category
     local prefix = args.prefix or ""
     local prefix = args.prefix


     -- Vérifier si la catégorie existe
 
     if category == "" then
 
    mw.log("Catégorie reçue : " .. (category or "aucune"))
     mw.log("Préfixe reçu : " .. (prefix or "aucun"))
 
 
 
     if not category or category == "" then
         return "Erreur : aucune catégorie spécifiée."
         return "Erreur : aucune catégorie spécifiée."
     end
     end


    -- Récupère les pages de la catégorie via Scribunto
     if not prefix then
    local success, pages = pcall(mw.site.getAllPagesInCategory, mw.site, category)
         prefix = "" -- Valeur par défaut si aucun préfixe n'est défini
     if not success then
         return "Erreur : impossible de récupérer les pages de la catégorie."
     end
     end


     -- Préparer la liste des pages sans le préfixe
     -- Récupérer les pages de la catégorie
     local results = {}
    local dpl = mw.ext.DynamicPageList
    local pages = dpl.getPagesInCategory(category)
 
    if not pages then
        return "Erreur : aucune page trouvée dans la catégorie."
    end
 
    -- Construire le tableau avec les préfixes retirés
     local result = "{| class='wikitable sortable'\n"
    result = result .. "! Nom de la page\n"
 
     for _, page in ipairs(pages) do
     for _, page in ipairs(pages) do
         local title = page.title
         local title = mw.ustring.gsub(page.title, "^" .. mw.text.nowiki(prefix), "")
        if title:find("^" .. prefix) then
         result = result .. "|-\n| [[" .. page.title .. "|" .. title .. "]]\n"
            title = title:gsub("^" .. prefix, "")
         end
        table.insert(results, "* [[" .. page.fullText .. "|" .. title .. "]]")
     end
     end


     -- Retourne la liste formatée
     result = result .. "|}"
     return table.concat(results, "\n")
     return result
end
end


return p
return p

Dernière version du 22 décembre 2024 à 14:03

La documentation pour ce module peut être créée à Module:RemovePrefix/doc

local p = {}

function p.removePrefix(frame)
    local args = frame.args
    local category = args.category
    local prefix = args.prefix



    mw.log("Catégorie reçue : " .. (category or "aucune"))
    mw.log("Préfixe reçu : " .. (prefix or "aucun"))



    if not category or category == "" then
        return "Erreur : aucune catégorie spécifiée."
    end

    if not prefix then
        prefix = "" -- Valeur par défaut si aucun préfixe n'est défini
    end

    -- Récupérer les pages de la catégorie
    local dpl = mw.ext.DynamicPageList
    local pages = dpl.getPagesInCategory(category)

    if not pages then
        return "Erreur : aucune page trouvée dans la catégorie."
    end

    -- Construire le tableau avec les préfixes retirés
    local result = "{| class='wikitable sortable'\n"
    result = result .. "! Nom de la page\n"

    for _, page in ipairs(pages) do
        local title = mw.ustring.gsub(page.title, "^" .. mw.text.nowiki(prefix), "")
        result = result .. "|-\n| [[" .. page.title .. "|" .. title .. "]]\n"
    end

    result = result .. "|}"
    return result
end

return p