Module:Categorytoc
Documentation for this module may be created at Module:Categorytoc/doc
-- @brief
-- Backend for {{CATEGORYTOC}}
--
-- @details
-- Generates the TOC of the category according to its language.
--
-- @author
-- [[meta:User:Danny B.]]
local _module = {}
----------------------------------------
local Alphabet = require "Module:CATEGORYTOC/Alphabet"
local Error = require "Module:Error"
function _module.print( frame )
local output = ""
local parentFrame = frame:getParent()
local templateArgs = parentFrame.args
local errorData = { template = "CATEGORYTOC" }
local titleObject = mw.title.getCurrentTitle()
local lang = mw.text.trim( templateArgs["1"] or "" )
local pagesInCategory = mw.site.stats.pagesInCategory( titleObject.text, "pages" )
-- expensive++
if pagesInCategory > 200 then
if titleObject:inNamespace( "Category" ) then
if lang == "" then
errorData.text = "Chybí specifikace jazyka (1. parametr)."
errorData.category = "Specifikovat jazyk"
elseif not Alphabet[lang] then
errorData.text = "Neznámý kód jazyka „" .. lang .."“ (1. parametr)."
errorData.category = "Zkontrolovat jazyk"
end
if errorData.text then
output = output .. Error.getText( errorData )
end
end
output = output .. "<div class=\"categorytoc toccolours\">\n"
output = output .. "<h2>{{int:toc}}</h2>\n"
if not Alphabet[lang] then
lang = "-"
end
for index, value in ipairs( Alphabet[lang] ) do
output = output .. "[" .. titleObject:fullUrl( { from = value } ) .. " " .. value .. "]\n"
end
output = output .. "</div>"
end
output = frame:preprocess( output )
return output
end
----------------------------------------
return _module