مودول:Pagesincat

من ويكيپيديا

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

موضيل:Section déroulante début

  • 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 ?

موضيل:Section déroulante fin

موضيل:Projet Scribunto


Catégorie:Module en langage Lua


-- وحدة تعمل نفس عمل {{PAGESINCATEGORY}}
-- ولكن بدون أخطاء

local p = {}

-- génère une erreur
function p.erreur(texte)
    return '<span class="error">' .. (texte or "''لا أخطاء معلنة''") .. "</span>"
end


-- من أجل تجربة "pageincategory"
function p.pagesincat(frame)
    -- اسم التصنيف
    local args = frame:getParent().args
    local cat = args[1]
    -- نوع الطلب
    local arg = frame.args["type"] or args["type"]
    -- تهيئة شكل النتيجة ?
    local mef = args["form"]

    local sel  -- الاختيار

    -- في غياب اسم التصنيف يستعمل اسم الصفحة الحالية
    if (cat == nil or cat == "") then
        local titre = mw.title.getCurrentTitle()
        -- التأكد من أنها تصنيف
        if (titre.namespace ~= 14) then
            return p.erreur("لم يتم تزويد اسم للصفحة والصفحة الحالية ليست تصنيفا")
        end
        -- نستعمل عنوان الصفحة الحالية
        cat = mw.title.getCurrentTitle().text
    end
 
    -- نطلع على البيانات
    if (arg == "all" or arg == nil or arg == "*") then
        sel = "all"
    elseif (arg == "cats") then
        sel = "subcats"
    elseif (arg == "files") then
        sel = "files"
    elseif (arg == "pages") then
        sel = "pages"
    else
        return p.erreur("المعلومة '" .. (arg or "<nil>") .. "' غير معروفة")
    end
 
    local res = mw.site.stats.pagesInCategory(cat, sel)
    if (res == nil) then
        return p.erreur("خطأ في استرجاع البيانات")
    end
    -- في حالة تهيئة الشكل
    if (mef ~= nil) then
        return mw.getContentLanguage():formatNum(res)
    else
        return tostring(res)
    end
end

return p