Update AdsenseController to show ads to fit space
This commit is contained in:
@@ -7,7 +7,7 @@ All rights reserved.
|
|||||||
|
|
||||||
exports.Adsense = Adsense = {}
|
exports.Adsense = Adsense = {}
|
||||||
Adsense.clientId = 'ca-pub-6593013914878730'
|
Adsense.clientId = 'ca-pub-6593013914878730'
|
||||||
Adsense.slotId = '7613920409'
|
Adsense.slotIds = ['7613920409', '9574673605', '3388539204']
|
||||||
|
|
||||||
# Minecraft must be first
|
# Minecraft must be first
|
||||||
exports.DefaultMods =
|
exports.DefaultMods =
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ All rights reserved.
|
|||||||
|
|
||||||
BaseController = require './base_controller'
|
BaseController = require './base_controller'
|
||||||
{Adsense} = require '../constants'
|
{Adsense} = require '../constants'
|
||||||
|
{Duration} = require '../constants'
|
||||||
{ProductionEnvs} = require '../constants'
|
{ProductionEnvs} = require '../constants'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
@@ -14,32 +15,64 @@ BaseController = require './base_controller'
|
|||||||
module.exports = class AdsenseController extends BaseController
|
module.exports = class AdsenseController extends BaseController
|
||||||
|
|
||||||
constructor: (options={})->
|
constructor: (options={})->
|
||||||
options.model ?= 'skyscraper_sidebar'
|
options.templateName = "adsense_sidebar_skyscraper"
|
||||||
options.tagName = 'ins'
|
|
||||||
options.templateName = "adsense_#{options.model}"
|
|
||||||
super options
|
super options
|
||||||
|
|
||||||
@_adsEnabled = global.env in ProductionEnvs
|
@_adsEnabled = global.env in ProductionEnvs
|
||||||
|
@_adHeight = 630
|
||||||
|
@_adCount = 0
|
||||||
|
@_waiting = false
|
||||||
|
|
||||||
|
# Public Methods ###############################################################################
|
||||||
|
|
||||||
|
fillAdPositions: ->
|
||||||
|
if @_adCount > 0
|
||||||
|
return unless @_adCount < Adsense.slotIds.length
|
||||||
|
return unless @$sidebar? and @$mainBody?
|
||||||
|
return unless @$sidebar.height() + @_adHeight < @$mainBody.height()
|
||||||
|
|
||||||
|
$adContainer = $('<div class="sidebar_skyscraper"></div>')
|
||||||
|
@$el.append $adContainer
|
||||||
|
|
||||||
|
if @_adsEnabled
|
||||||
|
$ad = $('<ins class="adsbygoogle"></ins>')
|
||||||
|
$ad.attr 'data-ad-client', Adsense.clientId
|
||||||
|
$ad.attr 'data-ad-slot', Adsense.slotIds[@_adCount]
|
||||||
|
$ad.css 'height':'600px', 'width':'160px'
|
||||||
|
$adContainer.append $ad
|
||||||
|
@_loadAds()
|
||||||
|
|
||||||
|
@_adCount += 1
|
||||||
|
_.defer => @fillAdPositions()
|
||||||
|
|
||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
render: ->
|
onDidRender: ->
|
||||||
if @_adsEnabled
|
@$mainBody = $('.mainBody')
|
||||||
super
|
@$sidebar = $('.sidebar')
|
||||||
|
super
|
||||||
@$el.attr 'data-ad-client', Adsense.clientId
|
|
||||||
@$el.attr 'data-ad-slot', Adsense.slotId
|
|
||||||
else
|
|
||||||
@$el.addClass 'placeholder'
|
|
||||||
@_rendered = true
|
|
||||||
|
|
||||||
@$el.addClass @model
|
|
||||||
|
|
||||||
refresh: ->
|
refresh: ->
|
||||||
|
@_waitForPageReadiness()
|
||||||
|
super
|
||||||
|
|
||||||
|
# Private Methods #############################################################################
|
||||||
|
|
||||||
|
_loadAds: ->
|
||||||
return unless @_adsEnabled
|
return unless @_adsEnabled
|
||||||
|
|
||||||
|
logger.info "Loading #{@_adCount} Google AdSense ads"
|
||||||
try
|
try
|
||||||
global.adsbygoogle ||= []
|
global.adsbygoogle ||= []
|
||||||
global.adsbygoogle.push {}
|
global.adsbygoogle.push {}
|
||||||
catch e
|
catch e
|
||||||
logger.warning "Could not load Adsense ad: #{e}"
|
logger.warning "Could not load Adsense ad: #{e}"
|
||||||
|
|
||||||
|
_waitForPageReadiness: ->
|
||||||
|
return if @_waiting
|
||||||
|
|
||||||
|
if @$mainBody.height() < @_adHeight / 2
|
||||||
|
@_waiting = true
|
||||||
|
_.delay (=> @_waiting = false; @_waitForPageReadiness()), Duration.normal
|
||||||
|
else
|
||||||
|
@fillAdPositions()
|
||||||
|
|||||||
@@ -31,11 +31,13 @@ module.exports = class BrowsePageController extends PageController
|
|||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
|
@adsenseController = @addChild AdsenseController, '.view__adsense'
|
||||||
@$modContainer = @$('.mods')
|
@$modContainer = @$('.mods')
|
||||||
super
|
super
|
||||||
|
|
||||||
refresh: ->
|
refresh: ->
|
||||||
|
@adsenseController.fillAdPositions()
|
||||||
|
|
||||||
@_controllers ?= []
|
@_controllers ?= []
|
||||||
controllerIndex = 0
|
controllerIndex = 0
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ module.exports = class ConfigurePageController extends PageController
|
|||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
|
@adsenseController = @addChild AdsenseController, '.view__adsense'
|
||||||
@modPackController = @addChild ModPackController, '.view__mod_pack', model:@modPack, storage:@storage
|
@modPackController = @addChild ModPackController, '.view__mod_pack', model:@modPack, storage:@storage
|
||||||
super
|
super
|
||||||
|
|
||||||
|
refresh: ->
|
||||||
|
@adsenseController.fillAdPositions()
|
||||||
|
super
|
||||||
@@ -133,6 +133,7 @@ module.exports = class CraftPageController extends PageController
|
|||||||
refresh: ->
|
refresh: ->
|
||||||
@_refreshSectionVisibility()
|
@_refreshSectionVisibility()
|
||||||
@_refreshSteps()
|
@_refreshSteps()
|
||||||
|
@adsenseController.fillAdPositions()
|
||||||
super
|
super
|
||||||
|
|
||||||
# Backbone.View Overrides ########################################################################
|
# Backbone.View Overrides ########################################################################
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ module.exports = class HomeController extends PageController
|
|||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
|
@adsenseController = @addChild AdsenseController, '.view__adsense'
|
||||||
super
|
super
|
||||||
|
|
||||||
# Backbone.View Overrides ######################################################################
|
# Backbone.View Overrides ######################################################################
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ module.exports = class ModPageController extends PageController
|
|||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
onDidRender: ->
|
onDidRender: ->
|
||||||
@adsenseController = @addChild AdsenseController, '.view__adsense', model:'sidebar_skyscraper'
|
@adsenseController = @addChild AdsenseController, '.view__adsense'
|
||||||
|
|
||||||
@$name = @$('.name')
|
@$name = @$('.name')
|
||||||
@$byline = @$('.byline p')
|
@$byline = @$('.byline p')
|
||||||
@@ -84,6 +84,8 @@ module.exports = class ModPageController extends PageController
|
|||||||
super
|
super
|
||||||
|
|
||||||
refresh: ->
|
refresh: ->
|
||||||
|
@adsenseController.fillAdPositions()
|
||||||
|
|
||||||
if @model?.isLoaded and @effectiveModVersion?.isLoaded
|
if @model?.isLoaded and @effectiveModVersion?.isLoaded
|
||||||
@$byline.html "by #{@model.author}"
|
@$byline.html "by #{@model.author}"
|
||||||
@$description.html @model.description
|
@$description.html @model.description
|
||||||
|
|||||||
@@ -5,4 +5,4 @@
|
|||||||
//- All rights reserved.
|
//- All rights reserved.
|
||||||
//-
|
//-
|
||||||
|
|
||||||
.adsbygoogle.sidebar_skyscraper
|
.view__adsense
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
.view__configure_page
|
.view__configure_page
|
||||||
.sidebar
|
.sidebar
|
||||||
ins.view__adsense
|
.view__adsense
|
||||||
|
|
||||||
.mainBody
|
.mainBody
|
||||||
.view__mod_pack
|
.view__mod_pack
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
.view__home_page
|
.view__home_page
|
||||||
.sidebar
|
.sidebar
|
||||||
ins.view__adsense
|
.view__adsense
|
||||||
|
|
||||||
.mainBody
|
.mainBody
|
||||||
.section
|
.section
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
a.documentation.externalLink.hideable.hidden(target="new"): p Documentation
|
a.documentation.externalLink.hideable.hidden(target="new"): p Documentation
|
||||||
a.download.externalLink.hideable.hidden(target="new"): p Download
|
a.download.externalLink.hideable.hidden(target="new"): p Download
|
||||||
|
|
||||||
ins.view__adsense
|
.view__adsense
|
||||||
|
|
||||||
.mainBody
|
.mainBody
|
||||||
h1.name
|
h1.name
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ All rights reserved.
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
position: relative; width: 18.75%;
|
position: relative; width: 18.75%; height: 100%;
|
||||||
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
|
|||||||
@@ -6,19 +6,14 @@ All rights reserved.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
.view__adsense {
|
.view__adsense {
|
||||||
display: inline-block;
|
|
||||||
margin: 3em 0;
|
|
||||||
|
|
||||||
&:first-child {
|
.sidebar_skyscraper {
|
||||||
margin-top: 0;
|
position: relative; width: 160px; height: 600px;
|
||||||
}
|
border: 0.1em solid $color-gray-faint;
|
||||||
|
margin: 3em 0;
|
||||||
|
|
||||||
&.sidebar_skyscraper {
|
&:first-child {
|
||||||
position: relative; width: 160px !important; height: 600px !important;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.placeholder {
|
|
||||||
background: rgba(192, 192, 255, 0.5);
|
|
||||||
border: 0.1em solid $color-gray-medium;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user