Module:PastWikithons
From BASAbaliWiki
Documentation for this module may be created at Module:PastWikithons/doc
local p = {} local competitions = {} function addToSet(set, key) set[key] = true end function removeFromSet(set, key) set[key] = nil end function setContains(set, key) return set[key] ~= nil end function p.display( frame ) local div = mw.html.create( 'div' ) div:addClass('wikithon-list-legacy') div:addClass('bali-wikiton-list') -- https://github.com/SemanticMediaWiki/SemanticScribunto/blob/master/docs/README.md -- build list of unique wikithons names local result = mw.smw.ask { '[[Category:Article]]', '[[Competition::+]]', '?Competition', limit = 10, mainlabel = '-' } if result and #result then for num, entityData in pairs( result ) do local c = entityData['Competition'] if not setContains(competitions, c) then addToSet(competitions, c) end end end for k, v in pairs( competitions ) do local searchSpecial = mw.title.makeTitle( 'Special', 'RunQuery' ) local wikithonLink = searchSpecial:fullUrl('') local wikithonDiv = div:tag('div') wikithonDiv:addClass('bali-wikiton') local wikithonTags = wikithonDiv:tag('div') wikithonTags:addClass('bali-tags') local wikithonRow = wikithonDiv:tag('div') wikithonRow:addClass('bali-wikiton__row') local rowText = wikithonRow:tag('div') rowText:addClass('bali-wikiton__text') local rowLink = rowText:tag('a') rowLink:attr('href', '#') rowLink:attr('title', '') rowLink:attr('target', '_blank') rowLink:wikitext('Test') local rowBtn = rowText:tag('span') rowBtn:addClass('bali-wikiton__button') local btnLink = rowBtn:tag('a') btnLink:attr('href', '') btnLink:attr('target', '_blank') btnLink:attr('title', '') end -- fetch wikithons artiles per wikithon --[=====[ for k, v in pairs( competitions ) do local competition = k local ulWikithon = div:tag('ul') ulWikithon:addClass('wikithon-list-legacy--item') ulWikithon:wikitext(competition) local result = mw.smw.ask { '[[Category:Article]]', '[[Competition::' .. competition ..']]', limit = 10, mainlabel = 'origin' } if result and #result then for num, entityData in pairs( result ) do local liPage = ulWikithon:tag('li') liPage:addClass('wikithon-list-legacy--page') liPage:wikitext(entityData.origin) end end end --]=====] return '<a href="#">test</a>' end return p