Module:CountdownBanner: Difference between revisions

From 20R1
No edit summary
No edit summary
Line 58: Line 58:
                 .. '|}}'
                 .. '|}}'


    --return '<pre>'..smw.ask( query )..'</pre>'
     local smw = require( 'ext.smw.api' )
     local smw = require( 'ext.smw.api' )



Revision as of 23:06, 19 November 2025

Documentation for this module may be created at Module:CountdownBanner/doc

local p = {}

function p.show( frame )
    local currentTime = os.time()
    local lb = ' &#91;&#91;'
    local rb = '&#93;&#93; '
    local query = '{{#ask: '..lb..'Club Name::+'..rb..lb..'Start Date::> '..os.date("!%Y-%m-%d", currentTime)..rb
                .. '|?Start Date'
                .. '|?Event Name=Name'
                .. '|?Event Location=Location'
                .. '|?Event Flyer=Flyer'
                .. '|sort=Start Date'
                .. '|order=asc'
                .. '|limit=1'
                .. '|}}'

    local result = frame:preprocess( query )

    if result == '' or result:match'^%s*$' then
        local banner = '<div style="background:#b22234;color:white;padding:20px;text-align:center;font-size:18px;">No upcoming events scheduled</div>'
    	banner = 'QUERY:'..query..'<br><pre>RESULT:'..result..'<hr>'..banner
    	return query
    end

    return frame:preprocess( '{{CountdownBannerDisplay|' .. query .. '}}' )
end

function p.query( frame )
    local currentTime = os.time()
    local lb = ' &#91;&#91;'
    local rb = '&#93;&#93; '
    local query = '{{#ask: '..lb..'Club Name::+'..rb..' '..lb..'Start Date::> '..os.date("!%Y-%m-%d", currentTime)..rb
                .. '|?Start Date'
                .. '|?Event Name=Name'
                .. '|?Event Location=Location'
                .. '|?Event Flyer=Flyer'
                .. '|sort=Start Date'
                .. '|order=asc'
                .. '|limit=1'
                .. '|}}'

    return '<pre>'..query..'</pre>'
    --return frame:preprocess( '{{CountdownBannerDisplay|' .. query .. '}}' )
end

function p.result( frame )
    local currentTime = os.time()
    local lb = ' &#91;&#91;'
    local rb = '&#93;&#93; '
    local query = '{{#ask: '..lb..'Club Name::+'..rb..' '..lb..'Start Date::> '..os.date("!%Y-%m-%d", currentTime)..rb
                .. '|?Start Date'
                .. '|?Event Name=Name'
                .. '|?Event Location=Location'
                .. '|?Event Flyer=Flyer'
                .. '|sort=Start Date'
                .. '|order=asc'
                .. '|limit=1'
                .. '|}}'

    local smw = require( 'ext.smw.api' )

	--local queryString = '[[Category:Person]][[Born in::Berlin]]|?Born in|limit=10'
	local result = smw.getQueryResult( query )
	
	-- Then iterate:
	local data = result:results()  -- table of pages → printouts
	    --return frame:preprocess( '{{CountdownBannerDisplay|' .. query .. '}}' )
	end
return p