Only load Adsense in prod. and reset on each page

This commit is contained in:
Andrew Miner
2015-03-10 21:34:41 -07:00
parent ee75415729
commit 50c3d95440
27 changed files with 214 additions and 117 deletions
+2
View File
@@ -5,6 +5,8 @@ Copyright (c) 2014-2015 by Redwood Labs
All rights reserved.
###
exports.AdsenseEnvs = [ 'production' ]
# Minecraft must be first
exports.DefaultMods =
minecraft: { defaultVersion: '1.7.10' }
@@ -0,0 +1,40 @@
###
Crafting Guide - adsense_controller.coffee
Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
BaseController = require './base_controller'
{AdsenseEnvs} = require '../constants'
########################################################################################################################
module.exports = class AdsenseController extends BaseController
constructor: (options={})->
options.model ?= 'skyscraper_sidebar'
options.templateName = "adsense_#{options.model}"
super options
@_adsEnabled = global.env in AdsenseEnvs
# BaseController Overrides #####################################################################
render: ->
if @_adsEnabled
super
else
@$el.addClass 'placeholder'
@_rendered = true
@$el.addClass @model
refresh: ->
return unless @_adsEnabled
try
global.adsbygoogle ||= []
global.adsbygoogle.push {}
catch e
logger.warning "Could not load Adsense ad: #{e}"
@@ -5,10 +5,11 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
PageController = require './page_controller'
{Duration} = require '../constants'
{Event} = require '../constants'
ModController = require './mod_controller'
AdsenseController = require './adsense_controller'
ModController = require './mod_controller'
PageController = require './page_controller'
{Duration} = require '../constants'
{Event} = require '../constants'
########################################################################################################################
@@ -30,7 +31,8 @@ module.exports = class BrowsePageController extends PageController
# BaseController Overrides #####################################################################
onDidRender: ->
@$modContainer = @$('.mods')
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
@$modContainer = @$('.mods')
super
refresh: ->
@@ -5,6 +5,7 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
AdsenseController = require './adsense_controller'
PageController = require './page_controller'
ModPackController = require './mod_pack_controller'
@@ -29,5 +30,6 @@ module.exports = class ConfigurePageController extends PageController
# BaseController Overrides #####################################################################
onDidRender: ->
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
@modPackController = @addChild ModPackController, '.view__mod_pack', model:@modPack, storage:@storage
super
@@ -5,7 +5,8 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
PageController = require './page_controller'
AdsenseController = require './adsense_controller'
PageController = require './page_controller'
########################################################################################################################
@@ -15,6 +16,12 @@ module.exports = class HomeController extends PageController
options.templateName = 'home_page'
super options
# BaseController Overrides #####################################################################
onDidRender: ->
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
super
# Backbone.View Overrides ######################################################################
events: ->
@@ -5,8 +5,7 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
{Duration} = require '../constants'
{Event} = require '../constants'
AdsenseController = require './adsense_controller'
FullRecipeController = require './full_recipe_controller'
ImageLoader = require './image_loader'
Item = require '../models/item'
@@ -14,6 +13,8 @@ ItemGroupController = require './item_group_controller'
ItemPage = require '../models/item_page'
ItemSlug = require '../models/item_slug'
PageController = require './page_controller'
{Duration} = require '../constants'
{Event} = require '../constants'
{Text} = require '../constants'
{Url} = require '../constants'
@@ -45,11 +46,13 @@ module.exports = class ItemPageController extends PageController
# BaseController Overrides #####################################################################
onDidRender: ->
@_usedAsToolToMakeController = @addChild ItemGroupController, '.usedAsToolToMake .view__item_group',
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
@_similarItemsController = @addChild ItemGroupController, '.similar .view__item_group',
imageLoader: @imageLoader
modPack: @modPack
@_similarItemsController = @addChild ItemGroupController, '.similar .view__item_group',
@_usedAsToolToMakeController = @addChild ItemGroupController, '.usedAsToolToMake .view__item_group',
imageLoader: @imageLoader
modPack: @modPack
@@ -5,12 +5,13 @@ Copyright (c) 2015 by Redwood Labs
All rights reserved.
###
{Duration} = require '../constants'
AdsenseController = require './adsense_controller'
Item = require '../models/item'
ItemGroupController = require './item_group_controller'
Mod = require '../models/mod'
ModPack = require '../models/mod_pack'
PageController = require './page_controller'
{Duration} = require '../constants'
{Text} = require '../constants'
{Url} = require '../constants'
@@ -52,6 +53,8 @@ module.exports = class ModPageController extends PageController
# BaseController Overrides #####################################################################
onDidRender: ->
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
@$name = @$('.name')
@$byline = @$('.byline p')
@$description = @$('.description p')
+21 -9
View File
@@ -5,25 +5,25 @@ Copyright (c) 2014-2015 by Redwood Labs
All rights reserved.
###
BrowsePageController = require './controllers/browse_page_controller'
CraftPageController = require './controllers/craft_page_controller'
ConfigurePageController = require './controllers/configure_page_controller'
{DefaultMods} = require './constants'
{Duration} = require './constants'
{Event} = require './constants'
CraftPageController = require './controllers/craft_page_controller'
HeaderController = require './controllers/header_controller'
HomePageController = require './controllers/home_page_controller'
ImageLoader = require './controllers/image_loader'
ItemPageController = require './controllers/item_page_controller'
ItemSlug = require './models/item_slug'
ImageLoader = require './controllers/image_loader'
Mod = require './models/mod'
ModPack = require './models/mod_pack'
ModPageController = require './controllers/mod_page_controller'
{Opacity} = require './constants'
Storage = require './models/storage'
{Url} = require './constants'
UrlParams = require './url_params'
HomePageController = require './controllers/home_page_controller'
{AdsenseEnvs} = require './constants'
{DefaultMods} = require './constants'
{Duration} = require './constants'
{Event} = require './constants'
{Opacity} = require './constants'
{Url} = require './constants'
########################################################################################################################
@@ -158,6 +158,8 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
showDuration = Duration.normal
show = =>
@_resetGlobals()
@_page = page
@_controller = controller
@@ -176,3 +178,13 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
@_controller.$el.slideUp showDuration, show
else
show()
_resetGlobals: ->
if global.env in AdsenseEnvs
for key, value of global
if key.indexOf('google') isnt -1
delete global[key]
delete global.adsByGoogle
$('script[src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"]').remove()
$('body').append('<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>')