Module:Pagesincat
[voir] [modifier] [historique] [purger]
Utilisation
Liste des fonctions exportées par le module sous la forme :
pagesincat(frame)
– retourne le nombre de pages dans une catégorie
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
- mw.title, mw.language, mw.site
Détails et fonctions internes
erreur(texte)
– retourne une mise en forme de texte sous forme d'erreur, dans un <span class="error"></span>
pagesincat(frame)
– retourne le nombre de pages dans une catégorie- paramètres : tous les paramètres issus de frame:getParent().args sauf le paramètre nommé type qui est d'abord testé en provenance du modèle (pour permettre une surcharge) puis seulement de l'appel au modèle.
- paramètre non nommé (le seul) : le nom de la catégorie dont on veut le nombre de pages, sans l'extension Catégorie:. Si ce paramètre n'est pas indiqué le nom de la page où le modèle est appelé est utilisée. Si cette page n'est pas une catégorie une erreur est générée.
- type=Type : type de pages à décompter : tous ; cats ; fichiers ; pages. Si non précisé tous est utilisé
- mise en forme=oui : si ce paramètre est non vide le nombre retourné est mis en forme selon les critères de la langue courante (séparateur de miliers)
- éléments techniques :
- utilise
mw.title.getCurrentTitle()
pour connaître l'espace de nom (.namespace) et le nom (.text) de la page courante, si le nom n'est pas passé en paramètre - utilise
mw.site.stats.pagesInCategory()
pour obtenir le compte des pages dans une catégorie - utilise
mw.getContentLanguage():formatNum()
pour formater selon les conventions locales le nombre retourné, si la mise en forme est demandée - retourne une erreur si
mw.site.stats.pagesInCategory()
échoue. Est-ce que cela peut se produire ?
- utilise
- paramètres : tous les paramètres issus de frame:getParent().args sauf le paramètre nommé type qui est d'abord testé en provenance du modèle (pour permettre une surcharge) puis seulement de l'appel au modèle.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- module reproduisant le comportement de {{PAGESINCATEGORY}}
-- sans le bug
local p = {}
-- génère une erreur
function p.erreur(texte)
return '<span class="error">' .. (texte or "''aucune erreur indiquée''") .. "</span>"
end
-- pour tester la fonctionnalité "pageincategory"
function p.pagesincat(frame)
-- le nom de la catégorie
local args = ( frame.getParent and frame:getParent().args ) or frame -- préparation pour appel par modèle ou direct.
local cat = args[1]
-- le type de demande
local arg = (frame.args and frame.args["type"]) or args["type"]
-- mise en forme des nombres ?
local mef = args["mise en forme"] or args["mise_en_forme"]
local sel -- la sélection
-- en l'absence de nom de catégorie on utilise la page courante
if (cat == nil or cat == "") then
local titre = mw.title.getCurrentTitle()
-- on vérifie qu'on est une catégorie
if (titre.namespace ~= 14) then
return p.erreur("Pas de nom de page indiqué et la page courante n'est pas une catégorie")
end
-- on utilise le titre de la page courante
cat = mw.title.getCurrentTitle().text
end
-- on regarde le paramètre
if (arg == "tous" or arg == nil or arg == "*") then
sel = "all"
elseif (arg == "cats") then
sel = "subcats"
elseif (arg == "fichiers") then
sel = "files"
elseif (arg == "pages") then
sel = "pages"
else
return p.erreur("paramètre '" .. (arg or "<nil>") .. "' non reconnu")
end
local res = mw.site.stats.pagesInCategory(cat, sel)
if (res == nil) then
return p.erreur("erreur de récupération des informations")
end
-- si mise en forme on applique
if (mef ~= nil) then
return mw.getContentLanguage():formatNum(res)
else
return tostring(res)
end
end
return p