From da1d4e006395590e6fa8566196cd7d22552e3f2f Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Mon, 21 Nov 2016 15:55:03 -0500 Subject: [PATCH] FIX: when dfp/adsense publisher id is missing, don't render blank ad units --- .../discourse/components/google-adsense.js.es6 | 6 ++++++ .../discourse/components/google-dfp-ad.js.es6 | 11 +++++++++++ .../discourse/templates/components/google-adsense.hbs | 2 +- .../discourse/templates/components/google-dfp-ad.hbs | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/assets/javascripts/discourse/components/google-adsense.js.es6 b/assets/javascripts/discourse/components/google-adsense.js.es6 index b26a738..6624e3b 100644 --- a/assets/javascripts/discourse/components/google-adsense.js.es6 +++ b/assets/javascripts/discourse/components/google-adsense.js.es6 @@ -125,6 +125,8 @@ export default Ember.Component.extend({ didInsertElement() { this._super(); + if (!this.get('showAd')) { return; } + Ember.run.scheduleOnce('afterRender', this, this._triggerAds); }, @@ -151,4 +153,8 @@ export default Ember.Component.extend({ checkTrustLevels: function() { return !((currentUser) && (currentUser.get('trust_level') > Discourse.SiteSettings.adsense_through_trust_level)); }.property('trust_level'), + + showAd: function() { + return Discourse.SiteSettings.adsense_publisher_code && this.get('checkTrustLevels'); + }.property('checkTrustLevels') }); diff --git a/assets/javascripts/discourse/components/google-dfp-ad.js.es6 b/assets/javascripts/discourse/components/google-dfp-ad.js.es6 index b05c5d1..dc05230 100755 --- a/assets/javascripts/discourse/components/google-dfp-ad.js.es6 +++ b/assets/javascripts/discourse/components/google-dfp-ad.js.es6 @@ -56,6 +56,11 @@ function custom_targeting(key_array, value_array, location) { } function defineSlot(divId, placement, settings, isMobile) { + + if (!settings.dfp_publisher_id) { + return; + } + var ad, width, height; if (ads[divId]) { @@ -185,6 +190,10 @@ export default Ember.Component.extend({ return `width: ${this.get('width')}px;`.htmlSafe(); }.property('width'), + showAd: function() { + return Discourse.SiteSettings.dfp_publisher_id && this.get('checkTrustLevels'); + }.property('checkTrustLevels'), + checkTrustLevels: function() { return !((currentUser) && (currentUser.get('trust_level') > Discourse.SiteSettings.dfp_through_trust_level)); }.property('trust_level'), @@ -205,6 +214,8 @@ export default Ember.Component.extend({ }.observes('refreshOnChange'), _initGoogleDFP: function() { + if (!this.get('showAd')) { return; } + var self = this; loadGoogle(this.siteSettings).then(function() { self.set('loadedGoogletag', true); diff --git a/assets/javascripts/discourse/templates/components/google-adsense.hbs b/assets/javascripts/discourse/templates/components/google-adsense.hbs index f345c79..ee5e7d5 100644 --- a/assets/javascripts/discourse/templates/components/google-adsense.hbs +++ b/assets/javascripts/discourse/templates/components/google-adsense.hbs @@ -1,4 +1,4 @@ -{{#if checkTrustLevels}} +{{#if showAd}} {{#if site.mobileView}}

ADVERTISEMENT

diff --git a/assets/javascripts/discourse/templates/components/google-dfp-ad.hbs b/assets/javascripts/discourse/templates/components/google-dfp-ad.hbs index cb3fb17..c484d6a 100755 --- a/assets/javascripts/discourse/templates/components/google-dfp-ad.hbs +++ b/assets/javascripts/discourse/templates/components/google-dfp-ad.hbs @@ -1,4 +1,4 @@ -{{#if checkTrustLevels}} +{{#if showAd}} {{#if site.mobileView}}

ADVERTISEMENT