module BannerHelper
+ def active_banners()
+ BANNERS.reject do |k,v|
+ enddate = v[:enddate]
+ parsed = (enddate and Date.parse enddate rescue nil)
+ parsed.is_a?(Date) and parsed.past?
+ end
+ end
+
# returns the least recently seen banner that is not hidden
def next_banner()
- active_banners = {
- :sotmus2016 => {
- :id => 'sotmus2016',
- :alt => 'State of the Map US 2016',
- :link => 'http://stateofthemap.us/',
- :img => 'banners/sotmus-2016.jpg'
- },
- :sotm2016 => {
- :id => 'sotm2016',
- :alt => 'State of the Map 2016',
- :link => 'http://2016.stateofthemap.org/',
- :img => 'banners/sotm-2016.jpg'
- }
- }
-
+ banners = active_banners()
bannerKey = nil
cookieKey = nil
queuePos = 9999
- active_banners.each do |k, v|
+ banners.each do |k, v|
ckey = cookie_id(v[:id]).to_sym
cval = cookies[ckey] || 0
next if cval == 'hide'
-
# rotate all banner queue positions
index = cval.to_i
if index > 0
end
unless bannerKey.nil?
- cookies[cookieKey] = active_banners.length # bump to end of queue
- active_banners[bannerKey]
+ cookies[cookieKey] = banners.length # bump to end of queue
+ banners[bannerKey]
end
end