summaryrefslogtreecommitdiff
path: root/js/PluginHost.js
blob: 8e5ff32ec7e7a049dbc938edda29a8cc09c975e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// based on http://www.velvetcache.org/2010/08/19/a-simple-javascript-hooks-system

PluginHost = {
	HOOK_ARTICLE_RENDERED: 1,
	HOOK_ARTICLE_RENDERED_CDM: 2,
	HOOK_ARTICLE_SET_ACTIVE: 3,
	HOOK_FEED_SET_ACTIVE: 4,
	HOOK_FEED_LOADED: 5,
	HOOK_ARTICLE_EXPANDED: 6,
	HOOK_ARTICLE_COLLAPSED: 7,
	HOOK_PARAMS_LOADED: 8,
	HOOK_RUNTIME_INFO_LOADED: 9,
	HOOK_FLOATING_TITLE: 10,
	hooks: [],
	register: function (name, callback) {
		if (typeof(this.hooks[name]) == 'undefined')
			this.hooks[name] = [];

		this.hooks[name].push(callback);
	},
	run: function (name, args) {
		//console.warn('PluginHost::run ' + name);

		if (typeof(this.hooks[name]) != 'undefined')
			for (let i = 0; i < this.hooks[name].length; i++)
				if (!this.hooks[name][i](args)) break;
	}
};

/* PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED,
		function (args) { console.log('ARTICLE_RENDERED: ' + args); return true; });

PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM,
		function (args) { console.log('ARTICLE_RENDERED_CDM: ' + args); return true; }); */