|
|
|
@@ -2,28 +2,27 @@ import PageTracker from 'discourse/lib/page-tracker';
|
|
|
|
|
|
|
|
|
|
var ad_width = '';
|
|
|
|
|
var ad_height = '';
|
|
|
|
|
var ad_code = '';
|
|
|
|
|
var ad_mobile_width = 320;
|
|
|
|
|
var ad_mobile_height = 50;
|
|
|
|
|
var ad_mobile_code = '';
|
|
|
|
|
var currentUser = Discourse.User.current();
|
|
|
|
|
var publisher_id = Discourse.SiteSettings.adsense_publisher_code;
|
|
|
|
|
var mobile_width = 320;
|
|
|
|
|
var mobile_height = 50;
|
|
|
|
|
|
|
|
|
|
const mobileView = Discourse.Site.currentProp('mobileView');
|
|
|
|
|
|
|
|
|
|
function splitWidthInt(value) {
|
|
|
|
|
var str = value.substring(0, 3);
|
|
|
|
|
return str.trim();
|
|
|
|
|
var str = value.substring(0, 3);
|
|
|
|
|
return str.trim();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function splitHeightInt(value) {
|
|
|
|
|
var str = value.substring(4, 7);
|
|
|
|
|
return str.trim();
|
|
|
|
|
var str = value.substring(4, 7);
|
|
|
|
|
return str.trim();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// On each page change, the child is removed and elements part of Adsense's googleads are removed/undefined.
|
|
|
|
|
PageTracker.current().on('change', function(url) {
|
|
|
|
|
PageTracker.current().on('change', function() {
|
|
|
|
|
var ads = document.getElementById("adsense_loader");
|
|
|
|
|
if (ads) {
|
|
|
|
|
ads.parentNode.removeChild(ads);
|
|
|
|
@@ -36,57 +35,54 @@ PageTracker.current().on('change', function(url) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Reinitialize script so that the ad can reload
|
|
|
|
|
// Reinitialize script so that the ad can reload
|
|
|
|
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.id="adsense_loader";
|
|
|
|
|
ga.src = '//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
|
|
|
|
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var data = {
|
|
|
|
|
"topic-list-top" : {},
|
|
|
|
|
"topic-above-post-stream" : {},
|
|
|
|
|
"topic-above-suggested" : {},
|
|
|
|
|
"post-bottom" : {}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"post-bottom" : {}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (Discourse.SiteSettings.adsense_publisher_code) {
|
|
|
|
|
if (!Discourse.Mobile.mobileView && Discourse.SiteSettings.adsense_topic_list_top_code) {
|
|
|
|
|
data["topic-list-top"]["ad_code"] = Discourse.SiteSettings.adsense_topic_list_top_code;
|
|
|
|
|
data["topic-list-top"]["ad_width"] = parseInt(splitWidthInt(Discourse.SiteSettings.adsense_topic_list_top_ad_sizes));
|
|
|
|
|
data["topic-list-top"]["ad_height"] = parseInt(splitHeightInt(Discourse.SiteSettings.adsense_topic_list_top_ad_sizes));
|
|
|
|
|
}
|
|
|
|
|
if (Discourse.Mobile.mobileView && Discourse.SiteSettings.adsense_mobile_topic_list_top_code) {
|
|
|
|
|
data["topic-list-top"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_list_top_code;
|
|
|
|
|
}
|
|
|
|
|
if (!Discourse.Mobile.mobileView && Discourse.SiteSettings.adsense_topic_above_post_stream_code) {
|
|
|
|
|
data["topic-above-post-stream"]["ad_code"] = Discourse.SiteSettings.adsense_topic_above_post_stream_code;
|
|
|
|
|
data["topic-above-post-stream"]["ad_width"] = parseInt(splitWidthInt(Discourse.SiteSettings.adsense_topic_above_post_stream_ad_sizes));
|
|
|
|
|
data["topic-above-post-stream"]["ad_height"] = parseInt(splitHeightInt(Discourse.SiteSettings.adsense_topic_above_post_stream_ad_sizes));
|
|
|
|
|
}
|
|
|
|
|
if (Discourse.Mobile.mobileView && Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_code) {
|
|
|
|
|
data["topic-above-post-stream"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_code;
|
|
|
|
|
}
|
|
|
|
|
if (!Discourse.Mobile.mobileView && Discourse.SiteSettings.adsense_topic_above_suggested_code) {
|
|
|
|
|
data["topic-above-suggested"]["ad_code"] = Discourse.SiteSettings.adsense_topic_above_suggested_code;
|
|
|
|
|
data["topic-above-suggested"]["ad_width"] = parseInt(splitWidthInt(Discourse.SiteSettings.adsense_topic_above_suggested_ad_sizes));
|
|
|
|
|
data["topic-above-suggested"]["ad_height"] = parseInt(splitHeightInt(Discourse.SiteSettings.adsense_topic_above_suggested_ad_sizes));
|
|
|
|
|
}
|
|
|
|
|
if (Discourse.Mobile.mobileView && Discourse.SiteSettings.adsense_mobile_topic_above_suggested_code) {
|
|
|
|
|
data["topic-above-suggested"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_above_suggested_code;
|
|
|
|
|
}
|
|
|
|
|
if (!Discourse.Mobile.mobileView && Discourse.SiteSettings.adsense_post_bottom_code) {
|
|
|
|
|
data["post-bottom"]["ad_code"] = Discourse.SiteSettings.adsense_post_bottom_code;
|
|
|
|
|
data["post-bottom"]["ad_width"] = parseInt(splitWidthInt(Discourse.SiteSettings.adsense_post_bottom_ad_sizes));
|
|
|
|
|
data["post-bottom"]["ad_height"] = parseInt(splitHeightInt(Discourse.SiteSettings.adsense_post_bottom_ad_sizes));
|
|
|
|
|
}
|
|
|
|
|
if (Discourse.Mobile.mobileView && Discourse.SiteSettings.adsense_mobile_post_bottom_code) {
|
|
|
|
|
data["post-bottom"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_post_bottom_code;
|
|
|
|
|
}
|
|
|
|
|
if (!mobileView && Discourse.SiteSettings.adsense_topic_list_top_code) {
|
|
|
|
|
data["topic-list-top"]["ad_code"] = Discourse.SiteSettings.adsense_topic_list_top_code;
|
|
|
|
|
data["topic-list-top"]["ad_width"] = parseInt(splitWidthInt(Discourse.SiteSettings.adsense_topic_list_top_ad_sizes));
|
|
|
|
|
data["topic-list-top"]["ad_height"] = parseInt(splitHeightInt(Discourse.SiteSettings.adsense_topic_list_top_ad_sizes));
|
|
|
|
|
}
|
|
|
|
|
if (mobileView && Discourse.SiteSettings.adsense_mobile_topic_list_top_code) {
|
|
|
|
|
data["topic-list-top"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_list_top_code;
|
|
|
|
|
}
|
|
|
|
|
if (!mobileView && Discourse.SiteSettings.adsense_topic_above_post_stream_code) {
|
|
|
|
|
data["topic-above-post-stream"]["ad_code"] = Discourse.SiteSettings.adsense_topic_above_post_stream_code;
|
|
|
|
|
data["topic-above-post-stream"]["ad_width"] = parseInt(splitWidthInt(Discourse.SiteSettings.adsense_topic_above_post_stream_ad_sizes));
|
|
|
|
|
data["topic-above-post-stream"]["ad_height"] = parseInt(splitHeightInt(Discourse.SiteSettings.adsense_topic_above_post_stream_ad_sizes));
|
|
|
|
|
}
|
|
|
|
|
if (mobileView && Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_code) {
|
|
|
|
|
data["topic-above-post-stream"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_code;
|
|
|
|
|
}
|
|
|
|
|
if (!mobileView && Discourse.SiteSettings.adsense_topic_above_suggested_code) {
|
|
|
|
|
data["topic-above-suggested"]["ad_code"] = Discourse.SiteSettings.adsense_topic_above_suggested_code;
|
|
|
|
|
data["topic-above-suggested"]["ad_width"] = parseInt(splitWidthInt(Discourse.SiteSettings.adsense_topic_above_suggested_ad_sizes));
|
|
|
|
|
data["topic-above-suggested"]["ad_height"] = parseInt(splitHeightInt(Discourse.SiteSettings.adsense_topic_above_suggested_ad_sizes));
|
|
|
|
|
}
|
|
|
|
|
if (mobileView && Discourse.SiteSettings.adsense_mobile_topic_above_suggested_code) {
|
|
|
|
|
data["topic-above-suggested"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_above_suggested_code;
|
|
|
|
|
}
|
|
|
|
|
if (!mobileView && Discourse.SiteSettings.adsense_post_bottom_code) {
|
|
|
|
|
data["post-bottom"]["ad_code"] = Discourse.SiteSettings.adsense_post_bottom_code;
|
|
|
|
|
data["post-bottom"]["ad_width"] = parseInt(splitWidthInt(Discourse.SiteSettings.adsense_post_bottom_ad_sizes));
|
|
|
|
|
data["post-bottom"]["ad_height"] = parseInt(splitHeightInt(Discourse.SiteSettings.adsense_post_bottom_ad_sizes));
|
|
|
|
|
}
|
|
|
|
|
if (mobileView && Discourse.SiteSettings.adsense_mobile_post_bottom_code) {
|
|
|
|
|
data["post-bottom"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_post_bottom_code;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export default Ember.Component.extend({
|
|
|
|
|
classNames: ['google-adsense'],
|
|
|
|
|
loadedGoogletag: false,
|
|
|
|
@@ -107,7 +103,7 @@ export default Ember.Component.extend({
|
|
|
|
|
this.set('ad_mobile_code', data[this.placement]["ad_mobile_code"] );
|
|
|
|
|
this._super();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
adWrapperStyle: function() {
|
|
|
|
|
return `width: ${this.get('ad_width')}px; height: ${this.get('ad_height')}px; margin:0 auto;`.htmlSafe();
|
|
|
|
|
}.property('ad_width', 'ad_height'),
|
|
|
|
|