Modul:Event

CamNet - das Wiki
Version vom 17. Februar 2016, 16:59 Uhr von Noémi (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Documentation icon Module documentation

This module implements template {{Event}}.

Usage

{{#invoke:Event|main}}

It also provides some additional "gateways" to some of Module:Event/class's static methods:

{{#invoke:Event|categorize}}
{{#invoke:Event|categoryPage}}
{{#invoke:Event|explainDataStore}}
{{#invoke:Event|gardeningCategoryPage}}
{{#invoke:Event|sfGenerateForm}}
{{#invoke:Event|sfGenerateFormEntry}}
{{#invoke:Event|sfGenerateFormLink}}
{{#invoke:Event|templateDocumentation}}

Maintenanace notes

This page was created by Module:Classgenerator and belongs to Class:Event.

local p = {}
local Class = require('Module:Event/class')
local getArgs = require('Module:Arguments').getArgs

local function stringHash(text)
	local counter = 1
	local len = string.len(text)
	for i = 1, len, 3 do 
	counter = math.fmod(counter*8161, 4294967279) +  -- 2^32 - 17: Prime!
		(string.byte(text,i)*16776193) +
		((string.byte(text,i+1) or (len-i+256))*8372226) +
		((string.byte(text,i+2) or (len-i+256))*3932164)
	end
	return math.fmod(counter, 4294967291) -- 2^32 - 5: Prime (and different from the prime in the loop)
end

function p.categorize(frame)
	return tostring(Class:categorize())
end

function p.categoryPage(frame)
	return tostring(Class:categoryPage())
end

function p.explainDataStore(frame)
	return tostring(Class:explainDataStore())
end

function p.gardeningCategoryPage(frame)
	return tostring(Class:gardeningCategoryPage())
end

function p.templateDocumentation(frame)
	return tostring(Class:templateDocumentation())
end

function p.main(frame)
	local args = getArgs(frame)
	local title = args.title or args[1] or mw.title.getCurrentTitle().prefixedText
	local me = Class:new(mw.title.getCurrentTitle().prefixedText .. '_event_' .. stringHash(title))
	me:initFromArgs(args)
	me:storeData()
--	me:addInfobox()
--	me:addPageBody()
	return me:render()
end

return p