Modul:scripts/templates

This module provides access to Module:scripts from templates, so that they can make use of the information stored there.

Exported functionsExported functions

existsexists

{{#invoke:scripts/templates|exists|(script code)}}

Check whether a script code exists and is valid. It will return "1" if the script code exists, and the empty string "" if it does not.

This is rarely needed, because a script error will result when someone uses a code that is not valid, so you do not need this just to check for errors. However, in case you need to decide different actions based on whether a certain parameter is a script code or something else, this function can be useful.

getByCodegetByCode

{{#invoke:scripts/templates|getByCode|(script code)|(item to look up)|(index)}}

Queries information about a script code.

For example, to request the default (canonical) name of the script whose code is Latn:

{{#invoke:scripts/templates|getByCode|Latn|getCanonicalName}}

To request its second name, if any:

{{#invoke:scripts/templates|getByCode|Latn|getAllNames|2}}

See alsoSee also


local export = {}

function export.exists(frame)
	local args = frame.args
	local sc = args[1] or error("Script code has not been specified. Please pass parameter 1 to the module invocation.")
	
	sc = require("Modul:scripts").getByCode(sc)
	
	if sc then
		return "1"
	else
		return ""
	end
end

function export.getByCode(frame)
	local args = frame.args
	local sc = args[1] or error("Script code (parameter 1) has not been specified.")
	local itemname = args[2] or error("Function to call (parameter 2) has not been specified.")
	
	sc = require("Modul:scripts").getByCode(sc) or error("The script code '" .. sc .. "' is not valid.")
	
	-- The item that the caller wanted to look up
	if itemname == "getCanonicalName" then
		return sc:getCanonicalName()
	elseif itemname == "getAllNames" then
		local index = args[3]; if index == "" then index = nil end
		index = tonumber(index or error("Numeric index of the desired item in the list (parameter 3) has not been specified."))
		return sc:getAllNames()[index] or ""
	elseif itemname == "getCategoryName" then
		return sc:getCategoryName()
	elseif itemname == "countCharacters" then
		local text = args[3] or ""
		return sc:countCharacters(text)
	else
		error("Requested invalid item name \"" .. itemname .. "\".")
	end
end

return export
Kategorie:Template interface modules