Module:Sandbox/Gonnym/sometest5/2: Difference between revisions
imported>Gonnym No edit summary |
(No difference)
|
Latest revision as of 12:30, 20 August 2020
Documentation for this module may be created at Module:Sandbox/Gonnym/sometest5/2/doc
--[[
A category layout is as follows (not all items appear in all categories):
- Poratls
- "Container category" template
- Hatnotes
- Header text
- Navigation template
]]--
local getOrdinal = require('Module:Ordinal')._ordinal
local ERROR_CATEGORY = "[[Category:Errors reported by television chronology category header templates]]"
local navigationTemplates = {
["year"] = "Navseasoncats with decades below year/sandbox",
["decade"] = "Navseasoncats with centuries below decade/sandbox",
["century"] = "Navseasoncats"
}
local p = {}
p.errorMessagePrefixList = {
["NOT_ON_CATEGORY"] = "This page is not a category!<br />",
["INVALID_PAGE_NAME"] = "Invalid page name.<br />",
}
function p.isOnCategory(pageName)
if (pageName.nsText == 'Category') then
return true
else
return false
end
end
function p.getPortals(frame, portal_categories, timePeriod)
table.insert(portal_categories, frame:expandTemplate{title = "FindYDCportal", args = {timePeriod}})
return frame:expandTemplate{title = "Portal", args = portalArgs}
end
function p.getContainerCategoryTemplate(frame)
frame:expandTemplate{title = "Container category"}
end
function p.getCatMainTemplate(frame, title)
if (mw.title.makeTitle(0, title).exists) then
return frame:expandTemplate{title = "Cat main", args = {title}}
else
return ""
end
end
function p.getNavigationTemplate(frame, categoryHeader)
return frame:expandTemplate{title = navigationTemplates[categoryHeader.type]}
end
function p.getError(errorPrefix, errorMessageText)
local errorMessageText = errorPrefix .. errorMessageText
local errorMessage = tostring(mw.html.create('strong')
:addClass('error')
:wikitext(errorMessageText)
)
return errorMessage .. ERROR_CATEGORY
end
function p.getMillennium(century)
century = tonumber(century)
-- Need a more complete solution if this will be used with fictional categories.
if (century > 9) then
century = century * 100
end
local millennium = math.floor((math.abs(century) - 1) / 1000) + 1
millennium = getOrdinal(millennium) .. " millennium"
if (century < 0) then
millennium = millennium .. " BC"
end
return millennium
end
function p.getCentury(decade)
decade = tonumber(decade)
local century = ((decade - 1) / 100) + 1
if (decade < -1) then
century = century - 1
end
century = math.floor(century)
return getOrdinal(century) .. " century"
end
function p.getDecade(year)
year = tonumber(year)
local decade = year / 10
decade = math.floor(decade)
decade = decade .. "0s"
return decade
end
function p.getNextTierTimePeroid(categoryHeader, timePeriod)
if (categoryHeader.type == "year") then
return p.getDecade(timePeriod)
elseif (categoryHeader.type == "decade") then
return p.getCentury(timePeriod)
elseif (categoryHeader.type == "century") then
return p.getMillennium(timePeriod)
end
end
return p