وحدة:Category pair
توثيق الوحدة [أنشئ] [محو الاختزان][استخدامات] [قوالب]
require('strict')
local getArgs = require('Module:Arguments').getArgs
local hatnote = require('Module:Hatnote')._hatnote
local formatLink = require('Module:Format link')._formatLink
local p = {}
local catNS = mw.site.namespaces.Category.id -- category namespace number
-- Lua implementation of [[قالب:CategoryPair]]
-- Arguments:
-- prevTitle -- mw.title.Title object for preceding category
-- nextTitle -- mw.title.Title object for succeeding category
-- Returns:
-- hatnote that says "see also" for one or both of prev/next (depending on whether they exist)
function p._pair(prevTitle, nextTitle)
prevTitle = prevTitle and prevTitle.exists and formatLink{link = prevTitle.fullText}
nextTitle = nextTitle and nextTitle.exists and formatLink{link = nextTitle.fullText}
local note = ''
if prevTitle and nextTitle then -- if both
note = mw.ustring.format('طالع أيضًا %s السابق، و%s اللاحق.',prevTitle, nextTitle)
elseif prevTitle then -- if only prevTitle
note = mw.ustring.format('طالع أيضًا %s السابق.', prevTitle)
elseif nextTitle then -- if only nextTitle
note = mw.ustring.format('طالع أيضًا %s اللاحق.', nextTitle)
else -- otherwise neither
return mw.title.getCurrentTitle().namespace == catNS and '[[تصنيف:صفحات تستخدم قالب:تصنيف مرتبط بدون مخرجات]]' or ''
end
return hatnote(note, {extraclasses = 'seealso'})
end
function p.catPair(frame)
local args = getArgs(frame, {wrappers={'قالب:تصنيف مرتبط'}})
local prevTitle = args[1] and mw.title.new(args[1],catNS)
local nextTitle = args[2] and mw.title.new(args[2],catNS)
return p._pair(prevTitle, nextTitle)
end
function p.prevCat(frame)
local args = getArgs(frame, {wrappers={'قالب:التصنيف السابق'}})
local prevTitle = args[1] and mw.title.new(args[1], catNS)
return p._pair(prevTitle, nil)
end
function p.nextCat(frame)
local args = getArgs(frame, {wrappers={'قالب:التصنيف اللاحق'}})
local nextTitle = args[1] and mw.title.new(args[1], catNS)
return p._pair(nil, nextTitle)
end
return p