discourse-adplugin/assets/javascripts/initializers/initialize-ad-plugin.js.es6

53 lines
1.5 KiB
Plaintext
Raw Normal View History

2018-10-22 19:49:32 +01:00
import PostModel from "discourse/models/post";
import { withPluginApi } from "discourse/lib/plugin-api";
2015-08-04 11:25:00 +10:00
export default {
2018-10-22 19:49:32 +01:00
name: "initialize-ad-plugin",
initialize(container) {
2018-10-22 19:49:32 +01:00
const siteSettings = container.lookup("site-settings:main");
2017-09-05 09:22:23 +08:00
PostModel.reopen({
2018-06-20 09:15:15 -06:00
postSpecificCountDFP: function() {
return this.isNthPost(parseInt(siteSettings.dfp_nth_post_code));
2018-10-22 19:49:32 +01:00
}.property("post_number"),
2018-06-20 09:15:15 -06:00
postSpecificCountAdsense: function() {
return this.isNthPost(parseInt(siteSettings.adsense_nth_post_code));
2018-10-22 19:49:32 +01:00
}.property("post_number"),
2018-06-20 09:15:15 -06:00
postSpecificCountAmazon: function() {
return this.isNthPost(parseInt(siteSettings.amazon_nth_post_code));
2018-10-22 19:49:32 +01:00
}.property("post_number"),
2018-06-20 09:15:15 -06:00
postSpecificCountCodeFund: function() {
return this.isNthPost(parseInt(siteSettings.codefund_nth_post));
2018-10-22 19:49:32 +01:00
}.property("post_number"),
2018-06-07 17:17:19 -06:00
2018-06-20 09:15:15 -06:00
isNthPost: function(n) {
if (n && n > 0) {
2018-10-22 19:49:32 +01:00
return this.get("post_number") % n === 0;
} else {
return false;
}
}
2017-09-05 09:22:23 +08:00
});
2016-02-22 12:11:29 -05:00
2018-10-22 19:49:32 +01:00
withPluginApi("0.1", api => {
api.decorateWidget("post:after", dec => {
if (dec.canConnectComponent) {
2018-06-07 17:17:19 -06:00
return dec.connect({
2018-10-22 19:49:32 +01:00
component: "adplugin-container",
context: "model"
2018-06-07 17:17:19 -06:00
});
}
// Old way for backwards compatibility
2016-02-22 12:11:29 -05:00
return dec.connect({
2018-10-22 19:49:32 +01:00
templateName: "connectors/post-bottom/discourse-adplugin",
context: "model"
2016-02-22 12:11:29 -05:00
});
});
});
2015-08-04 11:25:00 +10:00
}
};