وحدة:Pagesincat
يمكن إنشاء صفحة توثيق الوحدة في وحدة:Pagesincat/شرح
-- وحدة تعمل نفس عمل {{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