Modul:Event: Unterschied zwischen den Versionen
Noémi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „local p = {} local Class = require('Module:Event/class') local getArgs = require('Module:Arguments').getArgs function p.categorize(frame) return tostring(Cla…“) |
Noémi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
local Class = require('Module:Event/class') | local Class = require('Module:Event/class') | ||
local getArgs = require('Module:Arguments').getArgs | 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) | function p.categorize(frame) | ||
| Zeile 17: | Zeile 29: | ||
function p.gardeningCategoryPage(frame) | function p.gardeningCategoryPage(frame) | ||
return tostring(Class:gardeningCategoryPage()) | return tostring(Class:gardeningCategoryPage()) | ||
end | end | ||
| Zeile 37: | Zeile 37: | ||
function p.main(frame) | function p.main(frame) | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
local me = Class:new(mw.title.getCurrentTitle().prefixedText) | 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:initFromArgs(args) | ||
me:storeData() | me:storeData() | ||
-- me:addInfobox() | |||
-- me:addPageBody() | |||
return me:render() | |||
end | end | ||
return p | return p | ||
Aktuelle Version vom 17. Februar 2016, 16:59 Uhr
| This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
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